GET /v1/campaigns/:id
Returns one campaign with everything you curate for it in the dashboard: its characters (players and NPCs), items, locations and organizations. One call gets the campaign’s whole world, for example so an AI agent can answer “who is Captain Marrow?” or “what is the party carrying?”.
Request
GET /v1/campaigns/<id>
Authorization: Bearer <token>
| Path param | Required | Description |
|---|---|---|
id | Yes | The campaign’s numeric id, from GET /v1/campaigns or a session’s campaign_id. |
No query string. No request body.
Example
GET /v1/campaigns/42
Authorization: Bearer <token>
Successful response
Status: 200 OK
Content-Type: application/json
{
"campaign": {
"id": 42,
"name": "The Mystic Triad",
"description": "A heist across three floating cities.",
"active": true,
"total_sessions": 18,
"created_at": "2026-02-11T19:04:22Z",
"updated_at": "2026-10-12T21:40:05Z",
"characters": [
{ "id": 7, "name": "Captain Marrow", "description": "Smuggler who owes the party a favour.", "character_type": "npc", "active": true },
{ "id": 3, "name": "Rook", "description": "Halfling rogue.", "character_type": "player", "active": true }
],
"items": [
{ "id": 11, "name": "Skyglass Compass", "description": "Points to the nearest floating city.", "active": true }
],
"locations": [
{ "id": 5, "name": "Veyl", "description": "The lowest of the three cities.", "active": true }
],
"organizations": [
{ "id": 2, "name": "The Gilded Hand", "description": "Thieves' guild running Veyl's docks.", "active": true }
]
}
}
The campaign fields are the same as in GET /v1/campaigns. Each list is sorted by name, and every entry has id, name, description (or null) and active. Characters also have character_type: player or npc. The lists aren’t paginated.
Not found
Status: 404 Not Found when the campaign doesn’t exist or belongs to a different Discord server than your API token authorises.
{ "error": "not_found", "message": "Resource not found." }
Related
- GET /v1/campaigns: every campaign on the server, to find an id by name.
- GET /v1/sessions: the campaign’s sessions, with
campaign_id. - Characters: how characters are added and kept up to date.
Last updated on