Skip to content

Start simulation runs

POST /api/v1/simulations/runs: request fields and declared response contract.

POST/api/v1/simulations/runs

Authorization
Permissionsimulations.runs.dispatch
Workspace scoperequired
Scope targetworkspace

Request body

Request body fields
FieldTypeRequiredNullableDefault
inputSnapshotIdstringrequirednon-null—
releaseAliasstringrequirednon-null—
scenarioRevisionIdstringoptionalnon-null—
seedintegeroptionalnon-null—
trialsintegeroptionalnon-null—
horizonDaysintegeroptionalnon-null—
variantsintegeroptionalnon-null—
parameterOverridesobjectoptionalnon-null—
requestKeystringoptionalnon-null—

Response

201

Response fields
FieldTypeRequiredNullableDefault
dataobjectrequirednon-null—
data.runIdstringrequirednon-null—
data.companyIdstringrequirednon-null—
data.workspaceIdstringrequirednon-null—
data.workUnitIdstringrequirednon-null—
data.status"requested" | "waiting_capacity" | "preparing" | "running" | "cancel_requested" | "succeeded" | "failed" | "cancelled" | "blocked"requirednon-null—
data.revisionintegerrequirednon-null—
data.refsobjectrequirednon-null—
data.refs.releaseIdstringrequirednon-null—
data.refs.releaseAliasstringrequirednon-null—
data.refs.packageVersionIdstringrequirednon-null—
data.refs.packageKeystringrequirednon-null—
data.refs.packageVersionintegerrequirednon-null—
data.refs.configurationVersionIdstringrequirednon-null—
data.refs.configKeystringrequirednon-null—
data.refs.configVersionintegerrequirednon-null—
data.refs.inputSnapshotIdstringrequirednon-null—
data.refs.scenarioRevisionIdstringoptionalnon-null—
data.refs.sandboxRevisionRefstringoptionalnon-null—
data.refs.seedintegerrequirednon-null—
data.refs.trialsintegerrequirednon-null—
data.refs.horizonDaysintegerrequirednon-null—
data.refs.variantsintegerrequirednon-null—
data.refs.parametersobjectrequirednon-null{}
data.refs.maxComputeUsdMicrosintegerrequirednon-null—
data.refs.executorKindstringrequirednon-null—
data.refs.resourceClassstringrequirednon-null—
data.refs.runtimeKeystringrequirednon-null—
data.refs.runtimeVersionintegerrequirednon-null—
data.refs.outputProtocolKeystringrequirednon-null—
data.refs.outputProtocolVersionintegerrequirednon-null—
data.refs.inputProtocolKeystringrequirednon-null—
data.refs.inputProtocolVersionintegerrequirednon-null—
data.requestedBystringrequirednon-null—
data.admissionAttemptintegerrequirednon-null—
data.receiptobjectoptionalnon-null—
data.receipt.workUnitIdstringrequirednon-null—
data.receipt.revisionstringrequirednon-null—
data.receipt.poolsarrayrequirednon-null—
data.receipt.expiresAtEpochSecondsintegerrequirednon-null—
data.reservationExpiresAtstringoptionalnon-null—
data.providerExecutionIdstringoptionalnon-null—
data.inputManifestobjectoptionalnon-null—
data.inputManifest.s3Keystringrequirednon-null—
data.inputManifest.contentDigeststringrequirednon-null—
data.inputManifest.sizeBytesintegeroptionalnon-null—
data.outputManifestobjectoptionalnon-null—
data.outputManifest.s3Keystringrequirednon-null—
data.outputManifest.contentDigeststringrequirednon-null—
data.outputManifest.sizeBytesintegeroptionalnon-null—
data.settlementobjectoptionalnon-null—
data.settlement.actualComputeUsdMicrosintegerrequirednon-null—
data.settlement.settledAtstringrequirednon-null—
data.settlement.reservationsReleasedbooleanrequirednon-null—
data.blockedReasonstringoptionalnon-null—
data.supervisorKeystringoptionalnon-null—
data.createdAtstringrequirednon-null—
data.updatedAtstringrequirednon-null—
data.statusUpdatedAtstringrequirednon-null—

Declared failures

Declared failures
ACCESS_DENIED403 — not retryable
CORE_ERROR500 — not retryable
GOVERNANCE_DENIED403 — not retryable
QUOTA_DENIED429 — retryable
REQUEST_IDENTITY_INTENT_CONFLICT409 — not retryable
VALIDATION_ERROR400 — not retryable
VALIDATION_INPUT_ERROR400 — not retryable

Durable identity

Durable identity
Kindrequest-identity
Request fieldsrequestKey
ConflictREQUEST_IDENTITY_INTENT_CONFLICT

Readback

The effect completes asynchronously; reacquire the result with:

  • simulations.runs.read

Request example

Schematic only. Replace placeholders with real values and include all required nested fields.

POST /api/v1/simulations/runs HTTP/1.1
Authorization: Bearer <token>
x-merulan-workspace-id: <workspace-id>
Content-Type: application/json

{
  "inputSnapshotId": "<inputSnapshotId>",
  "releaseAlias": "<releaseAlias>"
}