Pick your playbook
Playbook 1 — Sync transcript text
You already have the words (full transcript, summary, topics, or translation) and want them on a session.Requires
write:transcriptions to create; read:transcriptions to list or verify.Playbook 2 — Upload a media file
You have a video or audio file (MP4, MOV, MP3, etc.) and want Sessionboard to transcribe it automatically.Requires
write:media to upload; read:media to check status. If you upload on a session URL, transcript lines appear in the session transcription list when processing finishes — no separate fragment upload needed.Playbook 3 — Upload session audio
You have an audio file for a session’s recording archive (live capture, imported audio, or segments to stitch later).Requires
write:transcriptions. Accepts common audio formats; Sessionboard normalizes the file when you mark the upload complete.Playbook 4 — Pull composed content
You want a ready-to-render pack for a mobile app or partner integration — composed transcript, summary, insights, podcast, and PDF links in one call.Requires
read:transcriptions. Prefer this over the raw polymorphic transcriptions list.Not sure which to use? Playbook 1 is for text you generate elsewhere. Playbook 2 is for files you want transcribed inside Sessionboard (same flow as Import → Upload in the admin UI). Playbook 3 is for audio tied to the session recording archive, not the media library. Playbook 4 is for reading composed session/event content into an app.For PDFs, PowerPoint, and other session attachments (slides, handouts), use the separate Uploading session files guide — different scopes (
write:sessions) and endpoints.Before you begin
Replace{eventId} and {sessionId} with your event and session IDs. Send your API token on every request:
Playbook 1 — Sync transcript text
When to use it
- You produced a transcript outside Sessionboard and want it on a session.
- You need summaries, topic insights, or translations alongside transcript text.
Transcription types
1
Create a transcription
is_partial to false when the text is final. The response includes the new id.2
Verify on the session
3
Update or remove (optional)
Event-wide listing
To search across all sessions in an event:is_partial=true) are hidden. Add include_partial=true to include them.
Playbook 2 — Upload a media file
When to use it
- You have a video or audio file and want automatic transcription.
- The file should appear in Sessionboard’s media hub for the session.
What happens
- You upload the file in parts (large files supported, up to 50 GB).
- Sessionboard processes the file and runs transcription.
- You poll until
transcript_statusisready. - If the upload URL includes
{sessionId}, transcript fragments are added to that session automatically. You do not need Playbook 1 for the same content.
1
Start the upload
key, upload_id, and part sizing. Keep these for the next steps.2
Get upload URLs for each part
3
Upload each part
PUT the file bytes to each URL from the previous step. Save the ETag header from each response — you need it to finish the upload.4
Finish the upload
mediaItemId. The session is taken from the URL — do not send session_id in the body.5
Poll until transcription is ready
transcript_status:Then list session transcriptions to read the generated fragments:
Playbook 3 — Upload session audio
When to use it
- You have audio for a session’s recording archive (not the media library flow in Playbook 2).
- You need audio available for session playback, stitching, or downstream transcription inside Sessionboard.
Supported file types
wav, mp3, m4a, aac, flac, ogg, pcm
1
Start the recording upload
id and an upload.url. Use that URL for the next step.2
Upload the file
PUT the audio bytes to upload.url using the Content-Type from the response headers.3
Mark the upload complete
4
Confirm the recording
Playbook 4 — Pull composed content
When to use it
- You are building a mobile app, partner integration, or site that needs a ready-to-render transcript plus AI artifacts.
- You want one call per session (or a paginated event list) instead of paging the mixed raw
.../transcriptionslist and stitching fragments yourself.
/content.
Requires read:transcriptions (legacy tokens with empty scopes still pass for reads).
What you get
Each session pack returns anitems[] array. Filter by type:
Event-level packs add
event_report and a recap rollup.
1
Get one session pack (canonical)
Example response shape:
2
List packs across an event
{ data: [ SessionContent, … ], pagination: { current_page, page_size, total_pages, total_results } }.List packs are compact by default (transcription text without full elements). Pass expand=items (with other types) for full element arrays:3
Get event-level artifacts
document,recap.4
Download a PDF or summary card (optional)
Use the These stream binary PDF/PNG. Send the same
url on a document item, or call directly:X-Access-Token. Podcast url values are time-limited — refresh the content pack before expires_at.Scopes quick reference
Scoped read tokens must include the matching read scope. For example,
read:events alone does not allow transcription or media GET endpoints.
Related reference
- Consuming session content — content packs in depth
- Transcriptions & Media API overview
- Uploading session files — PDFs, PowerPoint, and document attachments
- Authentication & scopes
- OpenAPI — transcriptions endpoints

