Hailuo AI / MiniMax Text to Speech API

Speech synthesis (T2A v2).

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/hailuo-ai-text-to-speech-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 email required.

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

OpenAPI Specification

hailuo-ai-text-to-speech-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Hailuo AI / MiniMax Chat Completions Text to Speech API
  description: 'Documented HTTP APIs for MiniMax''s Hailuo generative video and audio platform. The primary surface is AI video generation (Hailuo models), which follows an asynchronous three-step pattern: create a task (POST /video_generation) to receive a task_id, poll status (GET /query/video_generation) until it returns a file_id, then retrieve the file (GET /files/retrieve) to obtain a temporary download URL for the finished MP4. The same platform also serves text-to-speech (T2A), OpenAI-compatible chat completions, and music generation. All endpoints authenticate with a Bearer API key from the MiniMax console.

    Video generation endpoints, methods, the async task/query/retrieve flow, model names, and core parameters are grounded in MiniMax''s published documentation. Request and response schemas are modeled to reflect the documented fields; treat exact field-level shapes as approximate and reconcile against the live API reference. The text-to-speech, chat-completions, and music-generation request bodies are modeled representative payloads.'
  version: '1.0'
  contact:
    name: MiniMax
    url: https://platform.minimax.io
  x-endpointsModeled: true
  x-endpointsModeledNote: Video generation, query, and file-retrieve endpoints, HTTP methods, model names, and the async workflow are confirmed from live MiniMax docs. Detailed JSON schemas, and the music-generation endpoint payload, are honestly modeled and should be reconciled against the official reference before production use.
servers:
- url: https://api.minimax.io/v1
  description: MiniMax International (global)
- url: https://api-uw.minimax.io/v1
  description: MiniMax International - US West (lower time-to-first-audio for T2A)
- url: https://api.minimaxi.chat/v1
  description: MiniMax Mainland China
security:
- bearerAuth: []
tags:
- name: Text to Speech
  description: Speech synthesis (T2A v2).
paths:
  /t2a_v2:
    post:
      operationId: createSpeech
      tags:
      - Text to Speech
      summary: Synthesize speech (T2A v2)
      description: Synchronous text-to-speech over HTTP using the speech-2.8 / speech-2.6 / speech-02 / speech-01 HD or turbo models. Text must be under 10,000 characters. A real-time WebSocket variant is documented separately at wss://api.minimax.io/ws/v1/t2a_v2 (see the AsyncAPI document).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/T2ARequest'
      responses:
        '200':
          description: Synthesized audio (hex-encoded or a URL) plus metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/T2AResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    T2AResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            audio:
              type: string
              description: Hex-encoded audio bytes (or a URL, per audio settings).
            status:
              type: integer
        extra_info:
          type: object
        base_resp:
          $ref: '#/components/schemas/BaseResp'
    T2ARequest:
      type: object
      required:
      - model
      - text
      properties:
        model:
          type: string
          enum:
          - speech-2.8-hd
          - speech-2.8-turbo
          - speech-2.6-hd
          - speech-2.6-turbo
          - speech-02-hd
          - speech-02-turbo
          - speech-01-hd
          - speech-01-turbo
          example: speech-2.6-hd
        text:
          type: string
          description: Text to synthesize; must be under 10,000 characters.
          example: Welcome to the API Evangelist network.
        stream:
          type: boolean
          example: false
        voice_setting:
          type: object
          properties:
            voice_id:
              type: string
              example: male-qn-qingse
            speed:
              type: number
              example: 1.0
            vol:
              type: number
              example: 1.0
            pitch:
              type: integer
              example: 0
        audio_setting:
          type: object
          properties:
            sample_rate:
              type: integer
              example: 32000
            bitrate:
              type: integer
              example: 128000
            format:
              type: string
              example: mp3
    BaseResp:
      type: object
      description: Standard MiniMax response status wrapper.
      properties:
        status_code:
          type: integer
          description: 0 indicates success; non-zero indicates an error.
          example: 0
        status_msg:
          type: string
          example: success
  responses:
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BaseResp'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Bearer API key created in the MiniMax platform console under Account Management > API Keys. Passed as `Authorization: Bearer {api_key}`.'