GET /v1/sessions
Same behavior as GET /v1/meetings, but for ended RPG sessions on the server linked to your API key. Each row uses recording_type: "session".
Request
GET /v1/sessions?page=1
Authorization: Bearer <token>
| Query | Required | Description |
|---|---|---|
page | No | 1-based page (default 1). Must be a positive integer. |
since | No | ISO8601 cutoff (e.g. 2026-05-25T00:00:00Z). Defaults to 30 days ago. Max lookback 1 year. |
limit | No | Override the default page size. Default 50, capped at 50. |
campaign_id | No | Scope the list to one campaign. Resolve the id from GET /v1/campaigns by matching the user-facing campaign name. |
Successful response
Status: 200 OK
Content-Type: application/json
{
"sessions": [
{
"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"
}
],
"meta": {
"page": 1,
"per_page": 50,
"next": false,
"prev": false
}
}
The sessions array uses the same fields per item as meetings in the meetings endpoint, plus two session-only fields: campaign_id (integer) and campaign_name (string). Meetings have no campaign, so those two keys never appear on a meetings payload.
Related
Last updated on