#1 Omev AI | Quickstart documents /v1/models and /v1/chat/completions, with model, messages, temperature, max_tokens and stream. | Quickstart covers chat completions and model listing; embeddings are not documented there, and image products need separate access. |
#2 Groq | Groq describes itself as mostly compatible with OpenAI's client libraries, and supports text and image inputs through the Responses API. | logprobs, logit_bias, top_logprobs and messages[].name are unsupported and return a 400 error if supplied, rather than being silently ignored; N must be 1 if supplied; a temperature of 0 is converted to 1e-8; audio vtt and srt formats are unsupported. |
#3 Together AI | Together states its API is compatible with the OpenAI REST API and SDKs across chat, completions, vision, image generation, text-to-speech, and embeddings, including streaming, function calling, structured outputs, and speech-to-text. | Assistants, Threads and Runs are not implemented — build the agent loop yourself with function calling. The OpenAI-shaped Batch and Files APIs, moderations.create, and OpenAI-format fine-tuning are not supported. Model IDs are namespaced, such as openai/gpt-oss-20b, and OpenAI model strings like gpt-4o or text-embedding-3-large return a 404. |
#4 Fireworks AI | Fireworks serves the OpenAI Completions and Chat Completions APIs, and returns usage stats for both streaming and non-streaming responses, which OpenAI does not do for streaming. | Compatibility is centred on completions and chat completions. When a request exceeds the context window, Fireworks truncates by default rather than returning an error, configurable through context_length_exceeded_behavior. |
#5 DeepSeek | DeepSeek states its API uses a format compatible with OpenAI and Anthropic, so the OpenAI SDK or OpenAI-compatible software works after a configuration change. The OpenAI base URL is https://api.deepseek.com and the Anthropic-format one is https://api.deepseek.com/anthropic. The catalogue lists deepseek-v4-flash, deepseek-v4-pro, and deepseek-v4-flash-vision-exp. | DeepSeek's own example sets base_url without a /v1 suffix, and the model catalogue is DeepSeek-specific, so model strings never carry over unchanged. |
#6 Google Gemini | The compatibility layer documents chat completions, embeddings, image generation, video generation, the Batch API, and models listing and retrieval through the OpenAI libraries. | Google states support for the OpenAI libraries is still in beta while it extends feature support. Unlisted parameters are silently ignored by the compatibility layer, and batch file upload and download are not supported — use the genai client for those. |
#7 Cerebras Inference | Cerebras says it designed its API to be mostly compatible with OpenAI's client libraries, and its quickstart uses the OpenAI client against gpt-oss-120b. | json_object is not compatible with streaming — stream must be set to false. service_tier priority is limited to dedicated endpoints, and queue_threshold and prompt_cache_key need private preview or account-level enablement. |
#8 OpenRouter | OpenRouter documents the OpenAI SDK pointed at OpenRouter as a drop-in replacement, giving access to hundreds of models through a single API endpoint, and accepts the usual OpenAI-style parameters including tools, tool_choice, response_format, and reasoning_effort. | Actual parameter support depends on the upstream model — the docs tell you to check the model's provider section to confirm which parameters are supported — and a sampling parameter you omit is omitted upstream rather than defaulted. |
#9 xAI (Grok) | xAI's reference shows the standard OpenAI client working against its base URL, alongside Vercel AI SDK examples. | xAI publishes working OpenAI SDK examples rather than a formal blanket compatibility statement, and layers on non-standard fields — it describes its reasoning_effort as a non-standard field meant to ease user experience. |
#10 Anthropic Claude | Anthropic ships an OpenAI SDK compatibility layer: change the base URL, use a Claude API key and a Claude model name, and chat completions work, with tools, streaming, vision inputs, and thinking available through extra_body. | Anthropic states the layer is primarily intended to test and compare model capabilities and is not considered a long-term or production-ready solution for most use cases. response_format, seed, logprobs, logit_bias, presence_penalty, frequency_penalty and reasoning_effort are ignored, strict function calling is ignored, audio input is stripped, prompt caching is unsupported, n must be exactly 1, and system and developer messages are hoisted into a single leading system message. |
#11 vLLM (self-hosted) | vLLM implements OpenAI-compatible Completions, Chat Completions, Chat Completions Batch, Responses, Embeddings, Transcriptions and Translations endpoints. vllm serve starts at http://localhost:8000 and its own examples use http://localhost:8000/v1 as the base URL. | The suffix parameter is not supported on completions, the user parameter is ignored on chat completions, and parallel_tool_calls behaviour depends on the model. |
#12 Ollama | Ollama exposes /v1/chat/completions with streaming, JSON mode, vision, tools and reasoning control, plus /v1/completions, /v1/models, /v1/embeddings, and a non-stateful /v1/responses added in v0.13.3. | Image URLs are not supported — base64 encoded images only. Tool choice is unsupported, logprobs are unavailable, /v1/responses has no previous_response_id or conversation support, and the /v1/completions prompt field currently only accepts a string. |