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

# Get a run recording download URL

> Get a short-lived signed URL that downloads the run's screen recording (MP4), plus its file name and size. Use this instead of the streaming endpoint when the client should hand the link off rather than hold the bytes. Recordings become available after the run finishes; cancelled runs and runs without a recording return 404.



## OpenAPI

````yaml /openapi.json get /v1/runs/{id}/recording/download-url
openapi: 3.0.0
info:
  title: TestArmy API
  version: 1.0.0
  description: >-
    AI-powered browser automation API for QA testing. Automate web testing
    workflows using natural language prompts.
servers:
  - url: https://tester.army/api
    description: Production API server
security: []
paths:
  /v1/runs/{id}/recording/download-url:
    get:
      tags:
        - Test Runs
      summary: Get a run recording download URL
      description: >-
        Get a short-lived signed URL that downloads the run's screen recording
        (MP4), plus its file name and size. Use this instead of the streaming
        endpoint when the client should hand the link off rather than hold the
        bytes. Recordings become available after the run finishes; cancelled
        runs and runs without a recording return 404.
      parameters:
        - schema:
            type: string
            format: uuid
            description: Test run ID
          required: true
          description: Test run ID
          name: id
          in: path
      responses:
        '200':
          description: Signed recording download URL
          content:
            application/json:
              schema:
                type: object
                properties:
                  runId:
                    type: string
                    format: uuid
                  fileName:
                    type: string
                  mediaType:
                    type: string
                  sizeBytes:
                    type: number
                    nullable: true
                    description: Recording size in bytes, when R2 reports it
                  downloadUrl:
                    type: string
                    format: uri
                  expiresIn:
                    type: number
                    description: Lifetime of the URL in seconds
                  expiresAt:
                    type: string
                    format: date-time
                required:
                  - runId
                  - fileName
                  - mediaType
                  - sizeBytes
                  - downloadUrl
                  - expiresIn
                  - expiresAt
        '400':
          description: Bad Request - Invalid input parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                  - error
                  - message
        '401':
          description: Unauthorized - Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                  - error
                  - message
        '404':
          description: Run not found or no recording available for this run
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                  - error
                  - message
        '429':
          description: Too Many Requests - Usage limit exceeded
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                  - error
                  - message
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                  - error
                  - message
        '504':
          description: Gateway Timeout - Test execution exceeded time limit
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                  - error
                  - message
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: API key authentication using Bearer token format

````