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

# Create Session Recording Downloads

> Requests one downloadable MP4 per recorded page of a session. Assembly runs asynchronously and every page returns as `PENDING`. Re-posting re-enqueues all pages and retries any that failed. Poll the GET endpoint for per-page status and, on standard (non-BYOS) projects, download URLs.



## OpenAPI

````yaml post /v1/sessions/{id}/recording/downloads
openapi: 3.0.0
info:
  title: Browserbase API
  description: Browserbase API for 3rd party developers
  version: v1
servers:
  - url: https://api.browserbase.com
    description: Public endpoint
    variables: {}
security:
  - BrowserbaseAuth: []
tags: []
paths:
  /v1/sessions/{id}/recording/downloads:
    post:
      summary: Create Session Recording Downloads
      description: >-
        Requests one downloadable MP4 per recorded page of a session. Assembly
        runs asynchronously and every page returns as `PENDING`. Re-posting
        re-enqueues all pages and retries any that failed. Poll the GET endpoint
        for per-page status and, on standard (non-BYOS) projects, download URLs.
      operationId: Sessions_createRecordingDownloads
      parameters:
        - name: id
          in: path
          description: Session ID
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '202':
          description: Downloads enqueued. Poll the GET endpoint for status.
          content:
            application/json:
              schema:
                type: object
                properties:
                  downloads:
                    type: array
                    items:
                      $ref: '#/components/schemas/RecordingDownload'
                required:
                  - downloads
        '404':
          description: The session was not found, or it has no recording.
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    description: HTTP status code
                    type: integer
                  error:
                    description: HTTP error name
                    type: string
                  message:
                    description: Human-readable error message
                    type: string
                required:
                  - statusCode
                  - error
                  - message
        '409':
          description: >-
            The session has not ended. Recording downloads are available only
            after a session completes.
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    description: HTTP status code
                    type: integer
                  error:
                    description: HTTP error name
                    type: string
                  message:
                    description: Human-readable error message
                    type: string
                required:
                  - statusCode
                  - error
                  - message
        '410':
          description: >-
            The session's recording has aged out of its retention window and can
            no longer be assembled.
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    description: HTTP status code
                    type: integer
                  error:
                    description: HTTP error name
                    type: string
                  message:
                    description: Human-readable error message
                    type: string
                required:
                  - statusCode
                  - error
                  - message
        '502':
          description: Failed to reach the recording service. Retry the request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    description: HTTP status code
                    type: integer
                  error:
                    description: HTTP error name
                    type: string
                  message:
                    description: Human-readable error message
                    type: string
                required:
                  - statusCode
                  - error
                  - message
components:
  schemas:
    RecordingDownload:
      type: object
      properties:
        pageId:
          description: Recorded page (tab) within the session, e.g. "0", "1".
          type: string
        status:
          $ref: '#/components/schemas/RecordingDownloadStatus'
        downloadUrl:
          description: >-
            Short-lived signed CDN URL, re-minted each GET. Present only when
            COMPLETED on a standard (non-BYOS) project.
          type: string
        completedAt:
          description: >-
            When the MP4 was created. Present only when COMPLETED on a standard
            (non-BYOS) project.
          type: string
          format: date-time
      required:
        - pageId
        - status
    RecordingDownloadStatus:
      description: >-
        Per-page MP4 assembly state. `NOT_REQUESTED`: no download has been
        requested for the session yet. `PENDING`: assembly is enqueued or in
        progress. `COMPLETED`: the MP4 is ready. `FAILED`: assembly failed; POST
        again to retry.
      type: string
      enum:
        - NOT_REQUESTED
        - PENDING
        - COMPLETED
        - FAILED
  securitySchemes:
    BrowserbaseAuth:
      type: apiKey
      in: header
      name: X-BB-API-Key
      description: Your [Browserbase API Key](https://www.browserbase.com/settings).

````