Burma Voice Burma Voice / API Reference

Quickstart

  1. 01

    Get a key

    Create it in the Developer page.

  2. 02

    Subscribe

    Pick a plan — card or local MMQR.

  3. 03

    Call the API

    Send text → get audio.

Base URL

https://api.burmavoice.com

Auth

Authorization: Bearer YOUR_API_KEY

Synthesize speech

POST /v1/tts

Design a voice from words

Describe a voice and speak any text. Returns a job — poll it for the audio.

curl -X POST https://api.burmavoice.com/v1/tts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "မင်္ဂလာပါ။ ဒီနေ့ အစီအစဉ် ရှိပါတယ်။",
    "voice_design": "A warm young man, calm and clear",
    "format": "mp3"
  }'

# → { "job_id": "job_…", "status": "queued", "est_cost_mmk": 10 }
# 402 insufficient_credit  ·  403 subscription_required (no active plan)
GET /v1/jobs/:id

Get the result

Poll until status is done, then fetch audio_url.

curl https://api.burmavoice.com/v1/jobs/JOB_ID \
  -H "Authorization: Bearer YOUR_API_KEY"

# → { "status": "done", "final_cost_mmk": 10, "audio_url": "…" }

Clone a voice

POST /v1/voices

Create a cloned voice

Upload a short clip (base64). Add transcript for best quality.

curl -X POST https://api.burmavoice.com/v1/voices \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "cloned",
    "name": "my voice",
    "consent_confirmed": true,
    "reference_audio_base64": "<wav base64>",
    "reference_format": "wav",
    "reference_text": "transcript of the clip"
  }'

# → { "voice_id": "voice_…", "clone_mode": "ultimate" }
POST /v1/tts

Speak in the cloned voice

Pass the voice_id. Optionally tune cfg_value and temperature.

curl -X POST https://api.burmavoice.com/v1/tts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "…",
    "voice_id": "voice_…",
    "format": "mp3",
    "cfg_value": 2.0,
    "temperature": 0.8
  }'
GET /v1/voices

List your voices

Your cloned/designed voices plus any shared presets.

curl https://api.burmavoice.com/v1/voices \
  -H "Authorization: Bearer YOUR_API_KEY"

# → { "voices": [
#     { "id": "voice_…", "name": "my voice", "type": "cloned",
#       "clone_mode": "ultimate", "has_reference": true } ] }
GET /v1/voices/:id/audio

Fetch reference clip

Download the reference audio you uploaded for a voice.

curl https://api.burmavoice.com/v1/voices/VOICE_ID/audio \
  -H "Authorization: Bearer YOUR_API_KEY" -o reference.wav
# downloads the reference clip you uploaded for that voice

Account

GET /v1/credits

Check your balance

How much credit (and ~minutes) you have left, plus plan + subscription status.

curl https://api.burmavoice.com/v1/credits \
  -H "Authorization: Bearer YOUR_API_KEY"

# → { "available_mmk": 5000, "available_minutes_est": 50,
#     "plan": "Pro", "subscription_active": true }
GET /v1/usage/summary

Lifetime totals

Aggregate jobs / billed / minutes — cheap, doesn't grow with history.

curl https://api.burmavoice.com/v1/usage/summary \
  -H "Authorization: Bearer YOUR_API_KEY"

# Lifetime totals only (O(1) — never scans the full history).
# → { "jobs": 128, "billed_mmk": 4200, "minutes": 84 }
GET /v1/usage

Usage history

Paginated list of recent jobs (keyset cursor).

curl "https://api.burmavoice.com/v1/usage?limit=20" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Keyset pagination: pass the returned next_cursor as ?cursor= for the next page.
# limit: 1–100 (default 20). next_cursor is null on the last page.
# → { "jobs": [
#     { "id": "job_…", "status": "done", "text": "မင်္ဂလာပါ…",
#       "actual_minutes": 0.4, "final_cost_mmk": 20, "created_at": 1730000000 } ],
#     "next_cursor": "1730000000_job_abc" }

Out of credit or no active plan? Manage it on billing.