On This Page

API Reference: Simulations

Simulations allow you to run what-if scenarios on your process models. You can configure processing times, resource allocations, and arrival rates to predict process behavior.

List simulations for a process

Endpoint: GET /v1/tenant/{tenantId}/processes/{processId}/simulations

Auth: Tenant-scoped API key · read scope

Parameters:

Name Type Location Required Description
tenantId string path Yes Format: uuid
processId string path Yes Format: uuid
limit integer query No Maximum number of items to return
offset integer query No Number of items to skip

Response (200):

List of simulations

[
	{
		"id": "00000000-0000-0000-0000-000000000000",
		"displayName": "string",
		"datasetName": "string",
		"startTime": "2024-03-15T16:30:00Z",
		"endTime": "2024-03-15T16:30:00Z",
		"useWarmUp": true
	}
]

Errors:

  • 400 Bad request: e.g. an invalid filter expression, a process without a model, an unsupported upload type or a missing required field
  • 401 Missing, invalid, disabled or expired API key
  • 404 Resource not found

Create a simulation (idempotent when an id is supplied)

Endpoint: POST /v1/tenant/{tenantId}/processes/{processId}/simulations

Auth: Tenant-scoped API key · write scope

Parameters:

Name Type Location Required Description
tenantId string path Yes Format: uuid
processId string path Yes Format: uuid

Request Body:

{
	"id": "00000000-0000-0000-0000-000000000000",
	"displayName": "string",
	"datasetName": "string",
	"startTime": "2024-03-15T16:30:00Z",
	"endTime": "2024-03-15T16:30:00Z",
	"useWarmUp": true
}
Field Type Required Description
id string No Optional id for idempotent retries (must be a UUID)
Format: uuid
displayName string No Simulation name
Default: New Simulation
datasetName string No Name of the dataset the simulation runs on
startTime string No Simulation start time
Format: date-time
endTime string No Simulation end time
Format: date-time
useWarmUp boolean No Whether to discard the warm-up period
Default: false

Response (201):

Simulation created

{
	"simulation": {
		"id": "00000000-0000-0000-0000-000000000000",
		"displayName": "string"
	},
	"message": "string"
}
Field Type Required Description
simulation object Yes
message string Yes

Errors:

  • 400 Bad request: e.g. an invalid filter expression, a process without a model, an unsupported upload type or a missing required field
  • 401 Missing, invalid, disabled or expired API key
  • 404 Resource not found
  • 409 The request conflicts with the current state (e.g. a seat gate or a reused id)

Get a simulation with its element settings, attributes and resources

Endpoint: GET /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}

Auth: Tenant-scoped API key · read scope

Parameters:

Name Type Location Required Description
tenantId string path Yes Format: uuid
processId string path Yes Format: uuid
simulationId string path Yes Format: uuid

Response (200):

Simulation details

{
	"simulation": {
		"id": "00000000-0000-0000-0000-000000000000",
		"displayName": "string",
		"datasetName": "string",
		"startTime": "2024-03-15T16:30:00Z",
		"endTime": "2024-03-15T16:30:00Z",
		"useWarmUp": true
	},
	"elementSettings": [
		{
			"simulationId": "00000000-0000-0000-0000-000000000000",
			"modelElementId": "00000000-0000-0000-0000-000000000000",
			"settings": {
				"processingTimeDistribution": [
					{
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"distribution": {
							"type": "Fixed",
							"value": 0
						},
						"timeUnit": "seconds",
						"rateUnit": "perTimeSlot"
					}
				],
				"processingTimeUnit": "seconds",
				"updateAttributeRules": [
					{
						"id": "string",
						"attributeId": "00000000-0000-0000-0000-000000000000",
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"newValue": "string",
						"isEnabled": true
					}
				],
				"requiredResources": [
					{
						"resourceId": "00000000-0000-0000-0000-000000000000",
						"amount": 0
					}
				],
				"caseStartsDistribution": [
					{
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"distribution": {
							"type": "Fixed",
							"value": 0
						},
						"timeUnit": "seconds",
						"rateUnit": "perTimeSlot"
					}
				],
				"caseStartsTimeUnit": "perTimeSlot",
				"capacityInterval": "perHour",
				"skipChanceDistribution": [
					{
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"distribution": {
							"type": "Fixed",
							"value": 0
						},
						"timeUnit": "seconds",
						"rateUnit": "perTimeSlot"
					}
				],
				"queueStrategy": "fifo",
				"chanceToTakeDistribution": [
					{
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"distribution": {
							"type": "Fixed",
							"value": 0
						},
						"timeUnit": "seconds",
						"rateUnit": "perTimeSlot"
					}
				]
			}
		}
	],
	"attributes": [
		{
			"id": "00000000-0000-0000-0000-000000000000",
			"simulationId": "00000000-0000-0000-0000-000000000000",
			"displayName": "string",
			"valueDistribution": {
				"type": "Number",
				"numberDistributions": [
					{
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"distribution": {
							"type": "Fixed",
							"value": 0
						},
						"timeUnit": "seconds",
						"rateUnit": "perTimeSlot",
						"id": "string",
						"isEnabled": true,
						"isDefault": true
					}
				],
				"textDistributions": [
					{
						"id": "string",
						"timeslot": {
							"periodicity": "Always"
						},
						"isEnabled": true,
						"isDefault": true,
						"mode": "list",
						"textValues": [
							{
								"id": "string",
								"value": "string",
								"chance": 0
							}
						]
					}
				]
			},
			"simulationAttributeType": "string"
		}
	],
	"resources": [
		{
			"id": "00000000-0000-0000-0000-000000000000",
			"simulationId": "00000000-0000-0000-0000-000000000000",
			"displayName": "string",
			"levelDistribution": [
				{
					"timeslot": {
						"periodicity": "Always"
					},
					"conditions": [
						{
							"type": "Values",
							"attribute": "string",
							"values": [
								"string"
							]
						}
					],
					"distribution": {
						"type": "Fixed",
						"value": 0
					},
					"timeUnit": "seconds",
					"rateUnit": "perTimeSlot"
				}
			],
			"attributeId": "00000000-0000-0000-0000-000000000000"
		}
	]
}
Field Type Required Description
simulation object Yes Simulation header
elementSettings object[] Yes Per-element simulation settings
attributes object[] Yes Simulated attributes
resources object[] Yes Resource pools

Errors:

  • 400 Bad request: e.g. an invalid filter expression, a process without a model, an unsupported upload type or a missing required field
  • 401 Missing, invalid, disabled or expired API key
  • 404 Resource not found

Update a simulation (fields and/or element settings)

Endpoint: PUT /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}

Auth: Tenant-scoped API key · write scope

Parameters:

Name Type Location Required Description
tenantId string path Yes Format: uuid
processId string path Yes Format: uuid
simulationId string path Yes Format: uuid

Request Body:

{
	"displayName": "string",
	"datasetName": "string",
	"startTime": "2024-03-15T16:30:00Z",
	"endTime": "2024-03-15T16:30:00Z",
	"useWarmUp": true,
	"elementSettings": [
		{
			"modelElementId": "00000000-0000-0000-0000-000000000000",
			"settings": {
				"caseStartsDistribution": [
					{
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"distribution": {
							"type": "Fixed",
							"value": 0
						},
						"timeUnit": "seconds",
						"rateUnit": "perTimeSlot"
					}
				],
				"processingTimeDistribution": [
					{
						"timeslot": {
							"periodicity": "Always"
						},
						"conditions": [
							{
								"type": "Values",
								"attribute": "string",
								"values": [
									"string"
								]
							}
						],
						"distribution": {
							"type": "Fixed",
							"value": 0
						},
						"timeUnit": "seconds",
						"rateUnit": "perTimeSlot"
					}
				]
			}
		}
	]
}
Field Type Required Description
displayName string No Simulation name
datasetName string No Name of the dataset the simulation runs on
startTime string No Simulation start time
Format: date-time
endTime string No Simulation end time
Format: date-time
useWarmUp boolean No Whether to discard the warm-up period
elementSettings object[] No Per-element settings overrides

Response (200):

Simulation updated

{
	"message": "string"
}
Field Type Required Description
message string Yes

Errors:

  • 400 Bad request: e.g. an invalid filter expression, a process without a model, an unsupported upload type or a missing required field
  • 401 Missing, invalid, disabled or expired API key
  • 404 Resource not found

Hard-delete a simulation

Endpoint: DELETE /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}

Auth: Tenant-scoped API key · write scope

Parameters:

Name Type Location Required Description
tenantId string path Yes Format: uuid
processId string path Yes Format: uuid
simulationId string path Yes Format: uuid

Response (200):

Simulation deleted

{
	"message": "string"
}
Field Type Required Description
message string Yes

Errors:

  • 400 Bad request: e.g. an invalid filter expression, a process without a model, an unsupported upload type or a missing required field
  • 401 Missing, invalid, disabled or expired API key
  • 404 Resource not found

These endpoints use AI to automatically generate simulation settings based on the process model.

Generate simulation settings via AI (async; poll the status endpoint)

Endpoint: POST /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}/generate-settings

Auth: Tenant-scoped API key · write scope · rate limit 2 req/s (burst 4)

Parameters:

Name Type Location Required Description
tenantId string path Yes Format: uuid
processId string path Yes Format: uuid
simulationId string path Yes Format: uuid

Request Body:

{
	"processDescription": "string",
	"additionalContext": "string"
}
Field Type Required Description
processDescription string No
additionalContext string No

Response (200):

Generation started / result

{
	"message": "string"
}
Field Type Required Description
message string Yes

Errors:

  • 400 Bad request: e.g. an invalid filter expression, a process without a model, an unsupported upload type or a missing required field
  • 401 Missing, invalid, disabled or expired API key
  • 404 Resource not found

Poll simulation settings generation status

Endpoint: GET /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}/generate-settings/status

Auth: Tenant-scoped API key · write scope

Parameters:

Name Type Location Required Description
tenantId string path Yes Format: uuid
processId string path Yes Format: uuid
simulationId string path Yes Format: uuid

Response (200):

Generation status

{
	"message": "string"
}
Field Type Required Description
message string Yes

Errors:

  • 400 Bad request: e.g. an invalid filter expression, a process without a model, an unsupported upload type or a missing required field
  • 401 Missing, invalid, disabled or expired API key
  • 404 Resource not found

Start a simulation run (async; results land in the process datatables)

Endpoint: POST /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}/run

Auth: Tenant-scoped API key · write scope · rate limit 5 req/s (burst 10)

Parameters:

Name Type Location Required Description
tenantId string path Yes Format: uuid
processId string path Yes Format: uuid
simulationId string path Yes Format: uuid

Response (200):

Simulation started

{
	"message": "string"
}
Field Type Required Description
message string Yes

Errors:

  • 400 Bad request: e.g. an invalid filter expression, a process without a model, an unsupported upload type or a missing required field
  • 401 Missing, invalid, disabled or expired API key
  • 404 Resource not found

Get the status of the last simulation run (derived from the output datatable)

Endpoint: GET /v1/tenant/{tenantId}/processes/{processId}/simulations/{simulationId}/run/status

Auth: Tenant-scoped API key · read scope

Parameters:

Name Type Location Required Description
tenantId string path Yes Format: uuid
processId string path Yes Format: uuid
simulationId string path Yes Format: uuid

Response (200):

Run status

{
	"state": "notStarted",
	"startedAt": "2024-03-15T16:30:00Z",
	"completedAt": "2024-03-15T16:30:00Z",
	"step": "string",
	"casesSimulated": 0,
	"targetCases": 0,
	"eventsGenerated": 0,
	"errorMessage": "string",
	"simulationId": "00000000-0000-0000-0000-000000000000"
}
Field Type Required Description
state notStarted | running | processing | ready | error Yes Allowed values: notStarted, running, processing, ready, error
startedAt string No Format: date-time
completedAt string No Format: date-time
step string No
casesSimulated number No
targetCases number No
eventsGenerated number No
errorMessage string No
simulationId string Yes Format: uuid

Errors:

  • 400 Bad request: e.g. an invalid filter expression, a process without a model, an unsupported upload type or a missing required field
  • 401 Missing, invalid, disabled or expired API key
  • 404 Resource not found

Design better processes. Build a connected architecture. Stay in control.

Get instant access with no credit card and no waiting. Turn the way your organization works into clear, connected process designs.

Build your process architecture, define ownership and controls, and align roles and responsibilities across every level.

Start your free trial and create one reliable foundation for governing, managing, and continuously improving your processes.