Reference
Not supported yet
The OpenAI endpoints and parameters this API does not implement, stated plainly, so you find out here rather than at a 404.
Chat completions is the surface. Everything below is absent, and knowing that now is worth more than
discovering it at a 404.
Endpoints
| Endpoint | Status |
|---|---|
POST /v1/chat/completions | Implemented |
GET /v1/models | Implemented, public |
GET /v1/models/{id} | Implemented, public |
POST /v1/embeddings | Not implemented |
POST /v1/completions (legacy) | Not implemented, and not planned. Use chat completions |
POST /v1/images/generations | Not implemented |
POST /v1/audio/transcriptions | Implemented. srt and vtt output are not |
POST /v1/audio/speech | Implemented. Streaming synthesis is not |
POST /v1/moderations | Not implemented |
POST /v1/responses | Not implemented |
| Assistants, threads, files, batches, fine-tuning | Not implemented |
Parameters
| Parameter | Status |
|---|---|
n | n: 1 is accepted and is what we already do. Above 1 is a 400. Ask twice |
logit_bias | Refused with a 400. It would change your output, so accepting and dropping it is not an option we will take |
user | Accepted and ignored. We already attribute usage to your key |
store, metadata, safety_identifier | Accepted and ignored. Bookkeeping fields that change neither output nor bill |
service_tier | Accepted and ignored. There is no priority lane, and nothing here will claim one |
Anything else in the request body is refused with a 400 naming it, before any billable work.
The same applies when a model does not support something you sent. Both carry the code
unsupported_parameter. See Errors.
This page said the opposite until August 2026: that unrecognised fields were passed through to the
provider. Neither was true. They were silently dropped, which is how a customer came to cap their
output with max_completion_tokens, have the field discarded, and be billed for a full-length
reply. A parameter you send is now either acted on or refused by name, and the short list above is
the only set that is quietly accepted, because none of it can change what you get or what you pay.
Metering is unit-agnostic, and speech proved it
Every usage record carries a unit rather than assuming tokens. Today that is token for text,
second for transcription and character for synthesis.
This was built before there was anything but text to meter, on the argument that hardcoding tokens would force a rewrite of the billing path on the day audio shipped. Audio shipped on 31 July 2026 and the pricing function needed no new arithmetic — the same line prices all three units, because the unit changes what the caller counts, not how the counting is priced.