Skip to content

GET /v1/audio/voices pagination broken — page_size capped to 10, page parameter ignored, total appears incorrect #495

Description

@tartur

Summary

The GET /v1/audio/voices endpoint reports total: 30, total_pages: 3 but only ever returns the same 10 voices regardless of the page query parameter. The page_size parameter is silently capped at 10. Additionally, voices documented in the press release (Marie/FR, Nick, Angele, etc.) are not returned in the listing — though fr_marie_neutral is accessible directly by slug in POST /v1/audio/speech.

Reproduction

curl -s -H "Authorization: Bearer $MISTRAL_API_KEY" \
  "https://api.mistral.ai/v1/audio/voices?page=1&page_size=50" | jq '.page_size, .items | length'
# → 10, 10  (page_size=50 was ignored, server returns 10)

for p in 1 2 3 4 5; do
  curl -s -H "Authorization: Bearer $MISTRAL_API_KEY" \
    "https://api.mistral.ai/v1/audio/voices?page=$p" | jq -r '"page=" + (.page|tostring) + " items=" + ([.items[].slug] | tostring)'
done
# → All pages return the same 10 slugs: en_paul_* (8), gb_oliver_neutral, gb_jane_sarcasm
# → The server-side .page field is always 1 even when requesting page=5

Expected

  • page parameter respected (e.g., page=2 returns voices 11–20 if page_size=10).
  • page_size parameter respected up to a documented maximum.
  • total and total_pages accurately reflect listable voices, OR documentation explicitly says voices like fr_marie_neutral are accessible by slug but excluded from the listing (and explains why).

Actual

  • Always page 1 of 10, regardless of page value.
  • total: 30 but no way to access the other 20 entries through pagination.
  • Voices presented in the public TTS announcement (fr_marie_neutral, Nick, Angele, Gustavo, Khyathi, Yassir, Margaret, Sanchit per https://mistral.ai/fr/news/voxtral-tts) are not listed by this endpoint, even though at least fr_marie_neutral is fully functional when passed as voice_id to POST /v1/audio/speech.

Impact

Integrators cannot programmatically discover the full set of available voices, and are forced to hardcode slugs based on the press release (which lists voice names but no slugs). Either the listing should be complete, or the documentation should clarify the listing's scope and provide a canonical mapping of human-named voices to slugs.

Environment

  • Endpoint: https://api.mistral.ai/v1/audio/voices
  • Date observed: 2026-05-15
  • Auth: standard API key (also reproducible with paid credit)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions