Sandbox API
The simulated number every organization gets, for trying everything before Meta. 2 ops: get_sandbox, simulate_inbound_message.
The simulated number every organization gets, for trying everything before Meta.
get_sandbox
readGet the sandbox · POST /api/v1/get_sandbox · scope sandbox:read or GET …?input=
This organization's sandbox: a simulated WhatsApp number every organization gets, for trying messaging, templates, the inbox, AI agents and webhooks without Meta. Creates it on first call. Returns the sandbox account (use account.id wherever an account id is asked for), its phone number (phone_number.id is the sender id for sends), the test recipients you can message, the failure recipient, and an explanation of how the simulator behaves. Call it before sending sandbox messages.
curl -X POST https://getwabi.dev/api/v1/get_sandbox \ -H "Authorization: Bearer wabi_…"npx @meterapp/wabi get_sandbox{
"type": "object",
"properties": {}
}Simulate an inbound message · POST /api/v1/simulate_inbound_message · scope sandbox:write
Make a sandbox test customer send a WhatsApp text to this organization's sandbox number, as if they typed it on their phone. It arrives through the same webhook pipeline as real Meta traffic (inbox, AI agents, automations, your webhooks) within seconds, and opens that customer's 24-hour window so free-form replies are allowed. Use it to test an agent or a flow without a phone. Returns the raw provider event id and the simulated message's wamid.
curl -X POST https://getwabi.dev/api/v1/simulate_inbound_message \ -H "Authorization: Bearer wabi_…" \ -H "Content-Type: application/json" \ -d '{"text":"Hi, where is my order?"}'npx @meterapp/wabi simulate_inbound_message --json '{"text":"Hi, where is my order?"}'{
"type": "object",
"properties": {
"from": {
"default": "15550100001",
"description": "Test recipient WhatsApp id sending the message (get_sandbox → test_recipients). Default 15550100001.",
"type": "string",
"enum": [
"15550100000",
"15550100001",
"15550100002",
"15550100003",
"15550100004",
"15550100005"
]
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 4096,
"description": "The message text."
},
"name": {
"description": "The customer's WhatsApp profile name. Default: the test recipient's name.",
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"required": [
"text"
]
}