Skip to content

List certifications

GET/v1/organization/{orgId}/learning/certifications

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

Every certification in the organization (draft, published and retired), by name, with its required lessons and courses, how many lessons it takes and their total minutes, how many people hold it now, how many awards expire within 30 days, and how many people are assigned it and overdue. Reads only. The token's user needs the Lessons read permission. Requires read:learning. Also at GET /v1/learning/certifications.

Request example

Terminal window
curl --request GET \
--url 'https://public-api.sessionboard.com/v1/organization/{orgId}/learning/certifications' \
--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
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.

Responses

200application/json

OK

  • successboolean
  • payloadobject
    Show child attributes
    • certificationsLearningCertification[]
      Show child attributes
      • idstring<uuid>
      • org_idstring<uuid>
      • slugstring | null
      • namestring
      • summarystring | null
      • badge_colorstring | null
      • requirementsobject[]

        Lessons and courses (series) that must be completed.

        Show child attributes
        • kindstring
          Allowed values
          "lesson", "series"
        • idstring<uuid>
      • validity_monthsinteger | null

        How long an award lasts. null never expires.

      • versioninteger
      • statusstring
        Allowed values
        "draft", "published", "retired"
      • external_keystring | null
      • created_atstring<date-time>
      • updated_atstring<date-time>
      • lesson_countinteger

        Lessons it takes, courses expanded.

      • duration_minutesinteger

        Total minutes of those lessons.

      • holdersinteger

        People holding it now (active, not expired).

      • expiringinteger

        Awards expiring within 30 days.

      • assignedinteger

        People assigned it.

      • overdueinteger

        Assigned people past their due date.

401

Missing, invalid or expired token.

403

  • SCOPE_REQUIRED — the token lacks read:learning (reads) or write:learning (writes). Legacy tokens with no scopes cannot write.
  • FORBIDDEN — Learning is not on for the organization, or the token's user lacks the Lessons permission.

404application/json

orgId is not your organization (error: NOT_FOUND, message: Organization not found).

Gateway errors carry error (a code) and message. Errors from Learning itself carry status, success: false, message, name, and sometimes code (and feature or paused_at).

  • errorstring | object

    The gateway's error code (SCOPE_REQUIRED, ORG_WIDE_TOKEN_REQUIRED, NOT_FOUND, …).

  • messagestring
  • statusinteger
  • successboolean
  • namestring
  • codestring

    FEATURE_NOT_ENABLED, AGENT_WRITES_PAUSED, …

  • featurestring
  • paused_atstring<date-time>

429application/json

  • The token's request limit (100 requests per 15 minutes per bucket by default — see Rate Limiting). Wait Retry-After seconds.
  • QUOTA_EXCEEDED (writes) — the token's daily write quota (10,000 a day). Resets at midnight UTC.

Gateway errors carry error (a code) and message. Errors from Learning itself carry status, success: false, message, name, and sometimes code (and feature or paused_at).

  • errorstring | object

    The gateway's error code (SCOPE_REQUIRED, ORG_WIDE_TOKEN_REQUIRED, NOT_FOUND, …).

  • messagestring
  • statusinteger
  • successboolean
  • namestring
  • codestring

    FEATURE_NOT_ENABLED, AGENT_WRITES_PAUSED, …

  • featurestring
  • paused_atstring<date-time>
  • Retry-Afterintegerheader

    Seconds to wait before retrying.

Response examples

{
"success": true,
"payload": {
"certifications": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"org_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>",
"name": "<string>",
"summary": "<string>",
"badge_color": "<string>",
"requirements": [
{
"kind": "lesson",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"validity_months": 123,
"version": 123,
"status": "draft",
"external_key": "<string>",
"created_at": "2026-01-15T09:30:00Z",
"updated_at": "2026-01-15T09:30:00Z",
"lesson_count": 123,
"duration_minutes": 123,
"holders": 123,
"expiring": 123,
"assigned": 123,
"overdue": 123
}
]
}
}