verification
use it
# add to stunt.yaml
services:
zendesk:
adapter: embedded:zendesk-style
# then
$ stunt upThe embedded: source extracts this adapter from the binary — no git clone, fully offline.
how to mock the Zendesk REST API locally
Install stunt, paste the service block above into stunt.yaml, run stunt up — then point your client at localhost instead of Zendesk REST 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 Zendesk REST API 2 surface — the data is fake, the behavior is real.
backing stores
ticketscommentsusersorganizationsgroupstagswebhooks
api surface (37)
generated from the adapter manifest — exactly what boots, nothing more
37 routes
GET/api/v2/tickets.json
POST/api/v2/tickets.json
POST/api/v2/tickets/{id}/comments.json
GET/api/v2/tickets/{id}/comments.json
POST/api/v2/tickets/{id}/tags.json
GET/api/v2/tickets/{id}.json
PUT/api/v2/tickets/{id}.json
DELETE/api/v2/tickets/{id}.json
GET/api/v2/users.json
GET/api/v2/organizations.json
GET/api/v2/groups.json
GET/api/v2/requests.json
GET/api/v2/views.json
GET/api/v2/triggers.json
GET/api/v2/webhooks.json
POST/api/v2/webhooks.json
DELETE/api/v2/webhooks/{id}.json
GET/api/v2/suspended_tickets.json
GET/api/v2/tickets
POST/api/v2/tickets
POST/api/v2/tickets/{id}/comments
GET/api/v2/tickets/{id}/comments
POST/api/v2/tickets/{id}/tags
GET/api/v2/tickets/{id}
PUT/api/v2/tickets/{id}
DELETE/api/v2/tickets/{id}
GET/api/v2/users
GET/api/v2/organizations
GET/api/v2/groups
GET/api/v2/search.json
GET/api/v2/requests
GET/api/v2/views
GET/api/v2/triggers
GET/api/v2/webhooks
POST/api/v2/webhooks
DELETE/api/v2/webhooks/{id}
GET/api/v2/suspended_tickets
SDK-verified behaviors (6)
- ✓create assigns a numeric id
- ✓show round-trips; status update persists
- ✓comment created at ticket-create time is readable
- ✓list includes the ticket
- ✓substring search finds it by subject
- ✓delete removes it
Not implemented (8)
- No ticket metrics, audits, fields, or forms endpoints
- No ticket create_many/update_many or import endpoints
- No macros, SLA policies, or satisfaction ratings endpoints
- No incremental exports (incremental/tickets, incremental/users)
- No attachments/uploads API
- Users, orgs, groups, views, triggers list-only; no create/update/delete
- No request create/update endpoints (GET /api/v2/requests is list-only)
- No webhook update (PUT/PATCH) or /webhooks/{id}/test endpoint
Differs from the real API (5)
- Search is substring-only over ticket subject/description; empty query returns all tickets
- GET /api/v2/suspended_tickets always returns an empty list
- Webhook deliveries use the {type, payload} envelope, not Zendesk placeholder bodies
- Webhook signing_secret is caller-supplied (omitted falls back to a public mock secret)
- per_page <= 0 disables cursor paging: all records returned, links.next null
want more of the Zendesk REST 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.