Skip to content

Summarize the reviews of a nomination

POST/v1/organization/{orgId}/awards/workspace/programs/{programId}/nominations/{submissionId}/review-summary

US Region: https://public-api.sessionboard.com · EU Region: https://public-api-eu.sessionboard.com

What the reviewers wrote about one nomination, summarized by Ask: summary (two or three sentences) and up to six points, each naming the reviewers who made it, plus reviewers with every comment as written. Only the written comments are summarized; scores are never sent to the model or changed. Reviewers who abstained are left out. Each call runs the model, so it is a POST, but it only reads. With AI turned off for the organization, or when the model is unavailable, summary is null, reason is unavailable and the comments still come back; with no comments yet, reason is no_comments. Requires read:awards; the token's user must manage the program. Refused for a key restricted to particular events. Also at POST /v1/awards/workspace/programs/{programId}/nominations/{submissionId}/review-summary.

Request example

Terminal window
curl --request POST \
--url 'https://public-api.sessionboard.com/v1/organization/{orgId}/awards/workspace/programs/{programId}/nominations/{submissionId}/review-summary' \
--header 'x-access-token: <api-token>' \
--header 'Content-Type: application/json' \
--data '{
"language": "<string>"
}'

Try it

Authorization

Your token stays in this page. It is sent only to the region above and is never saved; it is gone when you leave or reload the page.

Path parameters
Body application/json
POST

Authorizations

  • x-access-tokenstringheader

    Organization API token. Generate from Organization Settings → API Tokens.

  • AuthorizationBearer <token>headeror

    OAuth 2.1 access token. Obtained via the OAuth PKCE flow at /oauth/token.

Send one of these. See Authentication.

Path parameters

  • orgIdstringpathrequired

    Your organization ID. Any other organization returns 404.

  • programIdstring<uuid>pathrequired

    The Awards program ID.

  • submissionIdstring<uuid>pathrequired

    The nomination's id.

Request body

application/json

  • languagestring

    Language of the summary (en, fr, es, de). Defaults to the token user's language.

    Max length
    20
{
"language": "<string>"
}

Responses

200application/json

The summary and every reviewer's comments

  • summarystring | null
  • pointsobject[]
    Show child attributes
    • textstring
    • reviewersobject[]
      Show child attributes
      • refinteger
      • namestring
  • reviewersobject[]
    Show child attributes
    • refinteger
    • namestring
    • commentsobject[]
      Show child attributes
      • roundstring | null
      • questionstring
      • textstring
  • reasonstring | null
    Allowed values
    "no_comments", "unavailable", null

400application/json

VALIDATION_ERROR: the body or a path id does not match the schema. Unknown body fields are refused and named in the message; source is always accepted.

Error body for the Awards workspace operations.

  • errorstringrequired
    Allowed values
    "VALIDATION_ERROR", "SCOPE_REQUIRED", "ORG_WIDE_TOKEN_REQUIRED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "QUOTA_EXCEEDED"
  • messagestringrequired
  • codestring

    A more specific reason, when there is one (trial_ended, plan_ended).

401

Missing, invalid or expired token.

403application/json

  • SCOPE_REQUIRED: the token lacks read: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"
  • messagestringrequired
  • codestring

    A more specific reason, when there is one (trial_ended, plan_ended).

404application/json

NOT_FOUND: orgId is not the token's organization, or the program is not in it.

Error body for the Awards workspace operations.

  • errorstringrequired
    Allowed values
    "VALIDATION_ERROR", "SCOPE_REQUIRED", "ORG_WIDE_TOKEN_REQUIRED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "QUOTA_EXCEEDED"
  • messagestringrequired
  • codestring

    A 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-After seconds. The body is the TooManyRequestsError shape — see Rate Limiting.
  • Writes only: QUOTA_EXCEEDED, the token's daily write quota (10,000 writes a day). It resets at midnight UTC.
  • responseTooManyRequestsError | AwardsWorkspaceError
    name: TooManyRequestsError (TooManyRequestsError)

    Body of a 429 from the API's own request limits (per token, and per organization and user). Wait Retry-After seconds.

    • 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"
    • messagestringrequired
    • codestring

      A more specific reason, when there is one (trial_ended, plan_ended).

  • Retry-Afterintegerheader

    Seconds to wait before retrying.

Response examples

{
"summary": "<string>",
"points": [
{
"text": "<string>",
"reviewers": [
{
"ref": 123,
"name": "<string>"
}
]
}
],
"reviewers": [
{
"ref": 123,
"name": "<string>",
"comments": [
{
"round": "<string>",
"question": "<string>",
"text": "<string>"
}
]
}
],
"reason": "no_comments"
}