X-Audra-Commercial-Use header: production checklist — Audra

Two accounts call the same API and get different rights: the trial key may not publish what it renders; any paid key may. The X-Audra-Commercial-Use header is how you tell the API which side of that line your request is on — and how the platform enforces production intent consistently.

This post is the header's contract: when it is required, what flips your account to commercial, the 402 and how to fix it, and the production checklist.

The rule

Sending it

curl
curl https://audratalks.com/v2/speech \
  -H "Authorization: Bearer sk-audra-..." \
  -H "X-Audra-Commercial-Use: true" \
  -H "Content-Type: application/json" \
  -d '{"model":"audra-essential","voice":"june","text":"Production episode audio.","format":"mp3"}' \
  --output episode-12.mp3
Python
import requests

resp = requests.post(
    "https://audratalks.com/v2/speech",
    headers={
        "Authorization": "Bearer sk-audra-...",
        "X-Audra-Commercial-Use": "true",
    },
    json={"model": "audra-essential", "voice": "june", "text": text, "format": "mp3"},
    timeout=3600,
)
resp.raise_for_status()
JavaScript
const res = await fetch("https://audratalks.com/v2/speech", {
  method: "POST",
  headers: {
    Authorization: "Bearer sk-audra-...",
    "X-Audra-Commercial-Use": "true",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ model: "audra-essential", voice: "june", text, format: "mp3" }),
});
if (!res.ok) throw new Error(await res.text());

Checking your account state

GET /v2/usage returns the commercial boolean alongside your balance. Gate your pipeline on it at startup: if commercial is false, refuse to run the production job rather than rendering 40 episodes you cannot legally publish.

The 402, and its two causes

A 402 from /v2/speech means insufficient credits — purchase at /dashboard/billing. It also appears when a commercial-use declaration is sent from an account that has not unlocked commercial rights. The fix ordering matters: check /v2/usage first. If credits_chars is low, buy a pack (any pack also flips commercial on, solving the second cause). If credits are fine but commercial is false, the trial is the problem and the same $5 pack is the answer — there is no separate entitlement to buy.

Production checklist

Billing behavior including QA-gated refunds: the QA-gated billing post. Terms text: /terms. Packs and pricing: /pricing.