Endpoints
List configurations
GET/api/v1/configurations
Parameters
Responses
200 - List of configurationsCreate configuration
POST/api/v1/configurations
Request Body
Responses
201 - Configuration createdGet configuration
GET/api/v1/configurations/{config_id}
Parameters
Responses
200 - Configuration detailsUpdate configuration
PATCH/api/v1/configurations/{config_id}
Parameters
Request Body
Responses
200 - Configuration updatedDelete configuration
DELETE/api/v1/configurations/{config_id}
Parameters
Responses
204 - Configuration deletedList configuration applications
GET/api/v1/configurations/{config_id}/applications
Returns all applications in the configuration’s topology
Parameters
Responses
200 - List of applicationsAdd application to configuration
POST/api/v1/configurations/{config_id}/applications
Adds an application to the configuration’s topology by looking up the model from the database. Server resolves traffic type, version, and default parameters from the model.
Parameters
Responses
201 - Application addedRemove application from configuration
DELETE/api/v1/configurations/{config_id}/applications/{app_name}
Removes an application from the configuration’s topology. Remaining applications are auto-scaled to maintain distribution sum of 1.0.
Parameters
Responses
200 - Application removed successfullyUpdate application parameters
PATCH/api/v1/configurations/{config_id}/applications/{app_name}/parameters
Performs a validated merge of the provided TypedParameters patch into the named application’s typed_parameters. Only existing parameter keys can be updated, and types must match.
Parameters
Request Body
Responses
200 - Parameters updated successfully. Returns the full updated TypedParameters for the application. 400 - Invalid request (empty patch, unknown parameter key, type mismatch, structural mismatch) 404 - Configuration or application not found 409 - Conflict (serialization failure from concurrent modification) 412 - Precondition failed (ETag mismatch) 409 - Traceset rank count not yet resolved — metadata extraction is still in progress. Retry after extraction completes. 422 - Traceset rank count is present but invalid (zero or negative). The traceset data is malformed and cannot be used for a Chakra simulation.List configuration components
GET/api/v1/configurations/{config_id}/components
Returns all components from the configuration’s components array with optional type filtering
Parameters
Responses
200 - List of componentsAdd component to configuration
POST/api/v1/configurations/{config_id}/components
Adds a component, container, or layer to the configuration by looking up the model from the database. For switch/nic/server: adds to components array. For rack/pod: adds to containers array. For layer: adds to links array.
Parameters
Responses
201 - Component addedRemove component from configuration
DELETE/api/v1/configurations/{config_id}/components/{component_name}
Removes a component from the configuration’s components array. Cascades removal to all container references, topology references, and child references in other components.
Parameters
Responses
204 - Component removed from configuration 404 - Configuration or component not found 412 - Precondition failed (ETag mismatch)Update component parameters
PATCH/api/v1/configurations/{config_id}/components/{component_name}/parameters
Performs a validated merge of the provided TypedParameters patch into the named component’s typed_parameters. Only existing parameter keys can be updated, and types must match.
Parameters
Request Body
Responses
200 - Parameters updated successfully. Returns the full updated TypedParameters for the component. 400 - Invalid request (empty patch, unknown parameter key, type mismatch, structural mismatch) 404 - Configuration or component not found 409 - Conflict (serialization failure from concurrent modification) 412 - Precondition failed (ETag mismatch)Add child to component
PATCH/api/v1/configurations/{config_id}/configurations/{component_name}
Adds a child component (NIC, GPU, or application) to the specified host (server) component. Validates that the child type is in the host’s allowedComponents list.
Parameters
Request Body
Responses
200 - Child component added to hostUpdate child in component
PATCH/api/v1/configurations/{config_id}/configurations/{component_name}/components/{child_name}
Updates count and/or group on an existing child component reference within the specified host (server) component. At least one of count or group must be provided.
Parameters
Request Body
Responses
200 - Child component updatedRemove child from component
DELETE/api/v1/configurations/{config_id}/configurations/{component_name}/components/{child_name}
Removes a child component (NIC, GPU, or application) from the specified host (server) component.
Parameters
Responses
204 - Child component removed from host 404 - Configuration, component, or child not found 412 - Precondition failed (ETag mismatch)List configuration containers
GET/api/v1/configurations/{config_id}/containers
Returns all containers from the configuration with optional type filtering
Parameters
Responses
200 - List of containersAdd component to container
PATCH/api/v1/configurations/{config_id}/containers/{container_name}
Adds a component reference to the specified container. Validates that the component type is in the container’s allowed list.
Parameters
Request Body
Responses
200 - Component added to containerGet allowed component types for container
GET/api/v1/configurations/{config_id}/containers/{container_name}/allowed
Returns the list of component types allowed in this container based on its type
Parameters
Responses
200 - Allowed component typesUpdate component in container
PATCH/api/v1/configurations/{config_id}/containers/{container_name}/components/{component_name}
Updates count and/or group on an existing component reference in the specified container. At least one of count or group must be provided.
Parameters
Request Body
Responses
200 - Component updated in containerRemove component from container
DELETE/api/v1/configurations/{config_id}/containers/{container_name}/components/{component_name}
Removes a component reference from the specified container
Parameters
Responses
204 - Component removed from container 404 - Configuration, container, or component not foundUpdate distribution entry value
PATCH/api/v1/configurations/{config_id}/distribution
Updates the value field of a specific entry in topology.appDistribution.randomApplicationDistribution[]. The entry is identified by parentApplication + distributionId.
Parameters
Request Body
Responses
200 - Distribution value updatedList configuration links
GET/api/v1/configurations/{config_id}/links
Returns all links (layer components) from the configuration
Parameters
Responses
200 - List of linksUpdate link parameters
PATCH/api/v1/configurations/{config_id}/links/{link_name}/parameters
Performs a validated merge of the provided TypedParameters patch into the named link’s typed_parameters. Only existing parameter keys can be updated, and types must match.
Parameters
Request Body
Responses
200 - Parameters updated successfully. Returns the full updated TypedParameters for the link. 400 - Invalid request (empty patch, unknown parameter key, type mismatch, structural mismatch) 404 - Configuration or link not found 409 - Conflict (serialization failure from concurrent modification) 412 - Precondition failed (ETag mismatch)Update global parameters
PATCH/api/v1/configurations/{config_id}/parameters
Performs a validated merge of the provided TypedParameters patch into the configuration’s global_parameters. Backend-managed sections (ComputeConfiguration, ParallelizationParameters, etc.), readonly sections (SoftwareVersion), and hidden parameters are rejected with 400.
Parameters
Request Body
Responses
200 - Parameters updated successfully. Returns the full updated global TypedParameters (with backend params stripped). 400 - Invalid request (empty patch, unknown parameter key, type mismatch, structural mismatch, attempt to modify backend-managed/readonly/hidden params) 404 - Configuration not found 409 - Conflict (serialization failure from concurrent modification) 412 - Precondition failed (ETag mismatch)Get software version
GET/api/v1/configurations/{config_id}/software-version
Returns the simulator software version from the SoftwareVersion section of globalParameters.
Parameters
Responses
200 - Software version retrieved successfullyAdd component to topology
PATCH/api/v1/configurations/{config_id}/topology
Adds a component reference to the configuration’s topology.components array. Validates the named entity exists in the correct collection by type (switch→components, layer→links, pod→containers).
Parameters
Request Body
Responses
200 - Component added to topologyUpdate topology component
PATCH/api/v1/configurations/{config_id}/topology/{component_name}
Updates the count on an existing component reference in the topology.
Parameters
Request Body
Responses
200 - Topology component updatedRemove component from topology
DELETE/api/v1/configurations/{config_id}/topology/{component_name}
Removes a component reference from the configuration’s topology.
Parameters
Responses
204 - Component removed from topology 404 - Configuration or component not found in topology 412 - Precondition failed (ETag mismatch)List available tracesets for configuration
GET/api/v1/configurations/{config_id}/traceset
Returns tracesets that can be attached to configuration applications. Use scope=global to list all tracesets across all workspaces, or scope=workspace to filter by the configuration’s workspace only.
Parameters
Responses
200 - List of available tracesetsAttach traceset to configuration
PATCH/api/v1/configurations/{config_id}/traceset
Sets the activeTraceset field on the configuration to reference the specified traceset. Requires at least one application with trafficType ‘chakra’ to exist in the configuration. Workspace-agnostic: any traceset can be attached regardless of workspace.
Parameters
Request Body
Responses
200 - Traceset attached successfullyValidate configuration
POST/api/v1/configurations/{config_id}/validate
Parameters
Responses
200 - Validation resultList configuration versions
GET/api/v1/configurations/{config_id}/versions
Parameters
Responses
200 - List of version summariesGet specific configuration version
GET/api/v1/configurations/{config_id}/versions/{version}