Skip to main content
Simulation execution and results

Endpoints


List simulations

GET /api/v1/simulations Retrieves a paginated list of simulations with optional filtering by workspace, status, name search, and creation date. Results are sorted by creation date (newest first) by default.

Parameters

Responses

200 - List of simulations
400 - Bad Request - Invalid query parameters (e.g., malformed cursor, invalid workspaceId format, search query too long)

Start simulation

POST /api/v1/simulations Creates and starts a new simulation based on the specified configuration. The simulation will begin in validating status, then progress through provisioning to running. Poll the GET endpoint to monitor progress.

Request Body

Responses

201 - Simulation started successfully
400 - Bad Request - Invalid simulation parameters 402 - Payment Required - the platform’s credit balance is exhausted. Add credits before launching simulations. 404 - Configuration or workspace not found 422 - Configuration is not validated — must have status validated before starting a simulation

Compare simulations

POST /api/v1/simulations/compare Compares two to four simulations and returns aligned summaries, per-metric deltas and a diff context. The result is returned inline as JSON rather than as a presigned download envelope.

Request Body

Responses

200 - Comparison result
400 - Invalid request body (simulationIds count outside 2..4, malformed simulation id, or unknown tier) 404 - Simulation not found, or its workspace has been deleted 500 - Internal server error

Get simulation status

GET /api/v1/simulations/{sim_id} Retrieves detailed information about a specific simulation, including its current status, timing information, and metrics (if available).

Parameters

Responses

200 - Simulation details
404 - Simulation not found

Delete simulation and free storage

DELETE /api/v1/simulations/{sim_id} [Feature-gated: enable_simulation_delete] Permanently deletes a simulation and all associated data including results, logs, and checkpoints. This action cannot be undone. Running simulations must be terminated before deletion. This endpoint is only available on deployments where the enable_simulation_delete feature flag is enabled; callers may receive 404 on deployments where the flag is off.

Parameters

Responses

200 - Simulation scheduled for deletion
400 - Invalid simulation ID format 404 - Simulation or workspace not found

Terminate running simulation

POST /api/v1/simulations/{sim_id}/terminate Initiates graceful termination of a running simulation. The simulation will transition to terminated status. Results generated up to the termination point will be available.

Parameters

Responses

200 - Simulation termination initiated
202 - Termination dispatched for a simulation whose workspace has been deleted. Returned without a body: workspace deletion revokes the simulation’s details, so the acknowledgement carries no SimulationDetails payload. Also returned when the backend refuses the request with a 4xx, whose message would describe the revoked simulation; a backend 5xx is reported as itself. 400 - Bad Request - Invalid simulation ID format, or the simulation has no platform link and cannot be terminated 404 - Simulation not found 409 - Conflict - Simulation is not in a running state 501 - Not Implemented - Termination is not yet supported for this simulation’s backend 503 - Service Unavailable - The termination transport is unavailable

Get simulation results

GET /api/v1/simulations/{sim_id}/results Retrieves results for a completed simulation including summary metrics, dashboard URL, and downloadable result files (pcap, traces, etc.).

Parameters

Responses

200 - Simulation results
400 - Invalid simulation ID format, invalid pagination cursor, limit out of range, or an unrecognized sort or order value 404 - Simulation not found or results not yet available 500 - Internal server error

Generate presigned download URL for result file

GET /api/v1/simulations/{sim_id}/results/download-url

Parameters

Responses

200 - File download URL generated
400 - Invalid simulation ID format or missing fileName 404 - Simulation or file not found 500 - Internal server error

Get computed summary data for simulation results

GET /api/v1/simulations/{sim_id}/results/data Computes or retrieves cached summary statistics for simulation result CSV files using Polars. Returns a presigned URL to download the zstd-compressed JSON summary.

Parameters

Responses

200 - Summary data with presigned download URL
400 - Invalid parameters (bad metric, mode, or tier value) 404 - Simulation not found or no data files available for the specified metric 413 - Payload Too Large - The summarized result set exceeds the server’s size limit (its row count is over the ceiling, or summarizing it would exceed the memory budget). This condition is permanent for the request and must not be retried. 500 - Internal server error 501 - The requested mode or metric is recognized but its compute path has not shipped yet 503 - Service Unavailable - Several conditions render this status and they differ in whether a retry resolves them; the ones named here are the known ones rather than a closed set. The common one is a transient fault against the results object store on any mode - a network error, throttling, or a 5xx from the dependency - which is retriable: a client that backs off and retries will usually succeed. A second retriable one is a lost cache-write race the server could not recover from: a concurrent request stored the summary object first, and when this request went back to read it the object was no longer there, so a later attempt normally succeeds against the object the next writer stores. The last is a required backend dependency that is not available or not configured, so the simulation’s artifact location could not be resolved. Retrying does not help if the dependency is unconfigured. The response body does not distinguish them, so a client should retry with backoff under a bounded attempt count rather than indefinitely. 504 - Gateway Timeout - Summary computation exceeded the server’s time budget. The request may be retried.

Get simulation logs

GET /api/v1/simulations/{sim_id}/logs Retrieves paginated logs from a simulation with optional filtering by log level and component. Logs are returned in chronological order.

Parameters

Responses

200 - Simulation logs
400 - Bad Request - Invalid simulation ID format, invalid since timestamp, invalid level or component, or invalid pagination cursor 404 - Simulation not found 500 - Internal server error 503 - Orchestrator database not configured