Appearance
Limits and test numbers
Español: Límites y números de prueba.
Two things a new developer account needs to know: which limits apply to it and how they rise, and which numbers to use while you test.
Trust levels
An account created through the public sign-up starts at the lowest level and rises with data: days since activation, cumulative amount paid and verification. A public sign-up that has not verified a phone does not rise above the lowest level (POST /v1/phone_verification sends a six-digit SMS code, POST /v1/phone_verification/check redeems it, GET /v1/phone_verification reads the state). A platform operator can raise or lower a level by hand; a manual lowering stops the automatic rise until an operator raises it again.
The starting catalogue, as shipped in core v0.151.0:
| Level | Name | Calls per second | Simultaneous channels | Daily spend cap (USD) | Cap per call (USD) | Destinations | To reach it |
|---|---|---|---|---|---|---|---|
| 0 | new | 1 | 2 | 10 | 2 | domestic | — |
| 1 | established | 3 | 5 | 50 | 5 | domestic | 7 days and 50 USD paid |
| 2 | verified | 10 | 20 | 500 | 10 | domestic, international | 30 days, 500 USD paid and verification |
| 3 | trusted | 30 | 100 | 5,000 | 25 | domestic, international, premium | 90 days, 5,000 USD paid and verification |
These figures are platform data, not constants: the platform adjusts them as it learns, so treat the table as the starting point. A subaccount carries its own ceilings (max_cps, max_concurrent_channels, daily_spend_cap_usd) and the effective limit is always the lower of its own and its parent's (effective_limits; a value above the parent's is 422 exceeds_parent_limit).
Limits are not the only brake. Request rates per key (429 rate_limited) are in Rate limits & caps, and compliance gates apply to every real call whatever the level — see Errors & compliance.
Test numbers
With a dd_test_ key, POST /v1/dial/manual (number) and POST /v1/sms/messages (to, body) answer a deterministic simulated result chosen by the destination:
| Number | Call status | SMS status |
|---|---|---|
+13125550100 | completed | delivered |
+13125550101 | busy | undelivered |
+13125550102 | no_answer | sent |
+13125550103 | failed | failed |
- Any other destination is
422 unknown_test_number. - Records are read at
GET /v1/sandbox/records(kind=call|sms,limit1–200), newest first, apart from the real CDR (/v1/reports/cdrand/v1/sms/messagesnever include them). - A simulated call also queues
call.answered(answered only) andcall.endedto your subscribed endpoints, signed like a real delivery, withlivemode: falseandenvironment: "test". SMS has no webhook. - Nothing is metered or charged, and the routes that reach a carrier, buy numbers or mint a live credential answer
403 test_environment.
Walk-through: hosted quickstart. Every error code above is in the error index.