GET /v1/sessions/:id
Returns a single ended RPG session by its public UUID. Same payload as a row in GET /v1/sessions: full notes, transcript, participants, audio URL, plus the session’s campaign_id and campaign_name.
Use this when you already have a session’s meeting_id (from a transcript.ready webhook with recording_type: "session", a previous list call, or an MCP tool result) and want that one session.
Request
GET /v1/sessions/<meeting_id>
Authorization: Bearer <token>
| Path param | Required | Description |
|---|---|---|
meeting_id | Yes | The session’s public UUID (the meeting_id in list responses and webhook payloads). |
No query string. No request body.
Example
GET /v1/sessions/6ba7b810-9dad-11d1-80b4-00c04fd430c8
Authorization: Bearer <token>
Successful response
Status: 200 OK
Content-Type: application/json
{
"session": {
"meeting_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"guild_discord_id": "987654321098765432",
"recording_type": "session",
"discord_channel_name": "campaign-rp",
"participant_names": ["DM", "Rook"],
"notes": "## Session notes\n\n…",
"transcript": "DM [0:02]: …",
"audio_url": "https://rails.discmeet.com/recordings/6ba7b810-9dad-11d1-80b4-00c04fd430c8/audio.mp3",
"occurred_at": "2026-04-06T14:30:00Z",
"campaign_id": 42,
"campaign_name": "The Mystic Triad"
}
}
The top-level key is session (singular), wrapping one object with exactly the fields of a GET /v1/sessions row. See overview § Response object fields for what each field means.
Not found
Status: 404 Not Found
Returned when any of these is true:
- The
meeting_iddoesn’t exist, or belongs to a voice meeting rather than an RPG session (useGET /v1/meetings/:idfor those). - The session’s campaign belongs to a different Discord server than your API token authorises.
- The session hasn’t ended yet, or has no usable transcript.
{ "error": "not_found", "message": "Resource not found." }
If a meeting_id appears in a GET /v1/sessions response, it is always fetchable here, and the converse holds.
Related
- GET /v1/sessions: list sessions, filtered by
since,limit,pageorcampaign_id. - GET /v1/campaigns/:id: the campaign a session belongs to, with its characters and world.
- Webhooks: get a session’s
meeting_id(and the full payload) when its transcript is ready.