Embeddings
POST /v1/embeddings follows OpenAI’s shape. Embedding models are always explicit: there is no auto for embeddings. The key needs the embeddings scope (keys have it by default).
For the exact shape of every request and response, with curl, Python and Node examples, see the API reference.
Models
Section titled “Models”| Model | Vendor | Max input tokens | Price (USD per million input tokens) |
|---|---|---|---|
text-embedding-3-small |
openai | 8192 | 0.02 |
text-embedding-3-large |
openai | 8192 | 0.13 |
gemini-embedding-001 |
8192 | 0.20 | |
mistral-embed-2312 |
mistral | 8000 | 0.10 |
mistral-embed-2312 returns 1,024 dimensions and is processed by Mistral AI’s global API, which does not guarantee a location. Anthropic has no embedding models, and Together AI offers none on its serverless API. Prices are provider list prices; the plan fee applies on top (see Billing).
Request
Section titled “Request”curl https://api.zabio.ai/v1/embeddings \ -H "Authorization: Bearer insert your zabio.ai key here" \ -H "Content-Type: application/json" \ -d '{"model": "text-embedding-3-small", "input": ["first text", "second text"]}'| Field | Notes |
|---|---|
model |
required; one of the ids above |
input |
a string or an array of 1 to 2048 strings |
dimensions |
optional; passed to the vendor |
encoding_format |
float (default) or base64 (little endian float32) |
user |
accepted |
Response
Section titled “Response”{ "object": "list", "data": [{"object": "embedding", "index": 0, "embedding": [0.0123, ...]}], "model": "text-embedding-3-small", "usage": {"prompt_tokens": 8, "total_tokens": 8}, "zabio": {"vendor": "openai", "model_served": "text-embedding-3-small", "cost_micros": 0, "tokens_estimated": false}}zabio.tokens_estimated is true for Google models, which do not report token counts; Zabio estimates them from the input length and bills on the estimate.
Python
Section titled “Python”from openai import OpenAI
client = OpenAI(base_url="https://api.zabio.ai/v1", api_key="insert your zabio.ai key here")res = client.embeddings.create(model="text-embedding-3-small", input="hello world")print(len(res.data[0].embedding))Limits and errors
Section titled “Limits and errors”The key’s requests per minute and tokens per minute limits apply, with the same x-ratelimit-* headers as chat completions. An unknown or non embedding model returns 404 model_not_found. With no credits left the call is refused with 402 insufficient_credits, unless your organization has its own key for that vendor. See Errors.