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

EndpointStatus
POST /v1/chat/completionsImplemented
GET /v1/modelsImplemented, public
GET /v1/models/{id}Implemented, public
POST /v1/embeddingsNot implemented
POST /v1/completions (legacy)Not implemented, and not planned. Use chat completions
POST /v1/images/generationsNot implemented
POST /v1/audio/transcriptionsImplemented. srt and vtt output are not
POST /v1/audio/speechImplemented. Streaming synthesis is not
POST /v1/moderationsNot implemented
POST /v1/responsesNot implemented
Assistants, threads, files, batches, fine-tuningNot implemented

Parameters

ParameterStatus
nn: 1 is accepted and is what we already do. Above 1 is a 400. Ask twice
logit_biasRefused with a 400. It would change your output, so accepting and dropping it is not an option we will take
userAccepted and ignored. We already attribute usage to your key
store, metadata, safety_identifierAccepted and ignored. Bookkeeping fields that change neither output nor bill
service_tierAccepted 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.