Skip to content

Replace a program's scorecard

PUT/v1/organization/{orgId}/awards/workspace/programs/{programId}/scorecard

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

Sends the scorecard reviewers fill in, in order (1 to 12 criteria). Each criterion is a score from 1 to 5 (scale_1_5), a score from 1 to 10 (scale_1_10) or a comment (free_text). A criterion with an id is kept and updated; one without an id is added; any existing criterion left out is removed. Scores are required and comments optional unless required says otherwise. These are the program's round questions, the same ones Awards round settings edit. Refused with 409 once any reviewer has scored. Sends nothing. Requires write:awards; the token's user needs the Awards update permission and must manage the program. Also at PUT /v1/awards/workspace/programs/{programId}/scorecard.

Request example

Terminal window
curl --request PUT \
--url 'https://public-api.sessionboard.com/v1/organization/{orgId}/awards/workspace/programs/{programId}/scorecard' \
--header 'x-access-token: <api-token>' \
--header 'Content-Type: application/json' \
--data '{
"criteria": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"label": "<string>",
"type": "scale_1_5",
"required": true,
"weight": 0,
"description": "<string>"
}
],
"source": {
"client": "<string>",
"version": "<string>",
"run_id": "<string>",
"prompt": "<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
PUT

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.

Request body

application/jsonrequired

  • criteriaobject[]required
    Min items
    1
    Max items
    12
    Show child attributes
    • idstring<uuid>

      An existing criterion of this program's scorecard. Omit to add a new one.

    • labelstringrequired
      Min length
      1
      Max length
      200
    • typestringrequired
      Allowed values
      "scale_1_5", "scale_1_10", "free_text"
    • requiredboolean
    • weightnumber

      How much the criterion counts in the average. Omit to leave it unweighted.

      Minimum
      0
      Maximum
      100
    • descriptionstring

      Guidance reviewers see under the criterion.

      Max length
      1000
  • sourceAwardsWorkspaceSource

    Optional on every write: which assistant is calling and what the person asked it. Recorded with the change in the organization's activity and on any approval request; never stored on the program.

    Show child attributes
    • clientstring

      The assistant's client name (for example Claude or ChatGPT).

    • versionstring
    • run_idstring

      Your own id for the conversation.

    • promptstring

      What the person asked the assistant.

      Max length
      2000
{
"criteria": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"label": "<string>",
"type": "scale_1_5",
"required": true,
"weight": 0,
"description": "<string>"
}
],
"source": {
"client": "<string>",
"version": "<string>",
"run_id": "<string>",
"prompt": "<string>"
}
}

Responses

200application/json

OK

  • successboolean
  • payloadobject
    Show child attributes
    • scorecardobject[]
      Show child attributes
      • idstring<uuid>
      • labelstring
      • typestring
      • requiredboolean
      • weightnumber | null
      • descriptionstring | null

400application/json

VALIDATION_ERROR: the body does not match the schema.

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 write:awards. Legacy tokens with no scopes cannot write.
  • 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 with code: trial_ended or code: plan_ended: the organization's self-serve Awards plan is read-only (the trial ended, or the plan was canceled or is unpaid). Everything can still be read; choose a plan to make changes.
  • FORBIDDEN with no code: the token's user is not an active member of the organization, lacks the Awards permission the operation needs, does not manage the program, or (for the setup answers) is not an organization admin.

These operations do not return enterprise_only; the Enterprise-only items are listed by GET /v1/organization/{orgId}/awards/workspace/enterprise.

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).

409application/json

scoring_started: a reviewer has already scored, so the scorecard can no longer change.

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).

Response examples

{
"success": true,
"payload": {
"scorecard": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"label": "<string>",
"type": "<string>",
"required": true,
"weight": 123.45,
"description": "<string>"
}
]
}
}