List composed session content for an event
US Region: https://public-api.sessionboard.com · EU Region: https://public-api-eu.sessionboard.com
Paginated list of session content packs (composed transcript, preferred summary, insights, podcast status, and document links). Prefer this over the raw polymorphic transcriptions list for mobile and partner apps.
Requires read:transcriptions scope (legacy tokens with empty scopes pass).
Default packs are compact (elements empty on transcription items). Pass
expand=items (plus other types) for full element arrays.
Request example
curl --request GET \ --url 'https://public-api.sessionboard.com/v1/event/{eventId}/content' \ --header 'x-access-token: <api-token>'const response = await fetch('https://public-api.sessionboard.com/v1/event/{eventId}/content', { method: 'GET', headers: { "x-access-token": "<api-token>" },});
const data = await response.json();console.log(data);import requests
response = requests.request( "GET", "https://public-api.sessionboard.com/v1/event/{eventId}/content", headers={ "x-access-token": "<api-token>" },)
print(response.json())<?php
$curl = curl_init();
curl_setopt_array($curl, [ CURLOPT_URL => "https://public-api.sessionboard.com/v1/event/{eventId}/content", CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "x-access-token: <api-token>", ],]);
$response = curl_exec($curl);curl_close($curl);
echo $response;package main
import ( "fmt" "io" "net/http")
func main() { req, _ := http.NewRequest("GET", "https://public-api.sessionboard.com/v1/event/{eventId}/content", nil) req.Header.Add("x-access-token", "<api-token>")
res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))}HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://public-api.sessionboard.com/v1/event/{eventId}/content")) .header("x-access-token", "<api-token>") .method("GET", HttpRequest.BodyPublishers.noBody()) .build();
HttpResponse<String> response = HttpClient.newHttpClient() .send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());Try it
Response headers
Authorizations
x-access-tokenstringheaderOrganization API token. Generate from Organization Settings → API Tokens.
AuthorizationBearer <token>headerorOAuth 2.1 access token. Obtained via the OAuth PKCE flow at
/oauth/token.
Send one of these. See Authentication.
Path parameters
eventIdintegerpathrequiredEvent ID
Query parameters
pageintegerqueryPage number for pagination.
- Default
1- Minimum
1- Maximum
999
pageSizeintegerqueryNumber of results per page.
The event-settings list endpoints (tags, tracks, levels, formats, rooms, languages, statuses) also accept the older spelling
page_size, and used to accept only that — a request sendingpageSizesilently got the default 25. Both now work,pageSizewins when both are sent, and on these endpoints a value outside 1–100 is clamped rather than rejected. Everywhere elsepageSizeis the only spelling.- Default
25- Minimum
1- Maximum
100
session_idstring<uuid>queryexpandstringqueryComma-separated item types. Default
transcription,summary,insight,podcast,document. Additemson the event list for full transcription elements (list is compact by default).expand=itemsalone still includes the default types. Session GET always returns full elements.- Example
"transcription,summary,items"
interval_secintegerqueryOptional time window (seconds) for rechunking same-speaker transcript elements. Omit for speaker turns only. Clamped to 3600.
- Minimum
1- Maximum
3600
providerstringqueryPreferred summary provider when multiple exist.
- Allowed values
"claude", "openai"
Responses
200application/json
OK
dataSessionContent[]Show child attributes
idstring<uuid>Session id
event_idintegertitlestring | nullstarts_atstring<date-time> | nullupdated_atstring<date-time>speakersobject[]Show child attributes
idstringlabelstringnamestring | null
has_transcriptionbooleanhas_summarybooleanhas_podcastbooleanitemsContentItem[]Show child attributes
idstring<uuid> | string | any | nullOption 1
string<uuid>
Option 2
string
typestring- Allowed values
"transcription", "summary", "insight", "podcast", "document", "recap"
session_idstring<uuid>textstringFull joined transcript (transcription items).
elementsTranscriptionElement[]Show child attributes
valuestringspeakerobjectShow child attributes
idstringlabelstringnamestring | null
start_timenumberend_timenumberfragment_idsstring<uuid>[]
fragment_countintegerinterval_secinteger | nulllanguage_codestringsummary_typestringproviderstringcontentobjecttopicsobject[]insight_typestringnamestringmetadataobject | nullstatusstringurlstring | nullduration_secinteger | nullgenerated_atstring<date-time> | nullexpires_atstring<date-time> | nulldocument_typestring- Allowed values
"summary_pdf", "summary_card", "event_report"
content_typestringscopestringquotesobject[]summariesobject[]created_atstring<date-time>updated_atstring<date-time>
paginationobjectShow child attributes
current_pageintegerpage_sizeintegertotal_pagesintegertotal_resultsinteger
403
Missing read:transcriptions scope
Response examples
{ "data": [ { "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "event_id": 123, "title": "<string>", "starts_at": "2026-01-15T09:30:00Z", "updated_at": "2026-01-15T09:30:00Z", "speakers": [ { "id": "<string>", "label": "<string>", "name": "<string>" } ], "has_transcription": true, "has_summary": true, "has_podcast": true, "items": [ { "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "type": "transcription", "session_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "text": "<string>", "elements": [ { "value": "<string>", "speaker": { "id": null, "label": null, "name": null }, "start_time": 123.45, "end_time": 123.45, "fragment_ids": [ null ] } ], "fragment_count": 123, "interval_sec": 123, "language_code": "<string>", "summary_type": "<string>", "provider": "<string>", "content": {}, "topics": [ {} ], "insight_type": "<string>", "name": "<string>", "metadata": {}, "status": "<string>", "url": "<string>", "duration_sec": 123, "generated_at": "2026-01-15T09:30:00Z", "expires_at": "2026-01-15T09:30:00Z", "document_type": "summary_pdf", "content_type": "<string>", "scope": "<string>", "quotes": [ {} ], "summaries": [ {} ], "created_at": "2026-01-15T09:30:00Z", "updated_at": "2026-01-15T09:30:00Z" } ] } ], "pagination": { "current_page": 123, "page_size": 123, "total_pages": 123, "total_results": 123 }}