Skip to main content
The Sessionboard Public API provides access to your event data including sessions, speakers, contacts, sponsors, and exhibitors. Use it to build integrations, sync data to external platforms, or power custom experiences for your events.

Base URL

Sessionboard operates in two regions. Use the base URL corresponding to where your organization’s data is hosted.

Authentication

Learn how to authenticate requests using API tokens.

Webhooks

Receive real-time notifications when data changes.

Build an Integration

Explore methods for syncing Sessionboard data to your platform.

API Reference

Browse the full endpoint reference with request and response schemas.

Media & Transcriptions

Sync transcript text, upload media files, or add session audio recordings.

Session Files

Attach PDFs and documents — simple upload (≤50 MB) or direct-to-storage (≤500 MB).

Changelog

See what’s new — endpoints, scopes, and response shape updates.

Pagination

All search endpoints return paginated results. The response body includes a pagination object alongside the results array.
Some legacy search endpoints return a results key instead of data. Check each endpoint’s response schema for the exact shape.
Use the page and pageSize query parameters (or body parameters on POST search endpoints) to navigate through results. The default page size is 25 and the maximum is 100.

Rate Limiting

The API enforces rate limits to ensure fair usage — see Rate Limiting for details. Build your integration to handle 429 Too Many Requests responses with exponential backoff.

Caching

To ensure fast response times, session search results are cached for 2 minutes:
  • POST /v1/event/{eventId}/sessions — session search
If you update data in Sessionboard and immediately run a search, you may see stale search results until the cache expires. GET /v1/event/{eventId}/sessions/{sessionId} (individual session retrieval) is not cached. It always returns the current record, so the updated_at value it returns is always safe to use in a follow-up PUT — see the 409 Conflict guidance. Webhook notifications are delivered in real time and are not subject to caching.

Fetching the OpenAPI spec

Do not revalidate the spec files by ETag. This documentation site serves /api-reference/openapi.json and /api-reference/openapi.yaml with the same ETag and the same Last-Modified, even though the two responses have different media types and different bodies. A conditional GET for one that carries the other’s validator returns 304 Not Modified, so a cache or a code-generation pipeline can satisfy a request for the JSON with YAML bytes.If you regenerate a client in CI, fetch each URL unconditionally — send no If-None-Match and no If-Modified-Since — and key your own cache on the response body, not on the validator. An unconditional GET always returns the correct body with the correct Content-Type.
The two files are generated from one source and always describe the same API, so pick whichever format your toolchain prefers.