verification
SDKverified with twilio-go v1.30.9verified with twilio-node 6.1.0 (floor)· surface 6 · not implemented 6 · differs 4
use it
# add to stunt.yaml
services:
twilio:
adapter: embedded:twilio-style
# then
$ stunt upThe embedded: source extracts this adapter from the binary — no git clone, fully offline.
how to mock the Twilio API locally
Install stunt, paste the service block above into stunt.yaml, run stunt up — then point your client at localhost instead of Twilio API. It works offline, keeps state across requests and restarts, and every response is synthetic: the route shapes, status codes, pagination, and webhook delivery follow the real Twilio API 2010-04-01 surface — the data is fake, the behavior is real.
backing stores
messagescallsverifications
api surface (6)
generated from the adapter manifest — exactly what boots, nothing more · covers 2% of the real API's 197 routes (derived from sdk twilio-node @ 6.1.0 (floor))
6 routes
POST/2010-04-01/Accounts/{account_sid}/Messages.json
GET/2010-04-01/Accounts/{account_sid}/Messages.json
GET/2010-04-01/Accounts/{account_sid}/Messages/{sid}
POST/2010-04-01/Accounts/{account_sid}/Calls.json
POST/v2/Services/{service_sid}/Verification
POST/v2/Services/{service_sid}/VerificationCheck
SDK-verified behaviors (8)
- ✓CreateMessage (SM sid assigned)
- ✓FetchMessage poll reaches terminal state
- ✓+15005550001 magic number -> failed
- ✓ListMessage To filter honored
- ✓status callbacks verify against Twilio's HMAC-SHA1 formula
- ✓Create + SDK fetches drive the lifecycle
- ✓Callbacks verified by twilio-node's own validateRequest
- ✓The magic invalid number -> failed
Not implemented (6)
- No message redact/cancel or scheduled-send endpoints
- Calls are create-only: no GET /Calls list, GET /Calls/{Sid}, or recordings
- No Messaging Services, Phone Numbers, or Addresses management
- No Verify services CRUD, verification listing, or attempts endpoints
- No Media resource for MMS attachments (list/content fetch)
- Call Url is never fetched; no TwiML execution is modeled
Differs from the real API (4)
- Message status derives from the clock on read: sent at +1s, delivered at +3s after send
- Verify codes are deterministic: last 6 digits of the To number, not a random SMS code
- simulate_fail:true in the POST body is a simulator extension forcing undelivered (30007)
- PageSize omitted returns all messages in one page; real Twilio defaults to 50
want more of the Twilio API surface? adapters are YAML + Starlark — the authoring guide covers adding routes, fixtures, and state machines. Open an issue for anything big first, or just file a PR — merged routes ship in the next release.