Send multipart/form-data with the file, or JSON with the audio base64-encoded. Up to 25 MB either way.
FieldRequiredNotes
filerequiredThe audio file (multipart).
modelrequiredA speech-to-text model's id.
languageoptionalThe spoken language, when you know it.
response_formatoptional"json" · "verbose_json"
temperatureoptionalSampling temperature, when the model supports it.
JSON requests may also send timestamp_granularities, diarize and keyterms where the model supports them. Any other field is refused with 400 unsupported_parameter.
language, duration, segments and words are present when the model returns them.
Every JSON response carries the same yelno block a chat response does: request_id, provider, model, endpoint_id, attempts and cost. cost is {state: "final", currency, customer_nanos} when the provider reported the cost with the response, or {state: "pending", currency, note} when it reports it later — the charge then settles once. Errors use the standard error envelope; upstream text never reaches you.
Sending a model to a route it is not served on answers 422capability_unsupported with code: "operation_unsupported" and a message naming the route that serves it. Every model in the catalog shows its type and route.
Pricing. You pay the model's listed final price — shown on its catalog page — and nothing on top. A model without a fixed unit price is billed per request: its exact charge comes back with every response in yelno.cost. A hold is placed before dispatch and released down to the final charge; when the charge is reported after the response, the request settles once — it is never charged a guess.