Create Embeddings
POST
/v1/embeddingsGenerate vector embeddings. Same routing pattern as chat — prefix the model ID with the provider. Falls back to hash-based pseudo-embeddings if no provider key is configured.
Supported Embedding Models
| Provider | Model ID | Dimensions | Requires Key |
|---|---|---|---|
| OpenAI | openai/text-embedding-3-small | 1536 | OPENAI_API_KEY |
| OpenAI | openai/text-embedding-3-large | 3072 | OPENAI_API_KEY |
| Gemini | gemini/text-embedding-004 | 768 | GEMINI_API_KEY |
| HuggingFace | huggingface/sentence-transformers/all-MiniLM-L6-v2 | 384 | HUGGINGFACE_API_KEY |
| HuggingFace | huggingface/sentence-transformers/all-mpnet-base-v2 | 768 | HUGGINGFACE_API_KEY |
Request Body
| Parameter | Type | Description |
|---|---|---|
inputRequired | string | string[] | Text or array of texts to embed (max 100 texts, 8192 chars each) |
model | stringdefault: huggingface/sentence-transformers/all-MiniLM-L6-v2 | Embedding model ID. Prefix determines provider. |
Example
bash
curl -X POST https://api.aivorylabs.in/v1/embeddings \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": "What is the meaning of life?",
"model": "openai/text-embedding-3-small"
}'Response
Returns an OpenAI-compatible response with embedding vectors and token usage.
json
{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": [0.0023, -0.0198, ...]
}
],
"model": "huggingface/sentence-transformers/all-MiniLM-L6-v2",
"usage": {
"prompt_tokens": 7,
"total_tokens": 7
}
}