Audio Generation

MiniMax Speech 2.8 HD API

MiniMax Speech 2.8 HD — premium HD TTS with broadcast-grade voice clarity. Ideal for professional voiceover, audiobooks, and podcast production. Billed per input character.

model: minimax_voice/speech-2.8-hd
Wholesale key required. This endpoint accepts wholesale keys only. Have access? Get your key on the wholesale dashboard. Not on wholesale yet? Email admin@skillboss.co with your use case — we'll get you provisioned.

Quickstart

Audio generation uses /v1/run. TTS models accept `inputs.text` + optional `inputs.voice_id` and are billed per input character. Music generation accepts `inputs.lyrics` + optional style `inputs.prompt` and is billed per successful generation. Response includes a signed URL to the generated MP3 (fetch within ~24h before the link expires).

bashcurl https://api.skillboss.co/v1/run \
  -H "Authorization: Bearer $SKILLBOSS_WHOLESALE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "minimax_voice/speech-2.8-hd",
    "inputs": {
      "text": "Hello, this is a SkillBoss text-to-speech demo.",
      "voice_id": "female-shaonv"
    }
  }'

Your first 200 response is the fastest way to confirm setup. From there, swap in your real prompt and tune the model-specific parameters listed below.

Authentication

Every request must include your wholesale key. The header name depends on the endpoint — match the SDK you're using:

bashAuthorization: Bearer $SKILLBOSS_WHOLESALE_KEY

Treat the wholesale key like a password — never commit it to source control or ship it in client-side bundles. Rotate from the wholesale dashboard if exposed. Standard (non-wholesale) console keys are rejected at the gateway with 401.

Code examples

Python
pythonimport os, requests

resp = requests.post(
    "https://api.skillboss.co/v1/run",
    headers={"Authorization": f"Bearer {os.environ['SKILLBOSS_WHOLESALE_KEY']}"},
    json={
        "model": "minimax_voice/speech-2.8-hd",
        "inputs": {
            "text": "Hello, this is a SkillBoss text-to-speech demo.",
            "voice_id": "female-shaonv",
        },
    },
    timeout=60,
)
data = resp.json()
print(data["outputs"][0]["url"])  # signed URL to the generated audio
JavaScript / TypeScript
typescriptconst resp = await fetch("https://api.skillboss.co/v1/run", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.SKILLBOSS_WHOLESALE_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "minimax_voice/speech-2.8-hd",
    inputs: {
      text: "Hello, this is a SkillBoss text-to-speech demo.",
      voice_id: "female-shaonv",
    },
  }),
});
const data = await resp.json();
console.log(data.outputs[0].url);  // signed URL to the generated audio

Parameters

Pass the model identifier as a top-level model field, and all generation parameters under an inputs object. TTS models use inputs.text + inputs.voice_id; music models use inputs.lyrics + inputs.prompt. See the model card on the wholesale dashboard for the full voice library and music style hints.

NameTypeRequiredDescription
modelstringrequiredModel id. Use minimax_voice/speech-2.8-hd.
inputs.textstringrequiredText to synthesize. Billed per UTF-8 character.
inputs.voice_idstringoptionalVoice id from the MiniMax voice library (e.g. female-shaonv, male-qn-qingse, English_radiant_girl). Default is a balanced female voice.
inputs.speednumberoptionalPlayback speed multiplier, 0.5–2.0. Default 1.0.
inputs.volumenumberoptionalVolume multiplier, 0.1–10.0. Default 1.0.
inputs.pitchnumberoptionalPitch shift in semitones, -12 to 12. Default 0.
inputs.emotionstringoptionalVoice emotion, e.g. happy, sad, neutral (model-dependent).

Endpoint

MethodPOST
URLhttps://api.skillboss.co/v1/run
Auth headerAuthorization: Bearer $SKILLBOSS_WHOLESALE_KEY
Content-Typeapplication/json
StreamingNo SSE streaming — audio jobs return a complete MP3 URL in a single response.

Errors

The API uses standard HTTP status codes:

200OKRequest succeeded.
400Bad RequestInvalid model, missing required field, or malformed JSON.
401UnauthorizedMissing or invalid wholesale key. Non-wholesale console keys are rejected here.
402Insufficient CreditsWholesale balance too low — top up on the wholesale dashboard.
429Rate LimitedToo many requests. Back off with exponential delay.
500Server ErrorTransient upstream issue. Safe to retry.
503Upstream UnavailableDiscount pool capacity issue (lite tier). Retry or fall back to standard tier.

Pricing

Wholesale pricing is your account-specific discount × vendor list price. Discount rate depends on your contract — see the live numbers on the wholesale dashboard. The dashboard shows your current cost per 1M tokens (or per image / per second) for every model.

No platform markup on standard token billing. Volume tiers + monthly caps are configurable per key.