Skip to main content
For step-by-step integration flows, start with the Uploading session files guide.
Session files are not the media or recording upload flow. Use Media & Transcriptions for video/audio that should be transcribed or stored as session recordings.

Upload paths

One multipart call — Sessionboard detects size and MIME type, scans the file, and returns the attached Content object.
  1. POST .../files/upload with multipart field file
  2. Optional form fields: title, assigned_participant_id

Upload slots

Organizers can define what they ask speakers for as upload slots — Poster, Presentation, Handout — each with its own deadline, accepted file types and file count (Program → Settings → Files → Use upload slots). GET /v1/event/{eventId}/content-slots lists them in the order speakers see them, and every session file carries content_slot_id pointing at the slot it answers, so a poster is distinguishable from a deck without inspecting filenames or MIME types. Events still on a single file request return an empty slot list and content_slot_id: null on every file. Slot definitions are read-only through the API. Uploading into a slot. POST .../files and POST .../files/upload accept an optional content_slot_id. Ask GET /v1/event/{eventId}/content-slots?session_id={sessionId} which slots apply to the session, then send the slot’s id with the file. API callers act as the organization, so no slot deadline applies and a file may still be attached without a slot — but a slot you name is a contract: it must be active, apply to the session, accept the file’s declared type and have room under its max_files, or the request answers 400 naming the slot. The file’s type is derived from the slot’s content_type.

Scopes

Endpoints

List upload slots

GET /v1/event//content-slots

Simple upload

POST /v1/event//sessions//files/upload

List session files

GET /v1/event//sessions//files

Start direct upload

POST /v1/event//sessions//files

Complete direct upload

POST …/files//complete

Replace file bytes

POST …/files//replace

Update metadata

PUT /v1/event//sessions//files/

Response shape

File objects use the Content schema (id, url, title, filename, size, mimetype, type, label, assigned participant fields, timestamps). Direct-to-storage create/replace responses also include an upload object with url, method, and headers for the presigned PUT. type is the organizer-facing file type (presentation, handout, poster, holding_slide for slides Sessionboard generated, …) and label is the display label from the session’s Files tab. The list endpoint filters on it:
A generated holding slide keeps the same id when it is regenerated, so a client that cached the file id keeps working; only url, filename, size and updated_at change.