Docs
Veil API speaks the OpenAI, Anthropic and Gemini formats, so your client works unchanged. Change the base URL and the key.
Three steps
- Create a key in the console. Open the console
- Point your client at the base URL for its format, below.
- Use a Veil model id, like anthropic/claude-haiku-5-5.
| Base URL | For |
|---|---|
https://api.veil.ir/v1 | OpenAI clients (Chat Completions, Responses, embeddings) |
https://api.veil.ir | Anthropic clients (Messages) |
https://api.veil.ir | Google GenAI clients (Gemini) |
Send the key the way your client already does: Authorization: Bearer, x-api-key, or x-goog-api-key.
First request
curl https://api.veil.ir/v1/chat/completions \
-H "Authorization: Bearer $VEIL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "anthropic/claude-haiku-5-5", "messages": [{"role": "user", "content": "Hello"}]}'Model ids
Every model has one Veil id, maker/model. Any client can call any model: Veil translates between formats where the two differ.
Fallbacks
List other models in models, and Veil tries them in order if the first has no provider available. You're billed only for the model that answered.
{"model": "anthropic/claude-haiku-5-5", "models": ["google/gemini-3.5-flash-lite"], "messages": [...]}