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

# List voices

> Returns a cursor-paginated catalogue of available voices.
Use the `voice` field from a voice record when creating or updating an agent.



## OpenAPI

````yaml get /v2/voices
openapi: 3.0.3
info:
  title: OpenMic External API v2
  version: '2.0'
  description: >-
    The OpenMic External API (v2) provides programmatic access to agents, calls,

    phone numbers, tools, contact lists, campaigns, and voices.


    ## Authentication

    All endpoints require an API key passed as a Bearer token in the

    `Authorization` header:

    ```

    Authorization: Bearer <your_api_key>

    ```


    ## Rate Limiting

    Most endpoints are limited to **100 requests per minute** per organization.

    The `POST /create-phone-call` endpoint has a stricter limit of **5 requests
    per minute**.
  contact:
    name: OpenMic Support
servers:
  - url: https://api.openmic.ai
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Auth
    description: Verify API key identity.
  - name: Agents
    description: Create and manage voice AI agents.
  - name: Calls
    description: Initiate and track phone calls.
  - name: Phone Numbers
    description: Manage phone numbers and agent assignments.
  - name: Tools
    description: Manage agent tools (API requests, call transfers, etc.).
  - name: Contact Lists
    description: Manage contact lists and individual contacts.
  - name: Campaigns
    description: Create and manage outbound dialing campaigns.
  - name: Voices
    description: Browse available voices for agents.
  - name: SMS
    description: Send SMS messages.
paths:
  /v2/voices:
    get:
      tags:
        - Voices
      summary: List voices
      description: >-
        Returns a cursor-paginated catalogue of available voices.

        Use the `voice` field from a voice record when creating or updating an
        agent.
      operationId: listVoices
      parameters:
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/Cursor'
        - name: search
          in: query
          schema:
            type: string
          description: Full-text search on voice name.
        - name: gender
          in: query
          schema:
            type: string
            enum:
              - MALE
              - FEMALE
              - NEUTRAL
        - name: provider
          in: query
          schema:
            type: string
            enum:
              - OpenAI
              - ElevenLabs
              - Deepgram
              - Cartesia
              - Rime
              - Sarvam
        - name: language
          in: query
          schema:
            type: string
        - name: accent
          in: query
          schema:
            type: string
        - name: sort_by
          in: query
          schema:
            type: string
            enum:
              - name
              - created_at
        - name: sort_order
          in: query
          schema:
            type: string
            enum:
              - asc
              - desc
      responses:
        '200':
          description: Paginated list of voices.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListVoicesResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  parameters:
    PageSize:
      name: page_size
      in: query
      schema:
        type: integer
        minimum: 1
        maximum: 100
      description: Number of records per page (default 50, max 100).
    Cursor:
      name: cursor
      in: query
      schema:
        type: string
      description: Opaque pagination cursor returned by the previous response.
  schemas:
    ListVoicesResponse:
      allOf:
        - $ref: '#/components/schemas/PaginationMeta'
        - type: object
          required:
            - voices
            - has_more
          properties:
            voices:
              type: array
              items:
                $ref: '#/components/schemas/VoiceResponse'
    PaginationMeta:
      type: object
      properties:
        has_more:
          type: boolean
          description: Whether more records exist after this page.
        next_cursor:
          type: string
          description: Opaque cursor to pass as `cursor` in the next request.
    VoiceResponse:
      type: object
      required:
        - id
        - name
        - provider
      properties:
        id:
          type: integer
        name:
          type: string
        provider:
          type: string
          enum:
            - OpenAI
            - ElevenLabs
            - Deepgram
            - Cartesia
            - Rime
            - Sarvam
        gender:
          type: string
          enum:
            - MALE
            - FEMALE
            - NEUTRAL
        language:
          type: string
        accent:
          type: string
        preview_url:
          type: string
        created_at:
          type: string
          format: date-time
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: string
        details:
          type: string
  responses:
    BadRequest:
      description: Validation error or invalid request body.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: Rate limit exceeded.
      content:
        application/json:
          schema:
            type: object
            properties:
              success:
                type: boolean
              message:
                type: string
              error:
                type: string
              retryAfter:
                type: integer
    InternalServerError:
      description: Unexpected server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key obtained from the OpenMic dashboard.

````