Get the Sessions workspace home
US Region: https://public-api.sessionboard.com · EU Region: https://public-api-eu.sessionboard.com
The workspace at a glance: the organization, the plan tier (self_serve or enterprise), every Sessions event (newest first) with its counts and its call for speakers, the setup checklist for the newest event, and what only the Sessionboard platform includes, each with locked for your plan. Reads only. Requires read:sessions. Refused for a key restricted to particular events. Also at GET /v1/sessions-workspace.
Request example
curl --request GET \ --url 'https://public-api.sessionboard.com/v1/organization/{orgId}/sessions-workspace' \ --header 'x-access-token: <api-token>'const response = await fetch('https://public-api.sessionboard.com/v1/organization/{orgId}/sessions-workspace', { method: 'GET', headers: { "x-access-token": "<api-token>" },});
const data = await response.json();console.log(data);import requests
response = requests.request( "GET", "https://public-api.sessionboard.com/v1/organization/{orgId}/sessions-workspace", headers={ "x-access-token": "<api-token>" },)
print(response.json())<?php
$curl = curl_init();
curl_setopt_array($curl, [ CURLOPT_URL => "https://public-api.sessionboard.com/v1/organization/{orgId}/sessions-workspace", CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "x-access-token: <api-token>", ],]);
$response = curl_exec($curl);curl_close($curl);
echo $response;package main
import ( "fmt" "io" "net/http")
func main() { req, _ := http.NewRequest("GET", "https://public-api.sessionboard.com/v1/organization/{orgId}/sessions-workspace", nil) req.Header.Add("x-access-token", "<api-token>")
res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))}HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://public-api.sessionboard.com/v1/organization/{orgId}/sessions-workspace")) .header("x-access-token", "<api-token>") .method("GET", HttpRequest.BodyPublishers.noBody()) .build();
HttpResponse<String> response = HttpClient.newHttpClient() .send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());Try it
Response headers
Authorizations
x-access-tokenstringheaderOrganization API token. Generate from Organization Settings → API Tokens.
AuthorizationBearer <token>headerorOAuth 2.1 access token. Obtained via the OAuth PKCE flow at
/oauth/token.
Send one of these. See Authentication.
Path parameters
orgIdstringpathrequiredYour organization ID. Any other organization returns
404.
Responses
200application/json
OK
successbooleanpayloadSessionsWorkspaceHomeShow child attributes
organizationobjectShow child attributes
idstringnamestring
tierstring- Allowed values
"self_serve", "enterprise"
eventsSessionsWorkspaceEvent[]Show child attributes
idintegernamestringslugstringdate_fromstring<date-time> | nulldate_tostring<date-time> | nulltimezonestring | nulllocationstring | nullcreated_atstring<date-time>agenda_published_atstring<date-time> | nullcountsobjectShow child attributes
submittedintegerundecidedintegeracceptedintegerdeclinedintegerscheduledintegerspeakersinteger
cfpSessionsWorkspaceCallAn event's one call for speakers.
Show child attributes
idstring<uuid>namestringurlstring<uri>The public link to share.
is_openbooleanopened_atstring<date-time> | nullclose_atstring<date-time> | nullwelcome_titlestring | nullwelcome_descriptionstring | nullPlain text.
checklistobjectShow child attributes
event_idinteger | nullstepsobject[]Show child attributes
keystring- Allowed values
"event", "cfp_open", "first_submission", "decided", "scheduled", "agenda_published"
doneboolean
doneintegertotalintegernextstring | null
enterpriseobject[]What only the Sessionboard platform includes.
Show child attributes
keystringlabelstringdetailstringlockedboolean
401
Missing, invalid or expired token.
403application/json
SCOPE_REQUIRED: the token lacksread:sessions.ORG_WIDE_TOKEN_REQUIRED: the key is restricted to particular events; use a key without an event restriction.FORBIDDEN: the token's user is not an active member of the organization.
errorstring- Allowed values
"VALIDATION_ERROR", "SCOPE_REQUIRED", "ORG_WIDE_TOKEN_REQUIRED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "QUOTA_EXCEEDED"
messagestringrequiredcodestringA more specific reason:
enterprise_only,trial_ended,plan_ended,in_use.upgradestringWith
enterprise_only: what needs a bigger plan or the platform (events,speakers,review_plans,forms, …).
404application/json
NOT_FOUND: orgId is not the token's organization, or the event, session or sponsor is not in it.
errorstring- Allowed values
"VALIDATION_ERROR", "SCOPE_REQUIRED", "ORG_WIDE_TOKEN_REQUIRED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "QUOTA_EXCEEDED"
messagestringrequiredcodestringA more specific reason:
enterprise_only,trial_ended,plan_ended,in_use.upgradestringWith
enterprise_only: what needs a bigger plan or the platform (events,speakers,review_plans,forms, …).
429
The token's request limit (100 requests per 15 minutes by default) or, for writes, its daily write quota. Wait Retry-After seconds.
Retry-AfterintegerheaderSeconds to wait before retrying.
Response examples
{ "success": true, "payload": { "organization": { "id": "<string>", "name": "<string>" }, "tier": "self_serve", "events": [ { "id": 123, "name": "<string>", "slug": "<string>", "date_from": "2026-01-15T09:30:00Z", "date_to": "2026-01-15T09:30:00Z", "timezone": "<string>", "location": "<string>", "created_at": "2026-01-15T09:30:00Z", "agenda_published_at": "2026-01-15T09:30:00Z", "counts": { "submitted": 123, "undecided": 123, "accepted": 123, "declined": 123, "scheduled": 123, "speakers": 123 }, "cfp": { "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "name": "<string>", "url": "https://example.com", "is_open": true, "opened_at": "2026-01-15T09:30:00Z", "close_at": "2026-01-15T09:30:00Z", "welcome_title": "<string>", "welcome_description": "<string>" } } ], "checklist": { "event_id": 123, "steps": [ { "key": "event", "done": true } ], "done": 123, "total": 123, "next": "<string>" }, "enterprise": [ { "key": "<string>", "label": "<string>", "detail": "<string>", "locked": true } ] }}{ "error": "VALIDATION_ERROR", "message": "<string>", "code": "<string>", "upgrade": "<string>"}{ "error": "VALIDATION_ERROR", "message": "<string>", "code": "<string>", "upgrade": "<string>"}