Voyage 4 API
Voyage AI general-purpose multilingual embeddings for retrieval, 1024 dimensions by default.
Voyage 4 is a text embedding model from Voyage AI, available on OttoPort's OpenAI-compatible API as the model ID voyage-4 at $0.066 per 1M input tokens as of 2026-10-14.
Provider
Voyage AI
Price
$0.066 per 1M input tokens
Model ID
voyage-4
Type
text embedding model
Voyage 4 API pricing
What OttoPort bills for Voyage 4, and what that works out to per unit. Rates are read from the same catalog the gateway meters against, and were current on 2026-10-14.
| Per 1M tokens | $0.066 | input text; the vectors are not billed |
|---|---|---|
| 10,000 passages | $0.33 | of about 500 tokens each, embedded once |
| Tokens per $1 | 15,151,515 |
No subscription and no minimum — OttoPort bills prepaid credits against usage. See the full rate card.
Call Voyage 4 in three lines
Send "model": "voyage-4" to POST https://ottoport.ai/api/v1/embeddings with an OttoPort key. No Voyage AI account, no waitlist, no separate SDK.
curl https://ottoport.ai/api/v1/embeddings \
-H "Authorization: Bearer $OTTOPORT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "voyage-4",
"input": ["How do refunds work?", "Refunds are issued within 5 days."],
"dimensions": 1024
}'from openai import OpenAI
client = OpenAI(
api_key="op-...", # your OttoPort key
base_url="https://ottoport.ai/api/v1", # the only line that changes
)
resp = client.embeddings.create(
model="voyage-4",
input=["How do refunds work?", "Refunds are issued within 5 days."],
dimensions=1024,
)
vectors = [item.embedding for item in resp.data]import OpenAI from "openai";
const client = new OpenAI({
apiKey: "op-...", // your OttoPort key
baseURL: "https://ottoport.ai/api/v1", // the only line that changes
});
const resp = await client.embeddings.create({
model: "voyage-4",
input: ["How do refunds work?", "Refunds are issued within 5 days."],
dimensions: 1024,
});
const vectors = resp.data.map((item) => item.embedding);Before you start
- 1. Create a key at /api-keys.
- 2. Top up credits — the smallest pack is $25.
- 3. Paste the request. It returns on the same request.
Full reference at /docs, or drive it from an agent with the MCP server and CLI.
Request parameters
The body POST https://ottoport.ai/api/v1/embeddings accepts for Voyage 4.
| Field | Type | Required | Notes |
|---|---|---|---|
| model | string | Yes | Always voyage-4 for Voyage 4. |
| input | string | array | Yes | One text, or an array of up to 256, each non-empty; 600,000 characters in all. One vector comes back per text, in order. Input tokens are the billed unit. |
| dimensions | integer | No | Vector length, up to 2048; default 1024. Shorter vectors are cheaper to store and search. |
| encoding_format | string | No | `float` (default) or `base64`, little-endian float32. |
Voyage 4 direct vs through OttoPort
Voyage 4 is the same model either way — what changes is how many accounts, keys, and integrations you carry to reach it.
| Voyage AI direct | Via OttoPort | |
|---|---|---|
| Accounts and keys | A Voyage AI account, plus one more for every other model you add | One OttoPort account and one key for the whole catalog |
| Request shape | Voyage AI's own SDK and response format | OpenAI-compatible — point baseURL at OttoPort and change the model string |
| Switching models | A new integration per provider | Replace voyage-4 with any other model ID in the catalog |
| Billing | A separate invoice and contract per provider | Prepaid credits, no subscription, one usage ledger |
| Provider outages | Your call fails | Configured backup routes are tried in order on provider failure |
Embed queries and documents with the same model.
Batch up to 256 texts in one request.
Pick `dimensions` once and keep it.
Voyage 4 API questions
Cost, keys, and model IDs for Voyage 4 on OttoPort.
How much does the Voyage 4 API cost?
On OttoPort, Voyage 4 costs $0.066 per 1M input tokens as of 2026-10-14. For scale, 10,000 passages: $0.33. Billing is prepaid usage with no subscription and no minimum, and the current rate is always published at ottoport.ai/pricing.
How do I get a Voyage 4 API key?
You do not need a Voyage AI key. Create an OttoPort account, generate a key at ottoport.ai/api-keys, and send it as "Authorization: Bearer <key>" to POST https://ottoport.ai/api/v1/embeddings with "model": "voyage-4". The same key reaches every other model in the catalog.
What is the model ID for Voyage 4?
The OttoPort model ID for Voyage 4 is voyage-4. Pass it as the model field on POST https://ottoport.ai/api/v1/embeddings, or list it programmatically from GET https://ottoport.ai/api/v1/models.
Can I call Voyage 4 with the OpenAI SDK?
Yes. Set the OpenAI SDK's base URL to https://ottoport.ai/api/v1, use an OttoPort API key, and pass voyage-4 as the model. Embeddings follow the OpenAI embeddings shape, so existing code works after changing two lines.
How many dimensions does Voyage 4 return?
1,024 by default. Send dimensions to get a shorter vector, up to 2,048; it is billed the same, by input tokens. Embed every text you compare with the same model and the same dimensions.
Do I need a Voyage AI account to use Voyage 4?
No. OttoPort connects to Voyage AI on your behalf, so one OttoPort account covers Voyage 4 and every other model in the catalog — no per-provider contracts, keys, or invoices.
Other text embedding models on the same API
Same endpoint, same key — swapping model is a one-string change from voyage-4.
Voyage 4 Lite API
Voyage AI
$0.022 per 1M input tokens
Qwen3 Embedding 8B API
Qwen
$0.011 per 1M input tokens
BGE-M3 API
BAAI
$0.011 per 1M input tokens
Text Embedding 3 Small API
OpenAI
$0.022 per 1M input tokens
Text Embedding 3 Large API
OpenAI
$0.144 per 1M input tokens
Browse the full catalog — every model with its provider and per-unit price.