Limits by Endpoint
Rate-limited endpoints are grouped into independent buckets. Each bucket tracks its own counter, so hitting the limit on writes won’t block your reads.Endpoints without rate limits
The following endpoints do not enforce rate limits. They are legacy endpoints that query the database directly:GET /v1/events— list eventsPOST /v1/event/{eventId}/sessions— search sessionsPOST /v1/event/{eventId}/contacts— search contactsPOST /v1/event/{eventId}/sponsors— search sponsorsPOST /v1/event/{eventId}/exhibitors— search exhibitorsPOST /v1/event/{eventId}/speakers— search speakersGET /v1/event/{eventId}/speakers/{contactId}— get speakerPOST /v1/event/{eventId}/fields— search fieldsPOST /v1/event/{eventId}/{rooms,tracks,tags,formats,levels,languages}— search metadataPOST /v1/event/{eventId}/sessions/status— search sessions by statusPOST /v1/event/{eventId}/session-statuses— search session statusesGET/POST /v1/gdpr/requests— GDPR endpointsGET /v1/event/{eventId}/contacts/{contactId}/sessions— contact sessionsGET /v1/organization/{orgId}/contacts/*— org-level contact endpoints
Even though these endpoints don’t enforce rate limits today, we recommend building your integration to handle
429 responses gracefully in case limits are added in the future.Response Headers
Rate-limited endpoints include these headers on every response (both successful and rate-limited):Exceeding the Limit
When you exceed the rate limit, the API returns a429 status with a Retry-After header:
Custom Rate Limits
By default, each API token is limited to 100 requests per 15 minutes per category. If your integration requires a higher throughput, contact Sessionboard support to request an elevated rate limit for your token. Custom limits are applied per token and override the default for all rate-limited buckets. The 15-minute window stays the same — only the request count changes. For example, a token with a custom limit of 1,000 can make up to 1,000 requests per 15 minutes in each category.When a custom rate limit is active, the
RateLimit-Limit header reflects the token’s custom value, not the default 100.Best Practices
Cache responses
Cache API responses locally to reduce the number of requests. Many endpoints return data that doesn’t change frequently.
Use pagination
Use
page and pageSize parameters to fetch only the data you need instead of requesting large datasets.Handle 429 gracefully
When you receive a 429 response, wait for the
Retry-After duration before making another request. Implement exponential backoff for retries.Batch operations
Where possible, use bulk endpoints instead of making many individual requests. Bulk operations count as a single request against the rate limit.

