Embeddings
POST
/v1/embeddingsTurn text into vectors. Uses embedding-modality models (modality: "embedding" in /v1/models).
Request
bash
curl "https://api.smartapihub.com/v1/embeddings" \
-H "Authorization: Bearer $LLM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/text-embedding-3-small",
"input": ["The quick brown fox", "jumps over the lazy dog"]
}'| Field | Type | Notes |
|---|---|---|
model | string, required | An embedding model id. |
input | string or string[] (≤ 2048), required | Texts to embed. |
encoding_format | float | base64 | Default float. |
dimensions | integer ≥ 1 | Output dimensionality where the model supports it. |
user | string | End-user identifier. |
routing | object | Routing override. |
Response
json
{
"object": "list",
"model": "openai/text-embedding-3-small",
"provider": "openai",
"data": [
{ "object": "embedding", "index": 0, "embedding": [0.0123, -0.0456, "…"] },
{ "object": "embedding", "index": 1, "embedding": [0.0789, 0.0012, "…"] }
],
"usage": { "prompt_tokens": 12, "total_tokens": 12, "x_llm_cost_micro": 1 }
}Embeddings are priced by input_per_mtok (see Pricing). Streaming does not apply. The usual response headers are present.
SDK usage
typescript
const { data, usage } = await client.embeddings.create({
model: 'openai/text-embedding-3-small',
input: 'The quick brown fox',
});
console.log(data[0].embedding.length, usage);python
res = client.embeddings.create(model="openai/text-embedding-3-small", input="The quick brown fox")
print(len(res.data[0].embedding), res.usage)