REST API Reference

DiscordNext API

v1

A JSON REST API to read and act on your tickets, categories, panels and stats from your own tools. Available on the Expert plan.

Base URL https://discordnext.com/api

Introduction

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:

http
Authorization: Bearer dn_live_xxxxxxxxxxxxxxxxxxxxxxxx

Keys 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.

StatusMeaning
401Missing, invalid or revoked key
403The server isn't on the Expert plan
404Resource not found (or not in your server)
409Conflict (e.g. ticket already closed)
429Rate limit exceeded

List tickets, newest first. Filter by status or category and paginate.

Query parameters
statusstringopen · claimed · waiting · closed
category_idstringfilter to one category
limitint1–100 (default 25)
offsetintpagination offset
Request
curl
curl https://discordnext.com/api/v1/tickets \
  -H "Authorization: Bearer $DN_KEY"
Response · 200
json
{
  "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.

Request
curl
curl https://discordnext.com/api/v1/tickets/{id} \
  -H "Authorization: Bearer $DN_KEY"

The stored HTML transcript (closed tickets with retention enabled).

Request
curl
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.

Body
prioritystringrequiredlow · medium · high · urgent
Request
curl
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.

Body
user_idstringrequiredDiscord user ID
namestringdisplay name (optional)
Request
curl
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.

Body
contentstringrequiredmax 2000 chars
internalbooltrue → staff thread
Request
curl
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.

Body
reasonstringoptional close reason
Request
curl
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.

Request
curl
curl https://discordnext.com/api/v1/categories \
  -H "Authorization: Bearer $DN_KEY"

The server's ticket panels.

Request
curl
curl https://discordnext.com/api/v1/panels \
  -H "Authorization: Bearer $DN_KEY"

High-level ticket counts.

Request
curl
curl https://discordnext.com/api/v1/stats \
  -H "Authorization: Bearer $DN_KEY"
Response · 200
json
{ "total": 142, "open": 14, "closed_this_week": 31, "by_status": { "open": 9, "claimed": 5, "closed": 128 } }
Need an endpoint we don't have yet? Tell us in the community Discord — the API grows with what Expert users actually automate.