> ## Documentation Index
> Fetch the complete documentation index at: https://docs.naga.ac/llms.txt
> Use this file to discover all available pages before exploring further.

# Choose an API

> Decide whether to use Responses, Embeddings, Audio, Moderations, Images, or one of the compatibility layers.

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

| API                    | Type          | Use it when                                                                                                    | Returns                                             |
| ---------------------- | ------------- | -------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- |
| `Responses API`        | Primary       | You are building a new LLM app with text generation, streaming, tools, structured outputs, or multimodal input | `response` object with typed `output[]` items       |
| `Embeddings API`       | Primary       | You need vectors for retrieval, ranking, clustering, or semantic search                                        | embeddings array                                    |
| `Audio API`            | Primary       | You need speech synthesis, transcription, or translation                                                       | binary audio or `{text}` depending on the operation |
| `Moderations API`      | Primary       | You need text or image safety classification                                                                   | moderation results                                  |
| `Images API`           | Primary       | You need direct image generation or image edits                                                                | image generation results                            |
| `Chat Completions API` | Compatibility | You already have OpenAI-style `messages[]` code and want to keep that request format                           | chat completion                                     |
| `Messages API`         | Compatibility | You already have Anthropic-style content blocks or agent tooling and want to keep that format                  | Anthropic message blocks                            |

## Quick choices

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

## Decision Shortcuts

<CardGroup cols={2}>
  <Card title="Responses API" icon="bolt" href="/api/responses">
    Start here for new LLM apps and most feature-complete integrations.
  </Card>

  <Card title="Embeddings API" icon="share-nodes" href="/api/embeddings">
    Use this for vector generation and retrieval pipelines.
  </Card>

  <Card title="Audio API" icon="microphone" href="/api/audio">
    Use this for speech synthesis, transcription, and translation.
  </Card>

  <Card title="Moderations API" icon="shield" href="/api/moderations">
    Use this for safety checks over text and images.
  </Card>
</CardGroup>

## Compatibility Layers

Use a compatibility API only when keeping the existing client format matters more than starting from the cleanest default.

* [Chat Completions API](/api/chat-completions) keeps the OpenAI chat request format.
* [Messages API](/api/messages) keeps the Anthropic Messages request format.

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](/api-reference/overview) for endpoint contracts, request fields, and response schemas.

## Reference Links

* [Create response](/api-reference/endpoints/responses/create)
* [Create embeddings](/api-reference/endpoints/embeddings/create)
* [Create speech](/api-reference/endpoints/audio/speech)
* [Create moderation](/api-reference/endpoints/moderations/create)
* [Generate images](/api-reference/endpoints/images/generations)
* [Create chat completion](/api-reference/endpoints/chat/completions)
* [Create message](/api-reference/endpoints/messages/create)
