Simulations API
List suites
Query parameters
Returns
200 with the fields below.
False if simulations are not turned on for the platform.
Suites, newest first. At most 200.
9 properties
The suite's id.
The agent the suite tests.
Display name.
Whether a failing run blocks publishing the agent: `off`, `warn` or `block`.
Number of cases in the suite.
What the suite covers.
The most recent run. Null if the suite has never been run.
18 properties
The run's id.
The suite that was run.
The agent that was tested.
The agent version tested. 0 is the live draft.
One of `queued`, `running`, `completed`, `cancelled` or `failed`.
What started the run: `manual` from the dashboard or `api`.
True if every case was run again even when an identical case had already run.
Number of cases in the run.
Cases that passed.
Cases that ran and did not pass.
Show 8 more parameters
Cases that could not finish because of an error.
Cases that were not run, for example after the run was cancelled or the budget ran out.
The most model turns the run may use.
Model turns used so far.
True if the run stopped early because it used its whole turn budget.
ISO 8601 time the run was created.
ISO 8601 time the run started. Null while queued.
ISO 8601 time the run finished. Null until then.
ISO 8601 creation time.
ISO 8601 time of the last change.
curl "https://api.dialgem.com/v1/simulations/suites" \
-H "X-API-Key: $DIALGEM_API_KEY"{
"enabled": false,
"suites": [
{
"id": "string",
"agent_id": "agent_123",
"name": "Example",
"description": "string",
"publish_gate": "string",
"case_count": 0,
"latest_run": {
"id": {},
"suite_id": {},
"agent_id": {},
"agent_version": {},
"status": {},
"trigger": {},
"fresh": {},
"total": {},
"passed": {},
"failed": {},
"errored": {},
"skipped": {}
},
"created_at": "string",
"updated_at": "string"
}
]
}Create suite
Request body application/json
Default "off"
Returns
201 with the fields below.
The suite's id.
The agent the suite tests.
Display name.
Whether a failing run blocks publishing the agent: `off`, `warn` or `block`.
Number of cases in the suite.
What the suite covers.
The most recent run. Null if the suite has never been run.
18 properties
The run's id.
The suite that was run.
The agent that was tested.
The agent version tested. 0 is the live draft.
One of `queued`, `running`, `completed`, `cancelled` or `failed`.
What started the run: `manual` from the dashboard or `api`.
True if every case was run again even when an identical case had already run.
Number of cases in the run.
Cases that passed.
Cases that ran and did not pass.
Show 8 more parameters
Cases that could not finish because of an error.
Cases that were not run, for example after the run was cancelled or the budget ran out.
The most model turns the run may use.
Model turns used so far.
True if the run stopped early because it used its whole turn budget.
ISO 8601 time the run was created.
ISO 8601 time the run started. Null while queued.
ISO 8601 time the run finished. Null until then.
ISO 8601 creation time.
ISO 8601 time of the last change.
curl -X POST "https://api.dialgem.com/v1/simulations/suites" \
-H "X-API-Key: $DIALGEM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"agent_id": "agent_123",
"name": "Example"
}'{
"id": "string",
"agent_id": "agent_123",
"name": "Example",
"description": "string",
"publish_gate": "string",
"case_count": 0,
"latest_run": {
"id": "string",
"suite_id": "suite_123",
"agent_id": "agent_123",
"agent_version": 0,
"status": "string",
"trigger": "string",
"fresh": false,
"total": 0,
"passed": 0,
"failed": 0,
"errored": 0,
"skipped": 0
},
"created_at": "string",
"updated_at": "string"
}Get suite
Path parameters
Returns
200 with the fields below.
The suite's id.
The agent the suite tests.
Display name.
Whether a failing run blocks publishing the agent: `off`, `warn` or `block`.
Number of cases in the suite.
The suite's cases, in order.
10 properties
The case's id.
The suite the case belongs to.
Display name.
Order of the case within its suite, starting at 0.
How the simulated caller behaves: either a fixed script of lines or a persona with a goal.
Dynamic variables given to the agent for this case.
What each tool answers during the case, keyed by tool name. Tools are never really called.
What must be true of the conversation for the case to pass.
ISO 8601 creation time.
ISO 8601 time of the last change.
What the suite covers.
The most recent run. Null if the suite has never been run.
18 properties
The run's id.
The suite that was run.
The agent that was tested.
The agent version tested. 0 is the live draft.
One of `queued`, `running`, `completed`, `cancelled` or `failed`.
What started the run: `manual` from the dashboard or `api`.
True if every case was run again even when an identical case had already run.
Number of cases in the run.
Cases that passed.
Cases that ran and did not pass.
Show 8 more parameters
Cases that could not finish because of an error.
Cases that were not run, for example after the run was cancelled or the budget ran out.
The most model turns the run may use.
Model turns used so far.
True if the run stopped early because it used its whole turn budget.
ISO 8601 time the run was created.
ISO 8601 time the run started. Null while queued.
ISO 8601 time the run finished. Null until then.
ISO 8601 creation time.
ISO 8601 time of the last change.
curl "https://api.dialgem.com/v1/simulations/suites/SUITE_ID" \
-H "X-API-Key: $DIALGEM_API_KEY"{
"id": "string",
"agent_id": "agent_123",
"name": "Example",
"description": "string",
"publish_gate": "string",
"case_count": 0,
"latest_run": {
"id": "string",
"suite_id": "suite_123",
"agent_id": "agent_123",
"agent_version": 0,
"status": "string",
"trigger": "string",
"fresh": false,
"total": 0,
"passed": 0,
"failed": 0,
"errored": 0,
"skipped": 0
},
"created_at": "string",
"updated_at": "string",
"cases": [
{
"id": "string",
"suite_id": "suite_123",
"name": "Example",
"position": 0,
"caller": {},
"dynamic_variables": {},
"tool_mocks": {},
"checks": [
{}
],
"created_at": "string",
"updated_at": "string"
}
]
}Update suite
Path parameters
Request body application/json
Returns
200 with the fields below.
The suite's id.
The agent the suite tests.
Display name.
Whether a failing run blocks publishing the agent: `off`, `warn` or `block`.
Number of cases in the suite.
What the suite covers.
The most recent run. Null if the suite has never been run.
18 properties
The run's id.
The suite that was run.
The agent that was tested.
The agent version tested. 0 is the live draft.
One of `queued`, `running`, `completed`, `cancelled` or `failed`.
What started the run: `manual` from the dashboard or `api`.
True if every case was run again even when an identical case had already run.
Number of cases in the run.
Cases that passed.
Cases that ran and did not pass.
Show 8 more parameters
Cases that could not finish because of an error.
Cases that were not run, for example after the run was cancelled or the budget ran out.
The most model turns the run may use.
Model turns used so far.
True if the run stopped early because it used its whole turn budget.
ISO 8601 time the run was created.
ISO 8601 time the run started. Null while queued.
ISO 8601 time the run finished. Null until then.
ISO 8601 creation time.
ISO 8601 time of the last change.
curl -X PATCH "https://api.dialgem.com/v1/simulations/suites/SUITE_ID" \
-H "X-API-Key: $DIALGEM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Example"
}'{
"id": "string",
"agent_id": "agent_123",
"name": "Example",
"description": "string",
"publish_gate": "string",
"case_count": 0,
"latest_run": {
"id": "string",
"suite_id": "suite_123",
"agent_id": "agent_123",
"agent_version": 0,
"status": "string",
"trigger": "string",
"fresh": false,
"total": 0,
"passed": 0,
"failed": 0,
"errored": 0,
"skipped": 0
},
"created_at": "string",
"updated_at": "string"
}Delete suite
Path parameters
Returns
204 with the resulting object.
curl -X DELETE "https://api.dialgem.com/v1/simulations/suites/SUITE_ID" \
-H "X-API-Key: $DIALGEM_API_KEY"Add case
Path parameters
Request body application/json
Returns
201 with the fields below.
The case's id.
The suite the case belongs to.
Display name.
Order of the case within its suite, starting at 0.
How the simulated caller behaves: either a fixed script of lines or a persona with a goal.
Dynamic variables given to the agent for this case.
What each tool answers during the case, keyed by tool name. Tools are never really called.
What must be true of the conversation for the case to pass.
ISO 8601 creation time.
ISO 8601 time of the last change.
curl -X POST "https://api.dialgem.com/v1/simulations/suites/SUITE_ID/cases" \
-H "X-API-Key: $DIALGEM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Example",
"caller": {},
"checks": [
{}
]
}'{
"id": "string",
"suite_id": "suite_123",
"name": "Example",
"position": 0,
"caller": {},
"dynamic_variables": {},
"tool_mocks": {},
"checks": [
{}
],
"created_at": "string",
"updated_at": "string"
}Start run
Path parameters
Request body application/json
No fields.
Returns
202 with the fields below.
The run's id.
The suite that was run.
The agent that was tested.
The agent version tested. 0 is the live draft.
One of `queued`, `running`, `completed`, `cancelled` or `failed`.
What started the run: `manual` from the dashboard or `api`.
True if every case was run again even when an identical case had already run.
Number of cases in the run.
Cases that passed.
Cases that ran and did not pass.
Show 8 more parameters
Cases that could not finish because of an error.
Cases that were not run, for example after the run was cancelled or the budget ran out.
The most model turns the run may use.
Model turns used so far.
True if the run stopped early because it used its whole turn budget.
ISO 8601 time the run was created.
ISO 8601 time the run started. Null while queued.
ISO 8601 time the run finished. Null until then.
curl -X POST "https://api.dialgem.com/v1/simulations/suites/SUITE_ID/runs" \
-H "X-API-Key: $DIALGEM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"fresh": false
}'{
"id": "string",
"suite_id": "suite_123",
"agent_id": "agent_123",
"agent_version": 0,
"status": "string",
"trigger": "string",
"fresh": false,
"total": 0,
"passed": 0,
"failed": 0,
"errored": 0,
"skipped": 0
}Update case
Path parameters
Request body application/json
Returns
200 with the fields below.
The case's id.
The suite the case belongs to.
Display name.
Order of the case within its suite, starting at 0.
How the simulated caller behaves: either a fixed script of lines or a persona with a goal.
Dynamic variables given to the agent for this case.
What each tool answers during the case, keyed by tool name. Tools are never really called.
What must be true of the conversation for the case to pass.
ISO 8601 creation time.
ISO 8601 time of the last change.
curl -X PATCH "https://api.dialgem.com/v1/simulations/cases/CASE_ID" \
-H "X-API-Key: $DIALGEM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Example"
}'{
"id": "string",
"suite_id": "suite_123",
"name": "Example",
"position": 0,
"caller": {},
"dynamic_variables": {},
"tool_mocks": {},
"checks": [
{}
],
"created_at": "string",
"updated_at": "string"
}Delete case
Path parameters
Returns
204 with the resulting object.
curl -X DELETE "https://api.dialgem.com/v1/simulations/cases/CASE_ID" \
-H "X-API-Key: $DIALGEM_API_KEY"List runs
Query parameters
Default 30
Returns
200 with the fields below.
Runs, newest first.
18 properties
The run's id.
The suite that was run.
The agent that was tested.
The agent version tested. 0 is the live draft.
One of `queued`, `running`, `completed`, `cancelled` or `failed`.
What started the run: `manual` from the dashboard or `api`.
True if every case was run again even when an identical case had already run.
Number of cases in the run.
Cases that passed.
Cases that ran and did not pass.
Show 8 more parameters
Cases that could not finish because of an error.
Cases that were not run, for example after the run was cancelled or the budget ran out.
The most model turns the run may use.
Model turns used so far.
True if the run stopped early because it used its whole turn budget.
ISO 8601 time the run was created.
ISO 8601 time the run started. Null while queued.
ISO 8601 time the run finished. Null until then.
curl "https://api.dialgem.com/v1/simulations/runs" \
-H "X-API-Key: $DIALGEM_API_KEY"{
"runs": [
{
"id": "string",
"suite_id": "suite_123",
"agent_id": "agent_123",
"agent_version": 0,
"status": "string",
"trigger": "string",
"fresh": false,
"total": 0,
"passed": 0,
"failed": 0,
"errored": 0,
"skipped": 0
}
]
}Get run
Path parameters
Returns
200 with the fields below.
The run's id.
The suite that was run.
The agent that was tested.
The agent version tested. 0 is the live draft.
One of `queued`, `running`, `completed`, `cancelled` or `failed`.
What started the run: `manual` from the dashboard or `api`.
True if every case was run again even when an identical case had already run.
Number of cases in the run.
Cases that passed.
Cases that ran and did not pass.
Show 9 more parameters
Cases that could not finish because of an error.
Cases that were not run, for example after the run was cancelled or the budget ran out.
The most model turns the run may use.
Model turns used so far.
True if the run stopped early because it used its whole turn budget.
One result per case, in order.
14 properties
The result's id.
The case's name when the run started.
Order of the case within the run, starting at 0.
One of `pending`, `passed`, `failed`, `errored` or `skipped`.
True if this result was reused from an earlier identical run rather than run again.
The simulated conversation, turn by turn.
The tool calls the agent made during the conversation.
Dynamic variables as they stood at the end of the conversation.
Each check and whether it passed.
Model turns this case used.
Show 4 more parameters
How long the case took, in milliseconds.
The case this result is for. Null if the case was deleted since.
Why the case failed, errored or was skipped.
ISO 8601 time the case finished.
ISO 8601 time the run was created.
ISO 8601 time the run started. Null while queued.
ISO 8601 time the run finished. Null until then.
curl "https://api.dialgem.com/v1/simulations/runs/RUN_ID" \
-H "X-API-Key: $DIALGEM_API_KEY"{
"id": "string",
"suite_id": "suite_123",
"agent_id": "agent_123",
"agent_version": 0,
"status": "string",
"trigger": "string",
"fresh": false,
"total": 0,
"passed": 0,
"failed": 0,
"errored": 0,
"skipped": 0
}Cancel run
Path parameters
Returns
200 with the fields below.
The run's id.
The suite that was run.
The agent that was tested.
The agent version tested. 0 is the live draft.
One of `queued`, `running`, `completed`, `cancelled` or `failed`.
What started the run: `manual` from the dashboard or `api`.
True if every case was run again even when an identical case had already run.
Number of cases in the run.
Cases that passed.
Cases that ran and did not pass.
Show 8 more parameters
Cases that could not finish because of an error.
Cases that were not run, for example after the run was cancelled or the budget ran out.
The most model turns the run may use.
Model turns used so far.
True if the run stopped early because it used its whole turn budget.
ISO 8601 time the run was created.
ISO 8601 time the run started. Null while queued.
ISO 8601 time the run finished. Null until then.
curl -X POST "https://api.dialgem.com/v1/simulations/runs/RUN_ID/cancel" \
-H "X-API-Key: $DIALGEM_API_KEY"{
"id": "string",
"suite_id": "suite_123",
"agent_id": "agent_123",
"agent_version": 0,
"status": "string",
"trigger": "string",
"fresh": false,
"total": 0,
"passed": 0,
"failed": 0,
"errored": 0,
"skipped": 0
}