Get the Awards workspace home
US Region: https://public-api.sessionboard.com · EU Region: https://public-api-eu.sessionboard.com
The workspace at a glance: the setup answers, the plan tier (self_serve or enterprise), counts across programs, every program with its counts, what is waiting on a person ("Ready for your review": assistant requests to approve, programs without categories, unfinished nominations, programs ready for winners) and the list of what only Enterprise Awards includes, each with locked for your plan. Any member of the organization can read the setup answers. The program data needs the Awards read permission; without it can_read_awards is false, every count is 0 and the lists are empty. Programs are limited to the ones the token's user manages or can see through their portfolios. Reads only; sends nothing. Requires read:awards. Refused for a key restricted to particular events. Also at GET /v1/awards/workspace.
Request example
curl --request GET \ --url 'https://public-api.sessionboard.com/v1/organization/{orgId}/awards/workspace' \ --header 'x-access-token: <api-token>'const response = await fetch('https://public-api.sessionboard.com/v1/organization/{orgId}/awards/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}/awards/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}/awards/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}/awards/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}/awards/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
successbooleanpayloadAwardsWorkspaceHomeShow child attributes
organizationobjectShow child attributes
idstring<uuid>namestring
profileAwardsWorkspaceProfileShow child attributes
audiencestring | any | nullaudience_labelstring | null- Example
"Members"
awardingstring | nullWhat is being awarded.
finishedbooleanSetup is finished.
finished_atstring<date-time> | null
audiencesobject[]The audiences to choose from.
Show child attributes
keystringWho the awards are for:
members(member recognition, fellows, volunteers, scholarships),customers(customer and partner awards),industry(an open call across your field) oremployees(internal recognition). Sets a new program's default nomination mode and starter categories.- Allowed values
"members", "customers", "industry", "employees"
labelstringhintstring
tierstringself_servefor an organization on a self-serve Awards plan;enterprisefor every other organization.- Allowed values
"self_serve", "enterprise"
can_read_awardsbooleanThe token's user has the Awards read permission. When
false, the counts are0and the lists are empty.countsAwardsWorkspaceHomeCountsTotals across the programs the token's user may see.
Show child attributes
programsintegersubmittedintegerdraftsintegerreviewersintegerscorecardsintegerFinished scorecards.
assignedintegerReviewer assignments, not counting abstentions.
winnersinteger
programsAwardsWorkspaceProgram[]Show child attributes
idstring<uuid>namestringnomenclaturestring- Allowed values
"awards", "grants", "scholarships"
descriptionstring | nullnomination_modestringnominate_others: people nominate someone else.self_only: people submit for themselves. Defaults to the audience's mode.- Allowed values
"nominate_others", "self_only"
statusstringWorked out from the dates:
openwhile it is on the Awards Site and its nomination window is running,reviewingafter nominations close,closedwhen it has nominations and every date has passed.- Allowed values
"draft", "open", "reviewing", "closed", "archived"
decidedbooleanAt least one winner has been picked.
roundAwardsWorkspaceRound | any | nullShow child attributes
idstring<uuid>namestringsubmission_start_datestring<date-time> | nullsubmission_end_datestring<date-time> | nullThe nomination deadline.
review_start_datestring<date-time> | nullreview_end_datestring<date-time> | null
roundsintegerHow many Rounds the program has (one on self-serve).
categoriesAwardsWorkspaceCategory[]Show child attributes
idstring<uuid>namestring
categories_revisionstringSend this as
baseRevisionwhen replacing the categories.public_urlstring | nullThe program's sign-in page on the Awards Site, once it has been opened. Empty when the Site has no address yet.
countsAwardsWorkspaceProgramCountsShow child attributes
submittedintegerSubmitted nominations.
draftsintegerNominations started and not submitted.
reviewersintegerscorecardsintegerFinished scorecards.
reviewedintegerSubmitted nominations with at least one finished scorecard.
winnersinteger
created_atstring<date-time>
reviewAwardsWorkspaceReviewItem[]Show child attributes
kindstringapprovals: requests from an assistant waiting for a person.categories: a program with no categories.drafts: unfinished nominations in an open program.winners: every submitted nomination has a scorecard and no winner is picked yet.- Allowed values
"approvals", "categories", "drafts", "winners"
program_idstring<uuid>Not on
approvals.program_namestringNot on
approvals.countintegerOn
approvalsanddrafts.titlestringdetailstringhrefstringThe page in the Awards workspace, relative to it.
enterpriseAwardsWorkspaceEnterpriseItem[]Show child attributes
keystring- Allowed values
"review_rounds", "payments", "sso", "csm", "platform"
labelstring- Example
"Review rounds and Review plans"
detailstringlockedbooleantrueon a self-serve Awards plan.
401
Missing, invalid or expired token.
403application/json
SCOPE_REQUIRED: the token lacksread:awards. A write scope does not grant reads; a legacy token with no scopes may read.ORG_WIDE_TOKEN_REQUIRED: the key is restricted to particular events. The Awards workspace covers every awards program in the organization, so use a key without an event restriction.FORBIDDEN: the token's user is not an active member of the organization, lacks the Awards read permission, or does not manage the program.
Error body for the Awards workspace operations.
errorstringrequired- Allowed values
"VALIDATION_ERROR", "SCOPE_REQUIRED", "ORG_WIDE_TOKEN_REQUIRED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "QUOTA_EXCEEDED"
messagestringrequiredcodestringA more specific reason, when there is one (
trial_ended,plan_ended).
404application/json
NOT_FOUND: orgId is not the token's organization.
Error body for the Awards workspace operations.
errorstringrequired- Allowed values
"VALIDATION_ERROR", "SCOPE_REQUIRED", "ORG_WIDE_TOKEN_REQUIRED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "QUOTA_EXCEEDED"
messagestringrequiredcodestringA more specific reason, when there is one (
trial_ended,plan_ended).
429application/json
- The token's request limit (100 requests per 15 minutes by default, per bucket). Wait
Retry-Afterseconds. The body is theTooManyRequestsErrorshape — see Rate Limiting. - Writes only:
QUOTA_EXCEEDED, the token's daily write quota (10,000 writes a day). It resets at midnight UTC.
responseTooManyRequestsError | AwardsWorkspaceErrorname: TooManyRequestsError (TooManyRequestsError)
Body of a
429from the API's own request limits (per token, and per organization and user). WaitRetry-Afterseconds.statusinteger- Example
429
successboolean- Example
false
messagestringrequired- Example
"Error while trying to reach the endpoint: Too many requests"
namestringrequired- Allowed values
"TooManyRequestsError"
Option 2 (AwardsWorkspaceError)
Error body for the Awards workspace operations.
errorstringrequired- Allowed values
"VALIDATION_ERROR", "SCOPE_REQUIRED", "ORG_WIDE_TOKEN_REQUIRED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "QUOTA_EXCEEDED"
messagestringrequiredcodestringA more specific reason, when there is one (
trial_ended,plan_ended).
Retry-AfterintegerheaderSeconds to wait before retrying.
Response examples
{ "success": true, "payload": { "organization": { "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "name": "<string>" }, "profile": { "audience": "members", "audience_label": "Members", "awarding": "<string>", "finished": true, "finished_at": "2026-01-15T09:30:00Z" }, "audiences": [ { "key": "members", "label": "<string>", "hint": "<string>" } ], "tier": "self_serve", "can_read_awards": true, "counts": { "programs": 123, "submitted": 123, "drafts": 123, "reviewers": 123, "scorecards": 123, "assigned": 123, "winners": 123 }, "programs": [ { "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "name": "<string>", "nomenclature": "awards", "description": "<string>", "nomination_mode": "nominate_others", "status": "draft", "decided": true, "round": { "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "name": "<string>", "submission_start_date": "2026-01-15T09:30:00Z", "submission_end_date": "2026-01-15T09:30:00Z", "review_start_date": "2026-01-15T09:30:00Z", "review_end_date": "2026-01-15T09:30:00Z" }, "rounds": 123, "categories": [ { "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "name": "<string>" } ], "categories_revision": "<string>", "public_url": "<string>", "counts": { "submitted": 123, "drafts": 123, "reviewers": 123, "scorecards": 123, "reviewed": 123, "winners": 123 }, "created_at": "2026-01-15T09:30:00Z" } ], "review": [ { "kind": "approvals", "program_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a", "program_name": "<string>", "count": 123, "title": "<string>", "detail": "<string>", "href": "<string>" } ], "enterprise": [ { "key": "review_rounds", "label": "Review rounds and Review plans", "detail": "<string>", "locked": true } ] }}{ "error": "SCOPE_REQUIRED", "message": "Token missing required scope: read:awards"}{ "error": "ORG_WIDE_TOKEN_REQUIRED", "message": "The Awards workspace covers every awards program in the organization, so this API key (restricted to particular events) cannot use it. Use a key without an event restriction."}{ "error": "NOT_FOUND", "message": "Organization not found"}{ "status": 429, "success": false, "message": "Error while trying to reach the endpoint: Too many requests", "name": "TooManyRequestsError"}