Telnyx Media Storage API

Media Storage operations

Operations 6

GET /media List uploaded media #
POST /media Upload media #
DELETE /media/{media_name} Deletes stored media #
GET /media/{media_name} Retrieve stored media #
PUT /media/{media_name} Update stored media #
GET /media/{media_name}/download Download stored media #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/telnyx:telnyx-media-storage-api-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

telnyx-media-storage-api-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Telnyx Media Storage API
  version: 2.0.0
  contact:
    email: support@telnyx.com
  x-endpoint-cost: light
  x-refined-note:
  - x-latency-category differs across the merged source definitions and was not carried
  description: 'Operations tagged Media Storage API across 2 of this provider''s published API definitions: telnyx-openapi.yml, telnyx-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- description: Version 2.0.0 of the Telnyx API
  url: https://api.telnyx.com/v2
security:
- bearerAuth: []
tags:
- description: Media Storage operations
  name: Media Storage API
paths:
  /media:
    get:
      description: Returns a list of stored media files.
      operationId: ListMediaStorage
      parameters:
      - description: 'Consolidated filter parameter (deepObject style). Originally: filter[content_type][]'
        explode: true
        in: query
        name: filter
        schema:
          properties:
            content_type:
              description: Filters files by given content types
              items:
                example: application_xml
                type: string
              type: array
          type: object
        style: deepObject
      responses:
        '200':
          $ref: '#/components/responses/ListMediaResponse'
        '401':
          $ref: '#/components/responses/media-storage_GenericErrorResponse'
        default:
          $ref: '#/components/responses/media-storage_GenericErrorResponse'
      summary: List uploaded media
      tags:
      - Media Storage API
      x-latency-category: interactive
    post:
      description: Upload media file to Telnyx so it can be used with other Telnyx services
      operationId: CreateMediaStorage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UploadMediaRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UploadMediaMultipartRequest'
        description: Upload media request
        required: true
      responses:
        '201':
          $ref: '#/components/responses/MediaResponse'
        '401':
          $ref: '#/components/responses/media-storage_GenericErrorResponse'
        '422':
          $ref: '#/components/responses/media-storage_GenericErrorResponse'
        default:
          $ref: '#/components/responses/media-storage_GenericErrorResponse'
      summary: Upload media
      tags:
      - Media Storage API
      x-latency-category: interactive
    servers:
    - description: Version 2.0.0 of the Telnyx API
      url: https://api.telnyx.com/v2
  /media/{media_name}:
    delete:
      description: Deletes a stored media file.
      operationId: DeleteMediaStorage
      parameters:
      - $ref: '#/components/parameters/MediaName'
      responses:
        '204':
          description: The media was deleted successfully.
        '401':
          $ref: '#/components/responses/media-storage_GenericErrorResponse'
        '404':
          $ref: '#/components/responses/media-storage_GenericErrorResponse'
        default:
          $ref: '#/components/responses/media-storage_GenericErrorResponse'
      summary: Deletes stored media
      tags:
      - Media Storage API
      x-latency-category: interactive
    get:
      description: Returns the information about a stored media file.
      operationId: GetMediaStorage
      parameters:
      - $ref: '#/components/parameters/MediaName'
      responses:
        '200':
          $ref: '#/components/responses/MediaResponse'
        '401':
          $ref: '#/components/responses/media-storage_GenericErrorResponse'
        '404':
          $ref: '#/components/responses/media-storage_GenericErrorResponse'
        default:
          $ref: '#/components/responses/media-storage_GenericErrorResponse'
      summary: Retrieve stored media
      tags:
      - Media Storage API
      x-latency-category: interactive
    put:
      description: Updates a stored media file.
      operationId: UpdateMediaStorage
      parameters:
      - $ref: '#/components/parameters/MediaName'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateMediaRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UpdateMediaMultipartRequest'
        description: Update media request
        required: true
      responses:
        '200':
          $ref: '#/components/responses/MediaResponse'
        '401':
          $ref: '#/components/responses/media-storage_GenericErrorResponse'
        '404':
          $ref: '#/components/responses/media-storage_GenericErrorResponse'
        '422':
          $ref: '#/components/responses/media-storage_GenericErrorResponse'
        default:
          $ref: '#/components/responses/media-storage_GenericErrorResponse'
      summary: Update stored media
      tags:
      - Media Storage API
      x-latency-category: interactive
    servers:
    - description: Version 2.0.0 of the Telnyx API
      url: https://api.telnyx.com/v2
  /media/{media_name}/download:
    get:
      description: Downloads a stored media file.
      operationId: DownloadMedia
      parameters:
      - $ref: '#/components/parameters/MediaName'
      responses:
        '200':
          $ref: '#/components/responses/MediaDownloadResponse'
        '401':
          $ref: '#/components/responses/media-storage_GenericErrorResponse'
        '404':
          $ref: '#/components/responses/media-storage_GenericErrorResponse'
        '422':
          $ref: '#/components/responses/media-storage_GenericErrorResponse'
        default:
          $ref: '#/components/responses/media-storage_GenericErrorResponse'
      summary: Download stored media
      tags:
      - Media Storage API
      x-latency-category: interactive
    servers:
    - description: Version 2.0.0 of the Telnyx API
      url: https://api.telnyx.com/v2
components:
  parameters:
    MediaName:
      description: Uniquely identifies a media resource.
      in: path
      name: media_name
      required: true
      schema:
        type: string
  schemas:
    PaginationMeta:
      properties:
        page_number:
          example: 2
          type: integer
        page_size:
          example: 25
          type: integer
        total_pages:
          example: 3
          type: integer
        total_results:
          example: 55
          type: integer
      type: object
    UploadMediaMultipartRequest:
      example:
        media: string($binary)
        media_name: my-file
        ttl_secs: 86400
      properties:
        media:
          description: The file you want to upload. The maximum allowed size is 20 MB.
          format: binary
          type: string
        media_name:
          description: The unique identifier of a file.
          example: my_file
          type: string
        ttl_secs:
          description: The number of seconds after which the media resource will be deleted, defaults to 2 days. The maximum allowed vale is 630720000, which translates to 20 years.
          example: 86400
          type: integer
      required:
      - media
      title: Upload media multipart request
      type: object
    MediaResource:
      example:
        content_type: application/xml
        created_at: '2019-01-23T18:10:02.574Z'
        expires_at: '2020-01-23T18:10:02.574Z'
        media_name: f5586561-8ff0-4291-a0ac-84fe544797bd
        updated_at: '2019-01-23T18:10:02.574Z'
      properties:
        content_type:
          description: Content type of the file
          example: application/xml
          type: string
        created_at:
          description: ISO 8601 formatted date of when the media resource was created
          example: '2019-01-23T18:10:02.574Z'
          type: string
        expires_at:
          description: ISO 8601 formatted date of when the media resource will expire and be deleted.
          example: '2020-01-23T18:10:02.574Z'
          type: string
        media_name:
          description: Uniquely identifies a media resource.
          type: string
        updated_at:
          description: ISO 8601 formatted date of when the media resource was last updated
          example: '2019-01-23T18:10:02.574Z'
          type: string
      title: Media Resource
      type: object
    media-storage_Error:
      properties:
        code:
          type: string
        detail:
          type: string
        meta:
          additionalProperties: true
          type: object
        source:
          properties:
            parameter:
              description: Indicates which query parameter caused the error.
              type: string
            pointer:
              description: JSON pointer (RFC6901) to the offending entity.
              type: string
          type: object
        title:
          type: string
      required:
      - code
      - title
      type: object
    UploadMediaRequest:
      example:
        media_name: my-file
        media_url: http://www.example.com/audio.mp3
        ttl_secs: 86400
      properties:
        media_name:
          description: The unique identifier of a file.
          example: my_file
          type: string
        media_url:
          description: The URL where the media to be stored in Telnyx network is currently hosted. The maximum allowed size is 20 MB.
          example: http://www.example.com/audio.mp3
          type: string
        ttl_secs:
          description: The number of seconds after which the media resource will be deleted, defaults to 2 days. The maximum allowed vale is 630720000, which translates to 20 years.
          example: 86400
          type: integer
      required:
      - media_url
      title: Upload media request
      type: object
    media-storage_Errors:
      properties:
        errors:
          items:
            $ref: '#/components/schemas/media-storage_Error'
          type: array
      type: object
    UpdateMediaMultipartRequest:
      example:
        media: string($binary)
        ttl_secs: 86400
      properties:
        media:
          description: The file you want to upload. The maximum allowed size is 20 MB.
          format: binary
          type: string
        ttl_secs:
          description: The number of seconds after which the media resource will be deleted, defaults to 2 days. The maximum allowed vale is 630720000, which translates to 20 years.
          example: 86400
          type: integer
      title: Upload media multipart request
      type: object
    UpdateMediaRequest:
      example:
        media_url: http://www.example.com/audio.mp3
        ttl_secs: 86400
      properties:
        media_url:
          description: The URL where the media to be stored in Telnyx network is currently hosted. The maximum allowed size is 20 MB.
          example: http://www.example.com/audio.mp3
          type: string
        ttl_secs:
          description: The number of seconds after which the media resource will be deleted, defaults to 2 days. The maximum allowed vale is 630720000, which translates to 20 years.
          example: 86400
          type: integer
      title: Upload media request
      type: object
    Errors:
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/billing-group_Error'
      type: object
    billing-group_Error:
      type: object
      required:
      - code
      - title
      properties:
        code:
          type: integer
          format: int32
        title:
          type: string
        detail:
          type: string
        source:
          type: object
          properties:
            pointer:
              description: JSON pointer (RFC6901) to the offending entity.
              type: string
            parameter:
              description: Indicates which query parameter caused the error.
              type: string
        meta:
          type: object
          properties: {}
          additionalProperties: true
  responses:
    MediaDownloadResponse:
      content:
        application/octet-stream:
          schema:
            format: binary
            type: string
      description: A response describing a media resource
    media-storage_GenericErrorResponse:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/media-storage_Errors'
      description: Unexpected error
    ListMediaResponse:
      content:
        application/json:
          schema:
            properties:
              data:
                items:
                  $ref: '#/components/schemas/MediaResource'
                type: array
              meta:
                $ref: '#/components/schemas/PaginationMeta'
            title: List of media resources response
            type: object
      description: A response with a list of media resources
    MediaResponse:
      content:
        application/json:
          schema:
            properties:
              data:
                $ref: '#/components/schemas/MediaResource'
            title: Media resource response
            type: object
      description: A response describing a media resource
    media-storage_GenericErrorResponse_2:
      description: Unexpected error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
          example:
            errors:
            - code: string
              title: string
              detail: string
              source:
                pointer: string
                parameter: string
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http
    branded-calling_bearerAuth:
      description: API key passed as a Bearer token in the Authorization header
      scheme: bearer
      type: http
    oauthClientAuth:
      description: OAuth 2.0 authentication for Telnyx API and MCP integrations
      flows:
        authorizationCode:
          authorizationUrl: https://api.telnyx.com/v2/oauth/authorize
          refreshUrl: https://api.telnyx.com/v2/oauth/token
          scopes:
            admin: Administrative access to Telnyx resources
          tokenUrl: https://api.telnyx.com/v2/oauth/token
        clientCredentials:
          scopes:
            admin: Administrative access to Telnyx resources
          tokenUrl: https://api.telnyx.com/v2/oauth/token
      type: oauth2
    outbound-voice-profiles_bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http
    pronunciation-dicts_bearerAuth:
      description: Telnyx API v2 key. Obtain from https://portal.telnyx.com
      scheme: bearer
      type: http
    stored-payment-transactions_bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
      description: 'Telnyx API key supplied as `Authorization: Bearer <token>`. In production, auth may be validated by the API gateway and forwarded via Telnyx auth headers.'
    Payment:
      type: apiKey
      in: header
      name: Authorization
      description: 'Machine Payment Protocol credential used on paid retries, sent as `Authorization: Payment ...`. Obtained by paying a challenge returned in the `WWW-Authenticate` header of a 402 response. This is not a Telnyx API key; initial challenge requests use standard bearer authentication instead.'
    agent-memory_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key
    collections_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key. Collections and results are automatically scoped to the authenticated user's organization.
    number-reputation_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key. Generate one at https://portal.telnyx.com/#/app/api-keys.
    rcs-registration_bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
    transcriptions-search_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key. Results are automatically scoped to the authenticated user's organization.
    web-search_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key
x-refined-from:
- telnyx-openapi.yml
- telnyx-openapi.json