> ## Documentation Index
> Fetch the complete documentation index at: https://docs.conare.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Embeddings API

> Stateless POST /api/v1/embeddings endpoint returning unit-normalized document vectors from the same model Conare retrieves with, with model pinning.

```bash theme={null}
curl https://api.conare.ai/api/v1/embeddings \
  -H "Authorization: Bearer $CONARE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": [
      "User prefers smaller islands, wants to avoid crowds.",
      "ASA 104 certified, comfortable with bareboat charters."
    ]
  }'
```

```json theme={null}
{
  "success": true,
  "model": "...",
  "dims": 1024,
  "embeddings": [[0.0132, -0.0087, "..."], ["..."]],
  "usage": { "totalChars": 98, "approxTokens": 25 }
}
```

## Semantics

* **Stateless.** Nothing is stored, and this is the one route with no `endUserId` — no end user is involved.
* **Limits.** Up to 96 inputs per call, each at most 8,192 characters.
* **Deterministic ordering.** Vectors are unit-normalized and returned in input order.
* **Auth.** A `cint_` Integration key with `memory:read`.

## Model pinning

`model` is a **pin, not a selector**. The endpoint serves exactly one model, reported in every response. Pinning any other name returns `400 model_not_served` — vectors from a different model are never silently substituted. Pin the model whenever your vectors must stay compatible with an existing index; an unpinned call always gets the currently served model.

```json theme={null}
{ "input": ["..."], "model": "the-model-name-from-a-previous-response" }
```

## Metering

Usage is metered as embed tokens (\~4 characters per token) and appears in your [platform usage view](https://conare.ai/dashboard).

Full request/response schema: [API Reference](/api-reference).
