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.

Embedding input is not redacted. Conduix's PII redaction rewrites text before it reaches a provider — but redacting the input to an embedding would change the vector and silently corrupt your retrieval results, so embeddings deliberately do not redact. Your organisation's PII policy is still enforced, and PHI-flagged organisations are refused. Don't send text you need redacted to the embeddings endpoint. See Governance.

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.