Getting Started
Provider Keys
Supported embedding providers, key validation, and dimension locking.
Supported Providers
| Provider | Embeddings | LLM | Default Model |
|---|---|---|---|
| OpenAI | Yes | Yes | text-embedding-3-small |
| Google Gemini | Yes | Yes | gemini-embedding-001 |
| Cohere | Yes | No | embed-v4.0 |
| Voyage AI | Yes | No | voyage-3 |
| Azure OpenAI | Yes | Yes | text-embedding-3-small |
| Mistral | Yes (256d fixed) | Yes | mistral-embed |
| Ollama | Yes | Yes | nomic-embed-text |
| Qwen | Yes | No | Qwen3-Embedding-8B |
Save a Provider Key
POST https://api.metamemory.tech/v1/account/keys
{
"provider": "gemini",
"apiKey": "AIzaSy...",
"dimensions": 1024 // optional, locks on first save
}The key is validated before saving — a test embedding call is made. If it fails, you get a clear error.
Dimension Locking
Your embedding dimensions are locked on the first provider key save. All subsequent providers must produce the same dimensions. This ensures vector search compatibility across providers.
Recommended: Use 1024 dimensions — supported by OpenAI, Gemini, Cohere, and Voyage.
To reset dimensions (deletes all memories):
DELETE https://api.metamemory.tech/v1/account/dimensionsDefault Provider
The first key you save becomes the default. To change it:
PUT https://api.metamemory.tech/v1/account/keys/cohere/defaultThe default provider is used when no X-Provider-Key header is sent.
Header Passthrough
Override the stored key per-request using headers:
curl -X POST https://api.metamemory.tech/v1/memories \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Provider-Key: sk-your-openai-key" \
-H "X-Provider: openai" \
-H "X-Embedding-Model: text-embedding-3-large" \
-H "Content-Type: application/json" \
-d '{"content": "...", "userId": "..."}'