Cohere API Not Working?
Cohere API 401, deprecated domain error (.ai → .com), outdated model IDs, trial key rate limit, EU endpoint confusion, or Embed/Rerank failing? Check live status and fix it fast.
Cohere — live status
Updated every 5 minutes. Full history at prismix.dev/service/cohere.
What's wrong? Diagnose fast
API 401 / deprecated domain
Old domain api.cohere.ai is deprecated. Use api.cohere.com (not .ai). Header: Authorization: Bearer YOUR_KEY. Python SDK: pip install cohere --upgrade, then cohere.ClientV2(api_key="YOUR_KEY"). Check your key at dashboard.cohere.com → API Keys.
Model not found (404)
Deprecated: command-light, command-xlarge, command-nightly. Use: command-r-plus (best quality), command-r (balanced), command-r-plus-08-2024 (frozen version). For embed: embed-english-v3.0 or embed-multilingual-v3.0. For rerank: rerank-english-v3.0.
Rate limit 429 on trial key
Trial keys: 100 RPM, 1,000 calls/month, 1GB embed throughput. If hitting 429 on trial: implement exponential backoff (retry 1-5s) or upgrade at dashboard.cohere.com. Trial key vs production key shown in dashboard under API Keys.
EU data residency required
Use https://api.eu.cohere.com for EU data residency. SDK: cohere.Client(api_key="YOUR_KEY", base_url="https://api.eu.cohere.com"). The EU endpoint has identical API surface — just change the domain. Do NOT use api.cohere.com when GDPR compliance requires EU routing.
Embed API returning wrong dimensions
embed-english-v3.0 returns 1024-dimensional vectors. embed-english-light-v3.0 returns 384 dimensions. embed-multilingual-v3.0 returns 1024. If your index was built with a different dimension, rebuild it. Also: you must pass input_type (search_document or search_query) — missing it returns 400.
Rerank API not improving results
Rerank works on top of initial retrieval — it is NOT a standalone search. Pass your query + top-50 to 100 candidate documents. If you pass fewer than 5 documents, reranking has little effect. Model: rerank-english-v3.0 (English only) or rerank-multilingual-v3.0 (100+ languages). Return top_n from the result (default = all documents, reranked).
Cohere API quick reference (v2 SDK)
Python SDK v2 — chat
import cohere
co = cohere.ClientV2(api_key="YOUR_KEY") # use ClientV2 for v2 API
response = co.chat(
model="command-r-plus",
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.message.content[0].text) Embed API (with required input_type)
response = co.embed(
texts=["Hello world", "Cohere embeddings"],
model="embed-english-v3.0",
input_type="search_document", # REQUIRED — missing this = 400 error
embedding_types=["float"],
)
print(len(response.embeddings.float[0])) # 1024 Rerank API
response = co.rerank(
model="rerank-english-v3.0",
query="What is RAG?",
documents=["doc1 text...", "doc2 text...", ...], # pass 20-100 candidates
top_n=5, # return top 5 reranked
)
for r in response.results:
print(r.index, r.relevance_score) Current Cohere model IDs
| Model ID | Type | Context / Dim |
|---|---|---|
| command-r-plus | Chat | 128K tokens |
| command-r | Chat | 128K tokens |
| command-r-plus-08-2024 | Chat (frozen) | 128K tokens |
| embed-english-v3.0 | Embed | 1024 dim |
| embed-multilingual-v3.0 | Embed | 1024 dim, 100+ lang |
| embed-english-light-v3.0 | Embed (fast) | 384 dim |
| rerank-english-v3.0 | Rerank | English only |
| rerank-multilingual-v3.0 | Rerank | 100+ languages |
Step-by-step fix
- 1
Check live Cohere status
Visit prismix.dev/service/cohere. Also check status.cohere.com.
- 2
Fix 401 and deprecated domain
Update base URL from
api.cohere.aitoapi.cohere.com. Upgrade SDK:pip install cohere --upgrade. Switch tocohere.ClientV2(api_key="YOUR_KEY"). Header:Authorization: Bearer YOUR_KEY. - 3
Fix deprecated model IDs
Replace old model names: command →
command-r-plus; command-light →command-r; embed-english-v2.0 →embed-english-v3.0. Get current IDs from the table above. - 4
Fix rate limit 429 (trial key)
Trial keys have a 100 RPM and 1,000 calls/month cap. Implement exponential backoff: catch 429, wait
2^attemptseconds before retry. Or upgrade at dashboard.cohere.com to a production key with higher limits. - 5
Fix Embed 400 (missing input_type)
Cohere v3 embed models require
input_type: use"search_document"for data you are storing and"search_query"for queries. Using the wrong type degrades retrieval quality. Missing it entirely returns a 400 error.
Get alerted when Cohere goes down
Star Cohere on Prismix and get emailed the moment status changes. Free, no credit card.
Frequently asked questions
Why is Cohere API not working?
Cohere API issues: (1) 401 or deprecated domain — change base URL from api.cohere.ai to api.cohere.com, upgrade SDK; (2) model 404 — use command-r-plus, command-r, embed-english-v3.0, rerank-english-v3.0 (old names like command-xlarge are removed); (3) rate limit 429 — trial keys capped at 100 RPM/1k monthly; (4) Embed 400 — add input_type parameter; (5) outage — check prismix.dev/service/cohere.
Is Cohere down right now?
Check prismix.dev/service/cohere for live Cohere API status. Also status.cohere.com.
Cohere deprecated endpoint error — how to fix?
The old domain api.cohere.ai is deprecated. Update your base URL to https://api.cohere.com/v2. Upgrade the SDK: pip install cohere --upgrade. In code, switch from cohere.Client() to cohere.ClientV2() which defaults to v2 endpoints and the new domain. If using REST directly, also update your URL.
What are the current Cohere model IDs?
Chat: command-r-plus (best quality, 128K), command-r (balanced, 128K), command-r-plus-08-2024 (frozen). Embed: embed-english-v3.0 (1024 dim), embed-multilingual-v3.0 (1024 dim), embed-english-light-v3.0 (384 dim). Rerank: rerank-english-v3.0, rerank-multilingual-v3.0. Old names (command-light, command-xlarge, embed-english-v2.0) return 404.
Cohere Embed API returning 400 — how to fix?
Cohere v3 embed models require input_type. Pass "search_document" for data going INTO your database, "search_query" for live queries. Also add embedding_types=["float"] to get float vectors. Missing input_type = 400. Wrong input_type = embeddings that work but return poor retrieval quality.