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

# List Speech Models

> Get all available speech models. If authenticated with a Requesty API key, returns only the models approved for your organization. Otherwise, returns all public models. Aliases and routing policies are chat-only and are never returned here.

<RequestExample>
  ```bash cURL theme={"dark"}
  curl https://router.requesty.ai/v1/models/speech \
    -H "Authorization: Bearer YOUR_REQUESTY_API_KEY"
  ```

  ```python Python theme={"dark"}
  import httpx

  response = httpx.get(
      "https://router.requesty.ai/v1/models/speech",
      headers={"Authorization": "Bearer YOUR_REQUESTY_API_KEY"},
  )

  for model in response.json()["data"]:
      print(model["id"])
  ```

  ```typescript TypeScript theme={"dark"}
  const response = await fetch("https://router.requesty.ai/v1/models/speech", {
    headers: { Authorization: `Bearer ${process.env.REQUESTY_API_KEY}` },
  });
  const { data } = await response.json();

  for (const model of data) {
    console.log(model.id);
  }
  ```
</RequestExample>

<ResponseExample>
  ```json Response 200 theme={"dark"}
  {
    "object": "list",
    "data": [
      {
        "api": "speech",
        "id": "openai/gpt-audio-mini",
        "object": "model",
        "created": 1776935721,
        "updated": 1776935721,
        "owned_by": "system",
        "pricing": {
          "input_token": 6e-07,
          "output_token": 2.4e-06
        },
        "data_retention": true,
        "data_retention_days": 30,
        "data_used_for_training": false,
        "privacy_comments": "",
        "geolocation": "global"
      },
      {
        "api": "speech",
        "id": "openai/tts-1",
        "object": "model",
        "created": 1767023142,
        "updated": 1767023142,
        "owned_by": "system",
        "pricing": {
          "input_character": 1.5e-05
        },
        "data_retention": true,
        "data_retention_days": 30,
        "data_used_for_training": false,
        "privacy_comments": "",
        "geolocation": "global"
      }
    ]
  }
  ```
</ResponseExample>

List the speech models available through the [`/v1/audio/speech`](/api-reference/endpoint/audio-speech-create) endpoint.

When authenticated with an API key, returns only the models approved for your organization. Without authentication, returns all publicly available models. Aliases and routing policies exist for chat only, so they never appear here.

Pricing is per input character (`input_character`) or per token (`input_token` and `output_token`), depending on the model.


## OpenAPI

````yaml GET /v1/models/speech
openapi: 3.0.3
info:
  title: Requesty Inference API
  description: >-
    Requesty Inference API for AI model routing. OpenAI-compatible endpoints for
    chat completions, embeddings, images, audio, and more.
  version: 1.0.0
servers:
  - url: https://router.requesty.ai
    description: Inference router endpoint
security:
  - BearerAuth: []
paths:
  /v1/models/speech:
    servers:
      - url: https://router.requesty.ai
        description: Inference router endpoint
    get:
      summary: List available speech models
      description: >-
        Get all available speech models. If authenticated with a Requesty API
        key, returns only the models approved for your organization. Otherwise,
        returns all public models. Aliases and routing policies are chat-only
        and are never returned here.
      operationId: listSpeechModels
      responses:
        '200':
          description: List of available models
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpeechModelsResponse'
              example:
                object: list
                data:
                  - api: speech
                    id: openai/gpt-audio-mini
                    object: model
                    created: 1776935721
                    updated: 1776935721
                    owned_by: system
                    pricing:
                      input_token: 6.e-7
                      output_token: 0.0000024
                    data_retention: true
                    data_retention_days: 0
                    data_used_for_training: true
                    privacy_comments: ''
                    geolocation: global
                  - api: speech
                    id: openai/tts-1
                    object: model
                    created: 1767023142
                    updated: 1767023142
                    owned_by: system
                    pricing:
                      input_character: 0.000015
                    data_retention: true
                    data_retention_days: 0
                    data_used_for_training: true
                    privacy_comments: ''
                    geolocation: global
        '400':
          description: Bad request - malformed payload or invalid parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized - missing or empty Authorization header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment required - organization balance exhausted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden - invalid token or model not in access list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found - provider/model not supported.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded. Retry after the Retry-After header value.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '502':
          description: Bad gateway - upstream provider returned an invalid response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - BearerAuth: []
        - {}
components:
  schemas:
    SpeechModelsResponse:
      type: object
      required:
        - object
        - data
      properties:
        object:
          type: string
          enum:
            - list
          description: The object type, always 'list'
        data:
          type: array
          items:
            $ref: '#/components/schemas/SpeechModel'
          description: The list of available speech models
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - origin
            - message
          properties:
            origin:
              type: string
              enum:
                - router
                - provider
              description: >-
                Whether the error originated from Requesty's router or an
                upstream provider.
            message:
              type: string
              description: Human-readable error description.
    SpeechModel:
      type: object
      properties:
        api:
          type: string
          enum:
            - speech
          description: The modality of the model, always 'speech'
        id:
          type: string
          description: The model identifier (e.g., 'openai/tts-1')
        object:
          type: string
          enum:
            - model
          description: The object type, always 'model'
        created:
          type: integer
          description: The Unix timestamp (in seconds) when the model was created
        updated:
          type: integer
          description: The Unix timestamp (in seconds) when the model was last updated
        owned_by:
          type: string
          description: The system or organization that owns the model
          example: system
        pricing:
          type: object
          description: >-
            Prices for the model. Token prices and `input_character` are
            mutually exclusive, depending on the model's pricing scheme.
          properties:
            input_token:
              type: number
              format: float
              description: Price per input token in USD
            output_token:
              type: number
              format: float
              description: Price per output token in USD
            input_character:
              type: number
              format: float
              description: Price per input character in USD
        data_retention:
          type: boolean
          description: Whether the provider retains request data
        data_retention_days:
          type: integer
          description: Number of days the provider retains request data
        data_used_for_training:
          type: boolean
          description: Whether the provider may use request data for training
        privacy_comments:
          type: string
          description: Additional privacy notes for the model
        geolocation:
          type: string
          description: Region the model is served from, e.g. 'us' or 'eu'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: API key for authentication

````