March 30, 20264 min readGuide

Embeddings, images and audio through one endpoint

Most teams don't use one model. They use a chat model for reasoning, an embedding model for search, an image model for thumbnails, and an audio model for transcription. The painful part is rarely the models themselves — it's stitching together four SDKs, four billing dashboards, four sets of keys, and four slightly different request formats.

AnyModel collapses that. Everything goes through one OpenAI-compatible endpoint: https://anymodel.org/v1, with one API key. Switching from a chat model to an embedding model to an image model means changing the model id in your request — nothing else in your stack moves.

One base URL, many modalities

Because the surface is the OpenAI API spec, the routes you already know keep working. You point your existing OpenAI client at the AnyModel base URL and your key, then call the relevant path per modality.

Task Endpoint path What you send
Text / reasoning /v1/chat/completions messages + model
Embeddings /v1/embeddings input text + model
Image generation /v1/images/generations prompt + model
Audio transcription /v1/audio/transcriptions audio file + model

The key idea: the same authentication, the same base URL, the same JSON conventions. You learn the format once and reuse it across GPT, Claude, Gemini, DeepSeek, GLM, Kimi, Qwen and Grok. See the full list on /models.

A concrete embeddings example

Here's an embeddings call. Note that the only AnyModel-specific bits are the base URL and your key — the rest is plain OpenAI shape.

curl https://anymodel.org/v1/embeddings \
  -H "Authorization: Bearer $ANYMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "text-embedding-3-small",
    "input": "Vectorize this sentence for semantic search."
  }'

Want to compare a different provider's embedding quality or pricing for the same job? Change the model value and send the identical request. Nothing in your retrieval pipeline, vector store, or chunking logic has to change.

Why this matters in practice

Fewer moving parts

A typical RAG app needs embeddings for indexing and a chat model for answering. Through one endpoint, both share a key, a base URL, and a billing meter. When you later add image generation for report covers or audio transcription for meeting notes, you add a path — not a new vendor relationship.

Real model switching, not lock-in

Model choice is a model string, so you can A/B two embedding models or swap a chat model overnight without a migration. The /compare page helps you weigh options side by side before you commit a single line of code.

Honest scope

One caveat worth stating plainly: not every provider exposes every modality, and model ids differ. AnyModel routes your request to the right backend, but the underlying model still has to support the task. Check /models for what's available per modality rather than assuming parity across all eight providers.

Getting started in one line

If you use a supported CLI — codex, claude, opencode, or hermes — wire it up with a single command:

bash <(curl -fsSL "https://anymodel.org/i?tool=codex") <YOUR_API_KEY>

Use tool=claude for Claude Code. For other clients — Cursor, Windsurf, Zed, Cline, Aider, Continue, or Gemini CLI — do a manual OpenAI-compatible setup: base URL https://anymodel.org/v1 plus your key.

Free to start, private if you want

You begin with 1,000,000 tokens free on signup, and a total of 6,000,000 if you link Telegram — no credit card required. After that it's pay-per-token: no subscription, no minimums. You only pay for the embeddings, images, audio, and chat you actually run.

If your data is sensitive, Ghost Mode offers opt-in zero-retention API keys: we don't store prompts or responses on our side, only a token counter for billing. To be clear, this isn't "100% privacy" — the model provider still receives your prompt to process it — but it removes our copy from the equation.

For more walkthroughs and patterns, browse the blog.

Try it

Stop maintaining four integrations for four modalities. Point your OpenAI client at one base URL, keep one key, and switch models by editing a string. Create a free account and run your first embeddings, image, and audio calls through the same endpoint today.

Read next