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

# Get Signed URL

> Generates a secure, time-limited pre-signed URL to access a call recording. The generated link is temporary to ensure data security and prevent unauthorized access. You must provide either 'callId' or 'callRecordingUrl' in the query parameters.



## OpenAPI

````yaml GET /call/signed-recording-url
openapi: 3.0.0
info:
  title: SubVerse API reference
  description: Detailed guide on how to use the SubVerse APIs
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.subverseai.com/api
security:
  - ApiKeyAuth: []
paths:
  /call/signed-recording-url:
    get:
      tags:
        - Call
      summary: Generate a secure, time-limited signed URL for a call recording.
      description: >-
        Generates a secure, time-limited pre-signed URL to access a call
        recording. The generated link is temporary to ensure data security and
        prevent unauthorized access. You must provide either 'callId' or
        'callRecordingUrl' in the query parameters.
      operationId: getSignedRecordingUrl
      parameters:
        - name: callId
          in: query
          description: Unique identifier for the call.
          required: false
          schema:
            type: string
            example: '12345'
        - name: callRecordingUrl
          in: query
          description: A direct S3/Storage URL to a call recording.
          required: false
          schema:
            type: string
            example: https://s3.amazonaws.com/bucket/recording.mp3
      responses:
        '200':
          description: Returns error or success Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponse'
              examples:
                success:
                  summary: 200 - Success response
                  value:
                    responseCode: 200
                    message: Signed url generated successfully!
                    data:
                      url: https://example.com/recording.mp3?token=...
                apiMissing:
                  summary: 401 - Unauthorized (API key is missing).
                  value:
                    responseCode: 401
                    message: API key missing!
                    data: null
                callIdRequiredError:
                  summary: 400 - Validation error (Missing required parameters).
                  value:
                    responseCode: 400
                    message: >-
                      Validation error: Either callId or callRecordingUrl is
                      required
                    data: null
                callNotFound:
                  summary: 404 - Call record not found.
                  value:
                    responseCode: 404
                    message: No call record found, Please contact administrator.
                    data: null
                internalServerError:
                  summary: 500 - Internal server error
                  value:
                    responseCode: 500
                    message: Internal server error!
                    data: null
      security:
        - ApiKeyAuth: []
components:
  schemas:
    ApiResponse:
      type: object
      required:
        - responseCode
        - message
      properties:
        responseCode:
          type: integer
          description: >-
            Always returns 200 value, with error or success response details in
            message.
        message:
          type: string
          description: Success or error message with description.
        data:
          nullable: true
          description: Additional details if available.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Authentication header containing API key from SubVerse dashboard.

````