Skip to main content
Use this guide to pick the right workflow, then follow the steps. All paths are session-scoped unless noted.

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:
Create tokens and scopes in Authentication. Writes always need an explicit scope; legacy tokens with empty scopes can read but cannot create or upload.

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

Example — full session transcript as one fragment:
Set 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:
By default, in-progress live-capture lines (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

  1. You upload the file in parts (large files supported, up to 50 GB).
  2. Sessionboard processes the file and runs transcription.
  3. You poll until transcript_status is ready.
  4. 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

Response includes key, upload_id, and part sizing. Keep these for the next steps.
2

Get upload URLs for each part

Response returns a URL per part number.
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

Response includes mediaItemId. The session is taken from the URL — do not send session_id in the body.
5

Poll until transcription is ready

Check transcript_status:Then list session transcriptions to read the generated fragments:
To cancel an in-progress upload, call POST .../media/upload/abort with key and upload_id.

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

Response includes a recording 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

Both fields are optional but help accuracy. Sessionboard accepts common formats and prepares the file for the recording pipeline when you complete.Calling complete again on an already-completed recording returns success without duplicating work.
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 .../transcriptions list and stitching fragments yourself.
This is not session composition (abstract → parent/child linking). Content packs live under /content. Requires read:transcriptions (legacy tokens with empty scopes still pass for reads).

What you get

Each session pack returns an items[] array. Filter by type: Event-level packs add event_report and a recap rollup.
1

Get one session pack (canonical)

Optional query params:Example response shape:
Join transcript text in your client:
2

List packs across an event

Returns { 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

Returns the event report document metadata and a recap rollup (quotes, topics, summary excerpts). Default expand is document,recap.
4

Download a PDF or summary card (optional)

Use the url on a document item, or call directly:
These stream binary PDF/PNG. Send the same X-Access-Token. Podcast url values are time-limited — refresh the content pack before expires_at.
Full reference, item catalog, and single-item fetch (GET .../content/items/{itemId}) live in Consuming session content. Keep using Playbooks 1–3 (or live capture) to write data; use Playbook 4 to read the composed view.

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.