Mission Tests
Run freeform mission tests against an IVR. A mission test places a real call, drives the conversation against a sector and mission you specify, and writes the verdict to a structured run record. Long-running. Poll the run id to track status.
5 endpoints
Real-time updates
The platform UI subscribes to a WebSocket gateway for live status as runs complete. The WebSocket gateway is Cognito-authenticated and not exposed to API-key callers. Poll GET /testing/mission-tests/{id} or GET /testing/compliance-reports/{phoneNumber} for status from the SDK.
/testing/mission-testsCreate and launch a freeform mission test. Long-running. Poll the returned id for status.
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| sector | string | required | Sector key from the catalogue (e.g. "banking", "healthcare") |
| mission | string | required | The objective the agent should pursue on the call |
| acceptance | string | required | Acceptance criteria used to grade the run |
| profile | object | required | Caller profile to drive the conversation |
| └ phoneNumber | string | required | Phone number to dial in E.164 format (e.g. +441234567890) |
| └ name | string | optional | Optional caller display name |
Request
curl -X POST -H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"sector":"banking","mission":"Reset my online banking password","acceptance":"Agent verifies identity and resets password","profile":{"phoneNumber":"+441234567890"}}' \
https://api.nopaque.co.uk/testing/mission-testsResponse
{
"id": "mtr_abc123",
"kind": "freeform",
"sector": "banking",
"mission": "Reset my online banking password",
"acceptance": "Agent verifies identity and resets password",
"profile": {
"phoneNumber": "+441234567890"
},
"status": "queued",
"createdAt": "2026-05-06T12: 00: 00Z"
}/testing/mission-testsList mission test runs in the workspace, paginated.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | number | optional | Maximum items to return (default 50) |
| nextToken | string | optional | Pagination token from previous response |
Request
curl -H "x-api-key: YOUR_API_KEY" \
https://api.nopaque.co.uk/testing/mission-testsResponse
{
"items": [
{
"id": "mtr_abc123",
"kind": "freeform",
"status": "completed",
"createdAt": "2026-05-06T12: 00: 00Z"
}
],
"nextToken": null
}/testing/mission-tests/defaultsGet the default sector, mission, and acceptance values used to seed an ad-hoc run. Returns 503 with errorCode CATALOG_NOT_READY until the mission-tester service has published its SSM payload.
Request
curl -H "x-api-key: YOUR_API_KEY" \
https://api.nopaque.co.uk/testing/mission-tests/defaultsResponse
{
"sector": "banking",
"mission": "Reset my online banking password",
"acceptance": "Agent verifies identity and resets password"
}/testing/mission-tests/{id}Get a single mission test run by id. Poll this endpoint to track status.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | required | Mission test run id |
Request
curl -H "x-api-key: YOUR_API_KEY" \
https://api.nopaque.co.uk/testing/mission-tests/mtr_abc123Response
{
"id": "mtr_abc123",
"kind": "freeform",
"sector": "banking",
"mission": "Reset my online banking password",
"acceptance": "Agent verifies identity and resets password",
"profile": {
"phoneNumber": "+441234567890"
},
"status": "completed",
"verdict": "pass",
"createdAt": "2026-05-06T12: 00: 00Z",
"completedAt": "2026-05-06T12: 05: 00Z"
}/testing/mission-tests/{id}/cancelCancel an in-flight mission test run.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | required | Mission test run id |
Request
curl -X POST -H "x-api-key: YOUR_API_KEY" \
https://api.nopaque.co.uk/testing/mission-tests/mtr_abc123/cancelResponse
{
"id": "mtr_abc123",
"status": "cancelled",
"cancelledAt": "2026-05-06T12: 03: 00Z"
}