Reference
Sandbox API
Use an mb_sandbox_ key on the normal API origin. Other supported endpoints operate on isolated fixtures. On POST /v1/messages, X-Miss-Blue-Sandbox-Scenario chooses sent, delivered, read, reply, failed, offline, rate_limited or timeout. See /docs/sandbox for limits and unsupported operations.
- GET/v1/sandbox
- DELETE/v1/sandbox
- GET/v1/sandbox/events
- POST/v1/sandbox/events
- POST/v1/sandbox/messages/{id}/simulate
Inspect this project's sandbox.
Returns the virtual number, retained fixtures, endpoints without secrets, delivery attempts, expiry and limits. Requires a sandbox key.
curl -X GET https://api.missblue.dev/v1/sandbox \
-H "Authorization: Bearer $MISS_BLUE_KEY"- 403A live or legacy test key was supplied.
Reset fixtures and sandbox webhook endpoints.
The virtual number ID and API keys stay valid. Returns the reset sandbox state.
curl -X DELETE https://api.missblue.dev/v1/sandbox \
-H "Authorization: Bearer $MISS_BLUE_KEY"List retained simulated events.
curl -X GET https://api.missblue.dev/v1/sandbox/events \
-H "Authorization: Bearer $MISS_BLUE_KEY"Response
{"data":[],"total":0}Emit a documented webhook type with test data.
| type* | string | One of the documented webhook event types. |
| data* | object | Fixture payload. It is marked sandbox and sent only to sandbox endpoints. |
curl -X POST https://api.missblue.dev/v1/sandbox/events \
-H "Authorization: Bearer $MISS_BLUE_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "call.ended",
"data": {
"call": {
"id": "fixture-call"
}
}
}'Advance a simulated outbound message.
Returns the message. Completed receipts cannot move backwards; each reply adds an inbound fixture.
| scenario* | string | sent, delivered, read, reply, failed, offline or timeout. |
| reply_text | string | Optional text for the reply scenario, up to 4096 bytes. |
curl -X POST https://api.missblue.dev/v1/sandbox/messages/8f14e45f-ceea-467a-9a1b-1b1e5f9e2c3d/simulate \
-H "Authorization: Bearer $MISS_BLUE_KEY" \
-H "Content-Type: application/json" \
-d '{
"scenario": "reply",
"reply_text": "Thanks, I received it."
}'- 409The message already passed the requested status or the fixture limit was reached.