Ingram Cloud

Documentation

Embeddings

Embeddings

POST /v1/embeddings embeds one string or a batch and returns their vectors. It mirrors the OpenAI Embeddings API, so an OpenAI client pointed at the API works unchanged. Use it to build your own search, clustering, or dedup without standing up an OpenAI account of your own.

The call runs on your project's OpenAI model key (bring your own or Ingram-hosted) and is metered like any model op. Nothing is stored — the input text and the vectors are not persisted. This is the raw primitive; for a managed knowledge base with chunking and file search, use vector stores.

Embed text

# Authorization: tenant-admin token (server-side only)
curl https://api.cloud.ingram.tech/v1/embeddings \
  -H "Authorization: Bearer $IC_TOKEN" \
  -H "IC-Api-Version: 2026-05-01" \
  -H "Content-Type: application/json" \
  -d '{ "input": "The quick brown fox." }'

input is a string or an array of strings. model is optional and defaults to text-embedding-3-small; pass any OpenAI embedding model id (e.g. text-embedding-3-large) your key can reach.

{ "input": ["first passage", "second passage"], "model": "text-embedding-3-large" }

Response

The OpenAI list shape — data is index-aligned to your input:

{
  "object": "list",
  "data": [{ "object": "embedding", "index": 0, "embedding": [0.0123, -0.0456] }],
  "model": "text-embedding-3-small",
  "usage": { "prompt_tokens": 5, "total_tokens": 5 }
}

Limits & errors

At most 2048 inputs per request; each is truncated to 32,000 characters. An empty string, an empty list, or a non-string element is rejected with 400 invalid_input. No OpenAI key for your project → 422 model_key_missing; add one in Project settings → Model providers.

Requires the embeddings:write scope — see Auth & tokens.