Skip to main content
If you are building a new LLM integration, start with Responses API. Use the other APIs when you need embeddings, audio, moderation, image generation, or when you need to keep an existing client format.

Comparison

APITypeUse it whenReturns
Responses APIPrimaryYou are building a new LLM app with text generation, streaming, tools, structured outputs, or multimodal inputresponse object with typed output[] items
Embeddings APIPrimaryYou need vectors for retrieval, ranking, clustering, or semantic searchembeddings array
Audio APIPrimaryYou need speech synthesis, transcription, or translationbinary audio or {text} depending on the operation
Moderations APIPrimaryYou need text or image safety classificationmoderation results
Images APIPrimaryYou need direct image generation or image editsimage generation results
Chat Completions APICompatibilityYou already have OpenAI-style messages[] code and want to keep that request formatchat completion
Messages APICompatibilityYou already have Anthropic-style content blocks or agent tooling and want to keep that formatAnthropic message blocks

Quick choices

  1. New text, multimodal, tool, or agent flows: use Responses API.
  2. Retrieval, ranking, or semantic search: use Embeddings API.
  3. TTS, transcription, or translation: use Audio API.
  4. Text or image safety checks: use Moderations API.
  5. Direct image generation or image editing: use Images API.
  6. Existing OpenAI messages[] integration: use Chat Completions API.
  7. Existing Anthropic-style integration: use Messages API.

Decision Shortcuts

Responses API

Start here for new LLM apps and most feature-complete integrations.

Embeddings API

Use this for vector generation and retrieval pipelines.

Audio API

Use this for speech synthesis, transcription, and translation.

Moderations API

Use this for safety checks over text and images.

Compatibility Layers

Use a compatibility API only when keeping the existing client format matters more than starting from the cleanest default. Use them when you already have those clients, SDK abstractions, or agent tools in production. If you are starting from scratch, Responses API is usually the simpler choice.

Need Exact Fields?

Use the generated API Reference for endpoint contracts, request fields, and response schemas.