---
title: "Create embeddings"
method: POST
path: "/embeddings"
---

# Create embeddings

`POST /embeddings`

## Request

- Base URL: `https://www.ninjachat.ai/api/v1`
- URL: `https://www.ninjachat.ai/api/v1/embeddings`
- Auth: HTTP bearer

Exact-model text embeddings. OpenAI text-embedding-3-small: $0.02 per million input tokens. Voyage voyage-4-large: $0.12 per million. Charges round up to the wallet's $0.0001 precision. No cross-model fallback or input truncation by default.

## Headers

- `Idempotency-Key` string

## Request body

- EmbeddingsRequest
  - `model` 'text-embedding-3-small' | 'voyage-4-large', required
  - `input` union, required
    - string
    - string[]
    - integer[]
    - array[]
      - integer[]
  - `dimensions` integer
  - `encoding_format` 'float' | 'base64'
  - `input_type` 'query' | 'document'
  - `truncation` boolean
  - `user` string

## Response `200`

Ordered embeddings and metered token usage.

- EmbeddingsResponse
  - `object` 'list', required
  - `model` string, required
  - `data` object[], required
    - `object` 'embedding', required
    - `index` integer, required
    - `embedding` union, required
      - number[]
      - string
  - `usage` object, required
    - `prompt_tokens` integer, required
    - `total_tokens` integer, required
  - `cost_usd` number, required
  - `request_id` string, required

## Other responses

- `400`: Invalid or unsupported request parameter.
- `401`: Missing or invalid API key.
- `402`: Insufficient balance or project spend limit reached.
- `429`: Rate limit exceeded.
- `500`: Gateway error.

---

[API](https://skmtc.dev/ninjachat/apis/ninjachat-api.md) · [All operations](https://skmtc.dev/ninjachat/apis/ninjachat-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ninjachat/apis/ninjachat-api/revisions/fa7dfcbdcb03?raw)
