Known differences

Zendesk

A Zendesk Support account that answers the Support API v2, incremental exports and Help Center reads zenpy and sync pipelines call, plus an MCP server.

Vendor reference: https://developer.zendesk.com/api-reference/ ↗. Machine-readable: compat/zendesk.json.

Surfaces

KindPathNotes
REST/api/v2tickets, users, organizations, comments, search, views, macros, triggers, webhooks
REST/api/v2/incrementaltimestamp and cursor incremental exports, ticket events
REST/api/v2/help_centerHelp Center content, read-only
Webhooks/api/v2/webhookstrigger-driven webhook delivery
MCP/mcpticket, user and organization tools with limit/offset paging

API versions: Support API v2

Supported

Not supported

Known differences and test guidance

ScenarioDifference from ZendeskIn your tests
Timestamp incremental export of a ticket you just wroteAs on Zendesk, tickets and ticket events from the most recent minute are withheld, and the window includes start_time, so records on the previous watermark come back.Upsert rather than insert, and do not expect a fresh write in the next delta within a minute. Use the cursor export to resume strictly after the last record.
Authentication in open modeAny credential is accepted and treated as the account owner unless it carries scopes or impersonates a user.Do not test credential rejection in open mode.
Webhook deliveryDelivery is best-effort and off the request path; retries use compressed backoff, and a persistently failing webhook is not deactivated. Private and loopback endpoints are refused with 422 by default.Poll your receiver for delivery rather than expecting it before the API call returns; do not test webhook deactivation.
Write timestampscreated_at/updated_at on writes use wall time; seeded data is deterministic.Do not assert that new records sort among the seeded history.
Rate limitsThere is no real per-account budget; 429s happen only when injected.Inject throttle or quota_limit to test backoff.
RestartsDurability is opt-in; MCP tool writes are not kept across a restart even when it is on.Treat each run as starting from the seeded account.

Fault injection

KeyWhat the client sees
throttle429 with Retry-After and Zendesk's "Number of allowed API requests per minute exceeded" body
fail_nextThe next N calls fail as throttle does, then clear
quota_limit429, the same body as throttle
error_rate500 {"error": "InternalServerError", "description": ...} for the given fraction of calls
latency_msFixed added latency on every data-plane request

Applies to every system