DiscordNext API
v1A JSON REST API to read and act on your tickets, categories, panels and stats from your own tools. Available on the Expert plan.
https://discordnext.com/apiIntroduction
Every request is scoped to a single Discord server via its API key. Responses are JSON with snake_case fields. Lists return { object: "list", data: [...] } with total, limit and offset.
Authentication
Create a key in your dashboard under API (Expert plan). It's shown once — store it safely. Send it as a Bearer token:
Authorization: Bearer dn_live_xxxxxxxxxxxxxxxxxxxxxxxxKeys are scoped to one server. Revoking a key in the dashboard takes effect immediately.
Rate limits
Up to 120 requests per minute per key. Exceeding it returns 429 with a Retry-After header.
Errors
Standard HTTP status codes. Failures return a JSON body with a message.
| Status | Meaning |
|---|---|
| 401 | Missing, invalid or revoked key |
| 403 | The server isn't on the Expert plan |
| 404 | Resource not found (or not in your server) |
| 409 | Conflict (e.g. ticket already closed) |
| 429 | Rate limit exceeded |
List tickets, newest first. Filter by status or category and paginate.
status | string | open · claimed · waiting · closed |
category_id | string | filter to one category |
limit | int | 1–100 (default 25) |
offset | int | pagination offset |
curl https://discordnext.com/api/v1/tickets \
-H "Authorization: Bearer $DN_KEY"{
"object": "list",
"total": 142,
"limit": 25,
"offset": 0,
"data": [
{
"id": "f3a…",
"number": 42,
"status": "open",
"priority": "high",
"creator": { "id": "1007…", "name": "luna" },
"claimed_by": null,
"category": { "id": "c1…", "name": "Support", "emoji": "🛟", "color": "#6366f1" },
"created_at": "2026-06-05T16:38:00.000Z"
}
]
}Retrieve a single ticket by id.
curl https://discordnext.com/api/v1/tickets/{id} \
-H "Authorization: Bearer $DN_KEY"The stored HTML transcript (closed tickets with retention enabled).
curl https://discordnext.com/api/v1/tickets/{id}/transcript \
-H "Authorization: Bearer $DN_KEY"Set the ticket priority and post a notice in the channel.
priority | stringrequired | low · medium · high · urgent |
curl -X POST https://discordnext.com/api/v1/tickets/{id}/priority \
-H "Authorization: Bearer $DN_KEY" \
-H "Content-Type: application/json" \
-d '{"priority":"high"}'Assign the ticket to a staff member.
user_id | stringrequired | Discord user ID |
name | string | display name (optional) |
curl -X POST https://discordnext.com/api/v1/tickets/{id}/assign \
-H "Authorization: Bearer $DN_KEY" \
-H "Content-Type: application/json" \
-d '{"user_id":"392384246737534978","name":"Dodo"}'Post a note into the ticket, optionally to the internal staff thread.
content | stringrequired | max 2000 chars |
internal | bool | true → staff thread |
curl -X POST https://discordnext.com/api/v1/tickets/{id}/note \
-H "Authorization: Bearer $DN_KEY" \
-H "Content-Type: application/json" \
-d '{"content":"Refund processed in Stripe.","internal":true}'Mark the ticket closed and notify the channel.
reason | string | optional close reason |
curl -X POST https://discordnext.com/api/v1/tickets/{id}/close \
-H "Authorization: Bearer $DN_KEY" \
-H "Content-Type: application/json" \
-d '{"reason":"Resolved."}'The server's ticket categories.
curl https://discordnext.com/api/v1/categories \
-H "Authorization: Bearer $DN_KEY"The server's ticket panels.
curl https://discordnext.com/api/v1/panels \
-H "Authorization: Bearer $DN_KEY"High-level ticket counts.
curl https://discordnext.com/api/v1/stats \
-H "Authorization: Bearer $DN_KEY"{ "total": 142, "open": 14, "closed_this_week": 31, "by_status": { "open": 9, "claimed": 5, "closed": 128 } }