Skip to content

Get an imported meeting

GET/v1/organization/{orgId}/learning/workspace/meetings/{eventId}

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

A meeting brought in from a registration platform: with jobId, the import's progress (running, done or failed) and up to 12 notes on what did not come across; and the meeting as Preview a meeting on demand sees it (sessions, recordings, faculty, attendance, courses and the ones waiting for a recording). Reads only. Requires read:learning; refused for a key restricted to particular events. Also at GET /v1/learning/workspace/meetings/{eventId}.

Request example

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

  • eventIdintegerpathrequired

    The Sessionboard event. Another organization's event answers 401.

    Minimum
    1

Query parameters

  • jobIdstringquery

    The job_id the import answered. Omit and import is null.

    Max length
    64

Responses

200application/json

OK

  • successboolean
  • payloadLearningImportedMeeting
    Show child attributes
    • eventobject
      Show child attributes
      • idinteger
      • namestring
      • date_fromstring<date-time> | null
      • date_tostring<date-time> | null
      • event_formatstring | null
        Allowed values
        "standard", "lite", "gathering", "webinar", null
    • importLearningImportState | any | null

      null without jobId, or when the job is not this organization's.

      Show child attributes
      • job_idstring<uuid>
      • statestring
        Allowed values
        "running", "done", "failed"
      • summaryobject | null

        What the import reported.

      • errorstring | null
      • notesobject[]

        What did not come across, in the import's words.

        Max items
        12
        Show child attributes
        • kindstring
        • actionstring
          Allowed values
          "error", "skip"
        • textstring
    • totalsLearningOnDemandTotals
      Show child attributes
      • sessionsinteger
      • with_recordingsinteger
      • facultyinteger
      • disclosures_missinginteger

        Sessions with a faculty disclosure missing.

      • credit_sessionsinteger
      • attendanceinteger
      • courses_publishedinteger
      • courses_draftinteger
      • waiting_for_recordinginteger
      • importedinteger

        Sessions brought in from a registration platform.

    • sessionsLearningOnDemandSession[]
      Show child attributes
      • idstring<uuid>
      • titlestring
      • recordingobject | null
        Show child attributes
        • minutesinteger | null
        • countinteger
      • facultyinteger
      • disclosures_missinginteger

        Faculty with no disclosure on file.

      • creditobject | null

        The session's credit, or the credit set on the course made from it (the course's wins per type). Types are never added together.

        Show child attributes
        • amountnumber | null

          Only with one type.

        • type_namestring | null

          Only with one type.

        • typesinteger
        • by_typeLearningCreditAmount[]
          Show child attributes
          • namestring
          • amountnumber
        • labelstring
      • attendanceinteger
      • sourceobject | null

        The registration platform it came from.

        Show child attributes
        • appstring
        • external_idstring
      • courseobject | null
        Show child attributes
        • idstring<uuid>
        • statusstring
          Allowed values
          "draft", "published", "archived"
        • waiting_for_recordingboolean
        • recording_readyboolean

          Waiting, and the session now has a recording; make courses again to add it.

400application/json

A path, query or body value failed validation, or an unknown body property was sent. message names the field. (A source object naming the assistant, with the person's prompt, is accepted on every write and removed before validation.) For an {eventId} path that is not a whole number: error: VALIDATION_ERROR, eventId must be a valid integer.

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>

401

Missing, invalid or expired token, or the event does not belong to your organization (Event does not belong to your organization).

403application/json

  • SCOPE_REQUIRED — the token lacks read:learning.
  • ORG_WIDE_TOKEN_REQUIRED — the token is restricted to particular events: "Bringing in a meeting reaches the organization's registration platforms and every event, so this API key (restricted to particular events) cannot use it. Use a key without an event restriction."
  • EVENT_ARCHIVED — the event is archived.
  • FEATURE_NOT_ENABLED (feature: lessons_credits) — Learning is not on for the organization.
  • FORBIDDEN — the token's user is not an active member of the organization, or lacks the Lessons read permission.

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>

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": {
"event": {
"id": 123,
"name": "<string>",
"date_from": "2026-01-15T09:30:00Z",
"date_to": "2026-01-15T09:30:00Z",
"event_format": "standard"
},
"import": {
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"state": "running",
"summary": {},
"error": "<string>",
"notes": [
{
"kind": "<string>",
"action": "error",
"text": "<string>"
}
]
},
"totals": {
"sessions": 123,
"with_recordings": 123,
"faculty": 123,
"disclosures_missing": 123,
"credit_sessions": 123,
"attendance": 123,
"courses_published": 123,
"courses_draft": 123,
"waiting_for_recording": 123,
"imported": 123
},
"sessions": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"recording": {
"minutes": 123,
"count": 123
},
"faculty": 123,
"disclosures_missing": 123,
"credit": {
"amount": 123.45,
"type_name": "<string>",
"types": 123,
"by_type": [
{
"name": "<string>",
"amount": 123.45
}
],
"label": "<string>"
},
"attendance": 123,
"source": {
"app": "<string>",
"external_id": "<string>"
},
"course": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "draft",
"waiting_for_recording": true,
"recording_ready": true
}
}
]
}
}