> ## Documentation Index
> Fetch the complete documentation index at: https://docs.userplane.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Recording

> Retrieve complete recording details

Returns full details for a specific recording, including metadata about the link, creator, project, domain, and capture status.

## Errors

| Error code            | Status | Description                        |
| --------------------- | ------ | ---------------------------------- |
| `RECORDING_NOT_FOUND` | 404    | Recording does not exist           |
| `RECORDING_GONE`      | 410    | Recording has already been deleted |

Also returns [common authentication errors](/api/error-handling#authentication-errors).

## Related

<CardGroup cols={2}>
  <Card title="Recording Resources" icon="download" href="/api/recordings/get-recording-resources">
    Download video, thumbnail, and log files
  </Card>

  <Card title="Delete Recording" icon="trash" href="/api/recordings/delete-recording">
    Soft-delete this recording
  </Card>

  <Card title="List Recordings" icon="list" href="/api/recordings/list-recordings">
    View all recordings in the workspace
  </Card>

  <Card title="Get Link" icon="link" href="/api/links/get-link">
    Details for the link that captured this recording
  </Card>
</CardGroup>


## OpenAPI

````yaml GET /public/workspace/{workspaceId}/recordings/{recordingId}
openapi: 3.1.1
info:
  title: Userplane Public API
  version: 1.0.0
  description: >-
    Programmatic access to Userplane workspaces, recordings, and links.
    Authenticate with a Bearer token using your API key (uspl_ prefix).
servers:
  - url: https://api.userplane.io/api/v1
    description: Production
security:
  - bearerAuth: []
paths:
  /public/workspace/{workspaceId}/recordings/{recordingId}:
    get:
      tags:
        - Recordings
      summary: Get recording
      description: Retrieve complete recording details
      operationId: recordings.getById
      parameters:
        - name: workspaceId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
        - name: recordingId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  data:
                    type: object
                    properties:
                      workspaceId:
                        type: string
                        minLength: 1
                      recording:
                        type: object
                        properties:
                          recordingId:
                            type: string
                            minLength: 1
                          recordingDurationMs:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          recordingStartedAt:
                            anyOf:
                              - {}
                              - type: 'null'
                          meta:
                            type: object
                            properties:
                              link:
                                type: object
                                properties:
                                  linkId:
                                    type: string
                                    minLength: 1
                                  title:
                                    anyOf:
                                      - type: string
                                      - type: 'null'
                                  providerType:
                                    anyOf:
                                      - type: string
                                        enum:
                                          - intercom
                                          - zendesk
                                          - hubspot
                                          - freshdesk
                                          - freshchat
                                          - jira_service_management
                                          - helpscout
                                          - happyfox
                                          - ada
                                          - forethought
                                          - servicenow
                                          - front
                                          - zoho_desk
                                          - crisp
                                          - pylon
                                          - plain
                                          - asana
                                          - azure_devops
                                          - clickup
                                          - github
                                          - gitlab
                                          - jira
                                          - linear
                                          - notion
                                          - sentry
                                          - slack
                                          - web
                                          - others
                                      - type: 'null'
                                  providerId:
                                    anyOf:
                                      - type: string
                                      - type: 'null'
                                  providerRef:
                                    anyOf:
                                      - type: string
                                      - type: 'null'
                                  providerData: {}
                                  createdAt: {}
                                required:
                                  - linkId
                                  - title
                                  - providerType
                                  - providerId
                                  - providerRef
                                  - providerData
                                  - createdAt
                                additionalProperties: false
                              creator:
                                type: object
                                properties:
                                  workspaceMemberId:
                                    type: string
                                    minLength: 1
                                  name:
                                    type: string
                                required:
                                  - workspaceMemberId
                                  - name
                                additionalProperties: false
                              project:
                                type: object
                                properties:
                                  projectId:
                                    anyOf:
                                      - type: string
                                        minLength: 1
                                      - type: 'null'
                                  title:
                                    anyOf:
                                      - type: string
                                      - type: 'null'
                                required:
                                  - projectId
                                  - title
                                additionalProperties: false
                              domain:
                                type: object
                                properties:
                                  domainId:
                                    type: string
                                    minLength: 1
                                  url:
                                    type: string
                                required:
                                  - domainId
                                  - url
                                additionalProperties: false
                              workspaceId:
                                type: string
                                minLength: 1
                              status:
                                type: string
                                enum:
                                  - pending
                                  - available
                                  - expired
                                  - purged
                              systemMeta:
                                anyOf:
                                  - type: object
                                    additionalProperties: {}
                                  - type: 'null'
                              customMeta:
                                anyOf:
                                  - type: object
                                    additionalProperties: {}
                                  - type: 'null'
                              notes:
                                anyOf:
                                  - type: string
                                  - type: 'null'
                              expiresAt:
                                anyOf:
                                  - {}
                                  - type: 'null'
                              createdAt: {}
                              updatedAt: {}
                            required:
                              - link
                              - creator
                              - project
                              - domain
                              - workspaceId
                              - status
                              - systemMeta
                              - customMeta
                              - notes
                              - expiresAt
                              - createdAt
                              - updatedAt
                            additionalProperties: false
                        required:
                          - recordingId
                          - recordingDurationMs
                          - recordingStartedAt
                          - meta
                        additionalProperties: false
                    required:
                      - workspaceId
                      - recording
                    additionalProperties: false
                required:
                  - message
                  - data
                additionalProperties: false
        '400':
          description: '400'
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      defined:
                        const: true
                      code:
                        const: BAD_REQUEST
                      status:
                        const: 400
                      message:
                        type: string
                        default: >-
                          Invalid request parameters. Check the request body and
                          query parameters. See
                          https://docs.userplane.io/api/error-handling
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
                  - type: object
                    properties:
                      defined:
                        const: false
                      code:
                        type: string
                      status:
                        type: number
                      message:
                        type: string
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
        '401':
          description: '401'
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      defined:
                        const: true
                      code:
                        const: API_KEY_REQUIRED
                      status:
                        const: 401
                      message:
                        type: string
                        default: >-
                          API key is required. Include it as Authorization:
                          Bearer <your-api-key>. See
                          https://docs.userplane.io/api/authentication
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
                  - type: object
                    properties:
                      defined:
                        const: true
                      code:
                        const: API_KEY_INVALID
                      status:
                        const: 401
                      message:
                        type: string
                        default: >-
                          The provided API key is not valid. Verify the key and
                          try again. See
                          https://docs.userplane.io/api/authentication
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
                  - type: object
                    properties:
                      defined:
                        const: true
                      code:
                        const: API_KEY_EXPIRED
                      status:
                        const: 401
                      message:
                        type: string
                        default: >-
                          The API key has expired. Rotate or create a new key.
                          See https://docs.userplane.io/api/authentication
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
                  - type: object
                    properties:
                      defined:
                        const: false
                      code:
                        type: string
                      status:
                        type: number
                      message:
                        type: string
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
        '403':
          description: '403'
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      defined:
                        const: true
                      code:
                        const: API_KEY_DISABLED
                      status:
                        const: 403
                      message:
                        type: string
                        default: >-
                          The API key is disabled. Enable it or create a new
                          key. See https://docs.userplane.io/api/authentication
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
                  - type: object
                    properties:
                      defined:
                        const: true
                      code:
                        const: NOT_A_MEMBER
                      status:
                        const: 403
                      message:
                        type: string
                        default: >-
                          The API key owner is not a member of this workspace.
                          See https://docs.userplane.io/api/error-handling
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
                  - type: object
                    properties:
                      defined:
                        const: false
                      code:
                        type: string
                      status:
                        type: number
                      message:
                        type: string
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
        '404':
          description: '404'
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      defined:
                        const: true
                      code:
                        const: WORKSPACE_NOT_FOUND
                      status:
                        const: 404
                      message:
                        type: string
                        default: Workspace not found
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
                  - type: object
                    properties:
                      defined:
                        const: true
                      code:
                        const: RECORDING_NOT_FOUND
                      status:
                        const: 404
                      message:
                        type: string
                        default: Recording not found
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
                  - type: object
                    properties:
                      defined:
                        const: false
                      code:
                        type: string
                      status:
                        type: number
                      message:
                        type: string
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
        '410':
          description: '410'
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      defined:
                        const: true
                      code:
                        const: WORKSPACE_GONE
                      status:
                        const: 410
                      message:
                        type: string
                        default: Workspace has been deleted
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
                  - type: object
                    properties:
                      defined:
                        const: true
                      code:
                        const: RECORDING_GONE
                      status:
                        const: 410
                      message:
                        type: string
                        default: Recording has already been deleted
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
                  - type: object
                    properties:
                      defined:
                        const: false
                      code:
                        type: string
                      status:
                        type: number
                      message:
                        type: string
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
        '429':
          description: '429'
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      defined:
                        const: true
                      code:
                        const: RATE_LIMITED
                      status:
                        const: 429
                      message:
                        type: string
                        default: >-
                          Rate limit exceeded. Wait and retry with exponential
                          backoff. See https://docs.userplane.io/api/rate-limits
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
                  - type: object
                    properties:
                      defined:
                        const: false
                      code:
                        type: string
                      status:
                        type: number
                      message:
                        type: string
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
        '503':
          description: '503'
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      defined:
                        const: true
                      code:
                        const: SERVICE_UNAVAILABLE
                      status:
                        const: 503
                      message:
                        type: string
                        default: >-
                          API key verification service is temporarily
                          unavailable. Please try again later. See
                          https://docs.userplane.io/api/error-handling
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
                  - type: object
                    properties:
                      defined:
                        const: false
                      code:
                        type: string
                      status:
                        type: number
                      message:
                        type: string
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key with uspl_ prefix. Create keys at
        dash.userplane.io/_/account?tab=developers

````