Skip to content

List promo codes

GET/v1/organization/{orgId}/awards/programs/{programId}/promo-codes

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

Requires the read:awards scope.

Request example

Terminal window
curl --request GET \
--url 'https://public-api.sessionboard.com/v1/organization/{orgId}/awards/programs/{programId}/promo-codes' \
--header 'x-access-token: <api-token>'

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
Query parameters
GET

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.

Query parameters

  • pageintegerquery

    Page number for pagination.

    Default
    1
    Minimum
    1
    Maximum
    999
  • pageSizeintegerquery

    Results per page. page_size is also accepted.

    Default
    25
    Minimum
    1
    Maximum
    100

Responses

200application/json

OK

  • dataAwardsPromoCode[]
    Show child attributes
    • idstring<uuid>
    • program_idstring<uuid>
    • codestring
    • typestring
      Allowed values
      "percentage", "flat"
    • amountnumber
    • starts_atstring<date-time> | null
    • ends_atstring<date-time> | null
    • redemption_countinteger

      Submissions the code has been applied to. Returned by the single-code GET only.

    • created_atstring<date-time>
    • updated_atstring<date-time>
  • paginationListPagination

    Pagination metadata returned by the event-settings GET lists (tags, tracks, levels, formats, rooms, languages, statuses). Same numbers as Pagination, snake_case keys — these endpoints are served by a different layer, and the casing is longstanding.

    Show child attributes
    • current_pageinteger
    • page_sizeinteger
    • total_pagesinteger
    • total_resultsinteger

401

Missing or invalid token

403application/json

Token lacks read:awards

  • errorstring
    Allowed values
    "VALIDATION_ERROR", "SCOPE_REQUIRED", "FORBIDDEN", "NOT_FOUND", "CONFLICT"
  • messagestring

404application/json

Not found — also returned for any id belonging to another organization

  • errorstring
    Allowed values
    "VALIDATION_ERROR", "SCOPE_REQUIRED", "FORBIDDEN", "NOT_FOUND", "CONFLICT"
  • messagestring

Response examples

{
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"program_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"code": "SAVE20",
"type": "percentage",
"amount": 20,
"starts_at": "2026-01-15T09:30:00Z",
"ends_at": "2026-01-15T09:30:00Z",
"redemption_count": 123,
"created_at": "2026-01-15T09:30:00Z",
"updated_at": "2026-01-15T09:30:00Z"
}
],
"pagination": {
"current_page": 1,
"page_size": 25,
"total_pages": 4,
"total_results": 97
}
}

Get release notes by email

A short digest on the days something new goes live — each change with a link to its note in the release notes. No marketing, and one click to stop.

Company email addresses only. We’ll send one email to confirm it’s you. Already use Sessionboard? You can also turn this on under Community → What’s new.