Skip to content

API Quickstart

DeskFork exposes a REST API for creating tickets, sending messages, and managing your workspace programmatically. All API calls require an API key.

Pass your API key in the Authorization header:

Authorization: Bearer ed_live_xxxx

Generate API keys at Settings → Developers → API Keys.

https://api.deskfork.com/v1
PlanRequests / minute
Starter60
Growth300
EnterpriseCustom
GET /v1/tickets?status=open&workspace=acme
Authorization: Bearer ed_live_xxxx
{
"data": [
{
"id": "TKT-0042",
"subject": "Order not received",
"status": "open",
"channel": "email",
"assignee": null,
"sla": { "breaches_at": "2026-06-29T10:00:00Z" },
"created_at": "2026-06-28T06:00:00Z"
}
],
"meta": { "total": 1, "page": 1, "per_page": 25 }
}
POST /v1/tickets
Authorization: Bearer ed_live_xxxx
Content-Type: application/json
{
"workspace": "acme",
"inbox": "support-email",
"subject": "API-created ticket",
"contact": { "email": "customer@deskfork.com", "name": "Jane Doe" },
"body": "I need help with my order #1234.",
"channel": "api"
}
POST /v1/tickets/TKT-0042/messages
Authorization: Bearer ed_live_xxxx
Content-Type: application/json
{
"body": "Thank you for reaching out! I am looking into your order now.",
"type": "reply"
}
POST /v1/tickets/TKT-0042/messages
Authorization: Bearer ed_live_xxxx
Content-Type: application/json
{
"body": "@alice please check the fulfilment system for order #1234",
"type": "internal",
"mentions": ["alice"]
}

Subscribe to ticket events via Settings → Developers → Webhooks. DeskFork signs each delivery with HMAC-SHA256:

X-DeskFork-Signature: sha256=<hex>
EventFired when
ticket.createdNew ticket arrives
ticket.assignedAssignee changes
ticket.status_changedStatus moves (open → pending → resolved)
message.createdNew reply or internal note
sla.warningSLA breach approaching
sla.breachedSLA target missed

Full OpenAPI 3.1 spec: https://api.deskfork.com/v1/openapi.json