Get started / Model types

Model types

Chat, image, video, speech, transcription, embeddings, rerank and decision models — one key, one evidence trail, a route per type.

Output modality decides the route

A model's output modality says what it produces, and that decides which gateway route serves it. The catalog and GET /v1/models carry output_modalities and operations on every model, and GET /api/v1/catalog/models?operation=… filters by operation.

Output modalityOperationRoute
text (with or without image / audio)chat/v1/chat/completions · /v1/responses · /v1/messages
image (alone)images/v1/images/generations
videovideos/v1/videos · async
speechspeech/v1/audio/speech
transcriptiontranscriptions/v1/audio/transcriptions
embeddingsembeddings/v1/embeddings
rerankrerank/v1/rerank
decisionsdecisions/v1/decisions
realtime (the marker; alone, or beside text / audio)realtime/v1/realtime

Sending a model to a route it is not served on answers 422 capability_unsupported with code: "operation_unsupported" and a message naming the route that serves it. Every model in the catalog shows its type and route.

How they are priced

Every model is priced at its listed final price — the figure on its catalog page is what a request costs, with nothing added on top.

  • Chat — per million input and output tokens.
  • Images, speech, transcription, embeddings, decisions — the model's unit prices as listed, each in the unit it counts: per million characters (most text-to-speech), per minute of audio (some speech, most transcription), per million text, image or audio tokens, per image or per request.
  • Models without a fixed unit price (most video, some rerank) — billed per request. The exact charge of each request comes back with the response in yelno.cost (Yelno-Charge-Nanos for speech, whose body is audio).

Before dispatch a hold is placed and then released down to the final charge. When a charge is reported after the response, the request settles once — it is never charged a guess.

What is not offered yet

Stated so nothing is silently dropped:

  • No streaming for images or speech yet — the gateway buffers the response.
  • No voice cloning, callback_url webhooks or video continuation (previous_job_id). Any field a route does not list is refused with 400 invalid_request, code: "unsupported_parameter" — never forwarded, never ignored.
  • No latency, quality or availability figure is published for these models.