Skip to content

List composed session content for an event

GET/v1/event/{eventId}/content

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

Terminal window
curl --request GET \
--url 'https://public-api.sessionboard.com/v1/event/{eventId}/content' \
--header 'x-access-token: <api-token>'

Try it

Authorization

Your token stays in this page. It is sent only to the region above and is never saved; it is gone when you leave or reload the page.

Path parameters
Query parameters
GET

Authorizations

  • x-access-tokenstringheader

    Organization API token. Generate from Organization Settings → API Tokens.

  • AuthorizationBearer <token>headeror

    OAuth 2.1 access token. Obtained via the OAuth PKCE flow at /oauth/token.

Send one of these. See Authentication.

Path parameters

  • eventIdintegerpathrequired

    Event ID

Query parameters

  • pageintegerquery

    Page number for pagination.

    Default
    1
    Minimum
    1
    Maximum
    999
  • pageSizeintegerquery

    Number 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 sending pageSize silently got the default 25. Both now work, pageSize wins when both are sent, and on these endpoints a value outside 1–100 is clamped rather than rejected. Everywhere else pageSize is the only spelling.

    Default
    25
    Minimum
    1
    Maximum
    100
  • session_idstring<uuid>query
  • expandstringquery

    Comma-separated item types. Default transcription,summary,insight,podcast,document. Add items on the event list for full transcription elements (list is compact by default). expand=items alone still includes the default types. Session GET always returns full elements.

    Example
    "transcription,summary,items"
  • interval_secintegerquery

    Optional time window (seconds) for rechunking same-speaker transcript elements. Omit for speaker turns only. Clamped to 3600.

    Minimum
    1
    Maximum
    3600
  • providerstringquery

    Preferred summary provider when multiple exist.

    Allowed values
    "claude", "openai"

Responses

200application/json

OK

  • dataSessionContent[]
    Show child attributes
    • idstring<uuid>

      Session id

    • event_idinteger
    • titlestring | null
    • starts_atstring<date-time> | null
    • updated_atstring<date-time>
    • speakersobject[]
      Show child attributes
      • idstring
      • labelstring
      • namestring | null
    • has_transcriptionboolean
    • has_summaryboolean
    • has_podcastboolean
    • itemsContentItem[]
      Show child attributes
      • idstring<uuid> | string | any | null
        Option 1

        string<uuid>

        Option 2

        string

      • typestring
        Allowed values
        "transcription", "summary", "insight", "podcast", "document", "recap"
      • session_idstring<uuid>
      • textstring

        Full joined transcript (transcription items).

      • elementsTranscriptionElement[]
        Show child attributes
        • valuestring
        • speakerobject
          Show child attributes
          • idstring
          • labelstring
          • namestring | null
        • start_timenumber
        • end_timenumber
        • fragment_idsstring<uuid>[]
      • fragment_countinteger
      • interval_secinteger | null
      • language_codestring
      • summary_typestring
      • providerstring
      • contentobject
      • topicsobject[]
      • insight_typestring
      • namestring
      • metadataobject | null
      • statusstring
      • urlstring | null
      • duration_secinteger | null
      • generated_atstring<date-time> | null
      • expires_atstring<date-time> | null
      • document_typestring
        Allowed values
        "summary_pdf", "summary_card", "event_report"
      • content_typestring
      • scopestring
      • quotesobject[]
      • summariesobject[]
      • created_atstring<date-time>
      • updated_atstring<date-time>
  • paginationobject
    Show child attributes
    • current_pageinteger
    • page_sizeinteger
    • total_pagesinteger
    • total_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
}
}

Get release notes by email

A short digest on the days something new goes live — each change with a link to its note in the release notes. No marketing, and one click to stop.

Company email addresses only. We’ll send one email to confirm it’s you. Already use Sessionboard? You can also turn this on under Community → What’s new.