Published August 16, 2026

The Zendesk API, Practically

Almost everything in the agent interface is available over the API. Knowing which endpoint and which limit is most of the work.

Authentication

Three options, in increasing order of seriousness.

API token with an email address. Fastest to set up, fine for internal scripts, and it inherits that user permissions.
OAuth for anything customers install, since tokens are scoped and revocable.
Basic auth with a password. Avoid it.

Whichever you use, the credential carries a real user permissions, so create a dedicated service user rather than borrowing an admin account somebody might deactivate.

The endpoints you will actually use

Tickets. Create, update, list and show. Use side-loading to pull users and organizations in one request instead of a request per ticket.
Ticket comments. Separate from the ticket itself, which surprises people building an export.
Search. Convenient and rate limited more aggressively than the rest. Do not use it to enumerate large sets.
Incremental exports. The correct way to pull large volumes, cursor-based and designed for it.
Merge. Yes, the API can merge one ticket into another. It cannot tell you which two.
Webhooks and triggers. For reacting to changes rather than polling for them.

Rate limits, and how to live with them

Limits vary by plan and by endpoint. Assume you'll hit them and build for it.

Honour the `Retry-After` header on a 429 rather than retrying immediately.
Use exponential backoff with jitter, so a fleet of workers does not synchronise into a thundering herd.
Prefer webhooks to polling. Most rate limit problems are a poll loop that could have been an event.
Batch and side-load. One request with side-loaded users beats fifty requests for users.

What the API won't do for you

It exposes actions, not judgement. `PUT /api/v2/tickets/{id}/merge` will merge two tickets the moment you name them, and deciding which two is the entire problem.

Teams do build duplicate detection on top of it, and the honest version of that project is: maintain a live index of open tickets, compute similarity across subject and body, handle identity matching across email addresses and domains, tune thresholds, add exclusions, handle the rate limits, and keep it working as your queue changes. That's a product, not a script, which is why Ticket Merger exists.

Frequently asked questions

Can the Zendesk API merge tickets?+

Yes, there is a merge endpoint. It merges tickets you specify. Identifying the duplicates isn't part of it.

What is the Zendesk API rate limit?+

It varies by plan and endpoint, and search is limited more tightly than the rest. Build for 429 responses and honour Retry-After.

Should I poll or use webhooks?+

Webhooks, wherever you can. Polling burns your rate limit and adds latency for no benefit.

Skip the six-week build

Duplicate detection on the API is a product, not a weekend script. This one is already built and maintained.

Start free trial

14-day free trial. No credit card required.