Read the Sume TTS Router catalog in one request: Sonic ids, prices

GET /v1/tts-router/models lists the Sonic ids, the per-character list price, the margin and the 20,000-character cap. A small Node script prints them.

4 min readSume
All posts

Call GET https://api.sume.com/v1/tts-router/models with your API key and read data.models. Each row has an id, the character cap under capabilities.max_characters, and a pricing object with the list price in micro-dollars per character, the margin and the billing formula.

Read prices from this response, not from prose, so your estimate follows whatever the catalog says today.

A script that prints the catalog

Run it with Node 18 or later and SUME_API_KEY set. Auth is x-api-key or an Authorization: Bearer header.

async function main() {
  const res = await fetch("https://api.sume.com/v1/tts-router/models", {
    headers: { "x-api-key": process.env.SUME_API_KEY ?? "" },
  });
  if (!res.ok) throw new Error("HTTP " + res.status);
  const { data } = await res.json();
  for (const m of data.models) {
    const p = m.pricing;
    const per1k = (p.list_usd_micros_per_character * 1000) / 1e6;
    console.log(
      m.id.padEnd(14),
      "max", m.capabilities.max_characters,
      "list $" + per1k.toFixed(3) + "/1K",
      "margin", p.billable_margin,
    );
  }
}
main().catch((e) => { console.error(e.message); process.exit(1); });

What the five ids are

The router is Cartesia Sonic only in v1. The repo docs describe the ids this way.

Sume TTS Router model ids, from the API reference and Sume docs (read 2026-10-07)
IdMeaning
sonic-3.6The current stable Sonic that TTS 1.0 uses
sonic-3.5Explicit earlier version
sonic-3Explicit earlier version
sonic-latestAlias that resolves to sonic-3.6
sonic-previewBeta channel; output and availability can change, and it rejects pro voice clones with voice_model_mismatch

Doing the price arithmetic

The list price is 38 micro-dollars per character, so 1,000 characters list at $0.038. The billed rate multiplies that by the 1.25 margin to give $0.0475 per 1,000, and each job is rounded up to the cent. The script above prints the list price and the margin as the API returns them, so if either changes you see it.

One caution: the prose description of the pricing field in the OpenAPI document still mentions an older 1.10 figure. The Sume docs say 1.25 is what a job is actually charged, so trust the billable_margin value in the response.

Using an id in a generate call

POST /v1/tts-router/generate requires model plus one voice selector and one of transcript or transcript_source. Pin sonic-3.6 when you want stable output across months. Use sonic-latest when you would rather follow the newest stable. Avoid sonic-preview for anything customers hear.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume