Embeddings
Text embeddings through the same governed, audited API as chat — one OpenAI-compatible endpoint across multiple providers, metered per input token.
Embeddings run through the same gateway as chat: same API keys, same spend caps, same audit log, same governance, same credit balance. Point any OpenAI SDK at https://api.conduix.ai/v1 and call /v1/embeddings as usual. The meter is input tokens only — there is no output to bill.
Your key must allow the embedding modality
API keys carry a modality allow-list. A chat-only key is rejected on the embeddings endpoint — deliberately, so adding embeddings to your account never silently widens what an existing key can reach. Create an embedding-scoped key in the dashboard.
Available embedding models
- text-embedding-3-large
- OpenAI text-embedding-3-large — Text embeddings, 3072-dim, up to 8,192 input tokens.
- text-embedding-3-small
- OpenAI text-embedding-3-small — Text embeddings, 1536-dim, up to 8,192 input tokens.
- mistral-embed
- Mistral Embed — Text embeddings, 1024-dim, up to 8,192 input tokens.
- codestral-embed
- Mistral Codestral Embed — Code embeddings, 1536-dim, up to 8,192 input tokens.
- fireworks/qwen3-embedding-8b
- Fireworks Qwen3 Embedding 8B — Text embeddings, 4096-dim, up to 32,000 input tokens.
- nomic-ai/nomic-embed-text-v1.5
- Fireworks Nomic Embed Text v1.5 — Text embeddings, 768-dim, up to 8,192 input tokens.
Two aliases pick a sensible default for you: embedding-best (highest quality) and embedding-fast (cost-efficient). Each alias resolves to a single, stable model — embeddings are not silently substituted across models, because two models produce incompatible vector spaces and a swapped model would corrupt an index you already built.
POST /v1/embeddings
OpenAI-compatible request and response shape.
- model
- Required. An embedding catalog id or an alias (embedding-best / embedding-fast).
- input
- Required. A string, or an array of strings (up to 2048). Each string is embedded independently; the response preserves order.
- dimensions
- Optional. Request a reduced output dimension on models that support it.
- encoding_format
- Optional. "float" (default) or "base64".
- user
- Optional. An opaque end-user identifier.
The response is { object: "list", data: [{ object: "embedding", index, embedding }], model, usage }, where usage.prompt_tokens is what you are billed on. One vector is returned per input, in the order submitted.
curl https://api.conduix.ai/v1/embeddings \
-H "Authorization: Bearer cx_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"embedding-fast","input":"The quick brown fox"}'Errors
Embeddings use the same typed error envelope as the rest of the API. The ones specific to this surface: a key without the embedding modality, a model your key or plan is not allowed to use, a spend cap that would be crossed by the request, and — for organisations with PHI handling enabled — a hard refusal, because embeddings are outside the redaction boundary.

