Shorter model names
You can drop the everyais/ prefix: claude-sonnet-5-5 resolves to everyais/claude-sonnet-5-5, and the dotted gemini-3.8-flash to everyais/gemini-3-8-flash.
Registered provider model names also work. Accepted names are in aliases in GET /v1/models.
A short name works only if it matches exactly one available model; otherwise the API returns 404. Use full IDs in config and code, since short names can become ambiguous as models are added.
See what a request cost
Non-streaming responses include an x-everyais-cost-usd header with the price in USD.
raw = client.chat.completions.with_raw_response.create(
model="everyais/gemini-3-8-flash",
messages=[{"role": "user", "content": "Hello!"}],
)
print(raw.headers.get("x-everyais-cost-usd"))
response = raw.parse()Retry the same request safely
If the connection drops before you get a response, resending can run and bill the work twice. Send an Idempotency-Key header and reuse it when you retry.
import uuid
key = str(uuid.uuid4()) # reuse this value when you retry
response = client.chat.completions.create(
model="everyais/gemini-3-8-flash",
messages=[{"role": "user", "content": "Hello!"}],
extra_headers={"Idempotency-Key": key},
)- Works on Chat, Messages, Responses, image generation and image editing. Not on video submission.
- A retry matches only with the same API key, endpoint and body. Different JSON whitespace or field order is a different body.
- Keys can be up to 255 characters. Records are kept for 24 hours.
- Successful JSON responses up to 300 KiB are replayed with an
Idempotent-Replayed: trueheader. - Streams and large responses are not replayed. Resending the same key returns 409, and the request doesn't run again.
- Failed responses are not stored, so you can retry them with the same key.
- In rare cases a request may run twice.
See errors and retries for each 409 code.
Per-endpoint limits
| Item | Limit |
|---|---|
n on /v1/chat/completions | Only 1. 2 or more returns 400 |
n on /v1/images/generations | 1–10 |
n on /v1/images/edits | 1–4 |
Body size limits are in Base URL, and per-key spend limits and scopes in authentication. Cache token counts are covered in prompt caching.
Embeddings (/v1/embeddings) and audio (/v1/audio/*) are not available.