---
title: "Get recording details"
method: GET
path: "/recordings/{token}"
tags: ["Recordings"]
---

# Get recording details

`GET /recordings/{token}`

Returns a single recording with detailed metadata and derived stats.

Rate limits:
- Global: 120 requests per minute per API key.

## Path parameters

- `token` string, required

## Response `200`

Recording fetched successfully.

- RecordingDetailResponse
  - `data` RecordingDetailItem, required
    - `recordingToken` string, required — Public recording token identifier.
    - `recordingId` string, required — Internal recording id as string.
    - `demoId` string, required — Internal demo id as string.
    - `userId` integer, required — ID of the demo host user.
    - `name` string, nullable, required
    - `recordingWebUrl` string, required — URL to the recording view in Demodesk.
    - `temporaryDirectUrl` string, nullable, required — Direct link to the video file, signed with a temporary access token.
    - `status` 'pending' | 'ready' | 'failure' | 'cancelled' | 'expired', required — Recording status. - `pending`: recording is still in progress or processing - `ready`: recording can be consumed - `failure`: recording failed - `cancelled`: recording never started, eg. because the bot was not admitted - `expired`: recording expired
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `demoStartDate` string, date-time, nullable, required
    - `durationMs` integer, nullable, required
    - `postprocessingStatus` 'pending' | 'done' | 'failed' | 'too_short', nullable, required — Recording post-processing status. Post-processing includes transcription, participant data enrichment, meeting statistics, generating summaries, etc.
    - `access` 'company_wide' | 'selected_groups' | 'host_and_participants' | 'host_only', required — Access permission level of the demo. - `company_wide`: visible to all company members - `selected_groups`: visible to members of assigned groups - `host_and_participants`: visible only to the host and participants - `host_only`: visible only to the host
    - `groupIds` string[] — IDs of groups assigned to the demo. Present in list responses only; detail responses use `groups` instead.
    - `host` RecordingHostItem, required — The host of the demo, resolved inline so consumers don't need a follow-up users lookup.
      - `userId` string, required — ID of the demo host user as string.
      - `displayName` string, required — Human-readable name of the host.
      - `email` string, required — Email address of the host.
    - `audioOnly` boolean, required
    - `attendeeClassification` 'internal_meeting' | 'external_meeting' | 'null', nullable, required
    - `meetingLocation` RecordingMeetingLocationItem, required
      - `kind` string, nullable, required
      - `value` string, nullable, required
    - `participants` RecordingParticipantItem[], required
      - `participantId` string, required
      - `displayName` string, required
      - `email` string, nullable, required
      - `permission` 'customer' | 'team' | 'host', required
      - `attended` boolean, required
    - `groups` RecordingGroupItem[], required — Groups assigned to the demo. Only populated when access is `selected_groups`.
      - `groupId` string, required — Internal group ID as string.
      - `groupName` string, required — Name of the group.
    - `statistics` RecordingStatistics, required
      - `engagementScore` integer, nullable, required
      - `feedbackScore` number, float, nullable, required

## Other responses

- `401` — API key is missing or invalid.
- `404` — Recording or related resource was not found.
- `429` — Rate limit exceeded.

---

[API](https://skmtc.net/demodesk/apis/demodesk-public-api.md) · [All operations](https://skmtc.net/demodesk/apis/demodesk-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/demodesk/demodesk-public-api/revisions/3c40ff85e81d/schema)
