The ticketing API for developers
Not another helpdesk with an API bolted on. Tickets are the primitive. Build exactly what you need.
import { DispatchTickets } from '@dispatchtickets/sdk';
const client = new DispatchTickets({ apiKey: 'sk_live_...' });
const ticket = await client.tickets.create(brandId, {
title: 'Order not received',
body: 'My order #12345 hasn\'t arrived...'
});Built for builders
Tickets as a primitive
Create, update, query tickets via REST API. Build your own UI, or use ours. Your call.
Multi-tenant by default
One API key, unlimited brands. Perfect for platforms, marketplaces, and agencies.
Flexible schema
custom_fields accepts any JSON. No rigid forms. Store whatever your app needs.
Ship support in minutes
const ticket = await dispatch.tickets.create({
brandId: 'br_xxx',
title: 'Cannot access my account',
customerEmail: 'user@example.com'
});const tickets = await dispatch.tickets.list({
brandId: 'br_xxx',
status: 'open'
});Technical features
REST API
Full CRUD on tickets, comments, attachments, webhooks
Webhooks
Real-time events for ticket.created, ticket.updated, comment.created
Multi-channel sources
Track origin: API, email, Slack, SMS, custom
Idempotency
Built-in support for safe retries
Cursor pagination
Efficient listing for large datasets
Custom fields
Arbitrary JSON, no schema restrictions
Open source admin UI
Don't want to build your own dashboard? Fork our open-source admin UI. Built with Next.js, shadcn/ui, and TanStack Query. Extend it, theme it, make it yours.
Works with your stack
TypeScript SDK
npm install @dispatchtickets/sdk
Email (Postmark/Resend)
Inbound email creates tickets automatically
Slack
Create tickets from Slack, reply from Slack
Webhooks
Push events to Zapier, n8n, or your backend