---
title: "List engines, what each can do, and what each costs"
method: GET
path: "/api/v1/engines"
tags: ["Public API v1"]
---

# List engines, what each can do, and what each costs

`GET /api/v1/engines`

The engine registry as it is configured right now: which engines are live, which one you get when you omit `engine`, and the BILLING MULTIPLIER applied to each. Until this endpoint existed the multipliers lived only in prose, so a caller sizing a budget had to trust a table that could go stale the moment pricing changed. `features` tells you what each engine may be asked to do — note that `stream` appears on v4 only, which is why every stream is charged at the v4 rate regardless of what you send. No authentication required.

## Response `200`

One entry per enabled engine, in display order.

- object
  - `engines` object[]
    - `key` string
    - `label` string
    - `isDefault` boolean — The engine used when a request omits `engine`.
    - `sampleRate` integer
    - `billingMultiplier` number — Multiplies the per-character token charge. A request on an engine with multiplier 3 costs twice one with multiplier 1.5.
    - `features` string[] — What this engine may be asked to do. `stream` is the one that decides whether POST /v1/tts/stream accepts it.

## Other responses

- `401` — API key missing, malformed, or revoked.
- `429` — Rate limit or token quota exceeded. When the limit came from the application the response carries `Retry-After` (seconds) and the `X-RateLimit-*` headers and is counted against your API key; a 429 with none of those headers came from the edge proxy and is counted against your source address, shared with every other key calling from it. Back off on either.

---

[API](https://skmtc.dev/vieneu/apis/vieneu-api.md) · [All operations](https://skmtc.dev/vieneu/apis/vieneu-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/vieneu/vieneu-api/revisions/11c8166a6c4d/schema)
