Rate-Limits
Plan-spezifische Rate-Limits für Queries, Embeddings und Storage. Plus Best-Practices für Burst-Verkehr.
Rate-Limits gelten pro Workspace + pro Endpoint-Klasse. Im 429-Response liefert Anirag immer einen Retry-After-Header in Sekunden.
Pro-Minute-Limits (Burst)
| Plan | Limit |
|---|---|
| Free Trial / Free API | 30 req / min |
| Starter (49 € / Mo) | 60 req / min |
| Business (199 € / Mo) | 300 req / min |
| Enterprise | Custom (ab 1 000 req / min, nach Last-Profil) |
Monats-Volumen-Limits
| Plan | Queries / Mo | Embeddings / Mo | Overage-Pricing |
|---|---|---|---|
| Free Trial / Free API | 10 k | 100 k | nicht möglich (Service stoppt) |
| Starter | 50 k | 100 k | 0,02 € / Query · 0,001 € / 1k Embeddings |
| Business | 500 k | 1 M | 0,015 € / Query · 0,0008 € / 1k Embeddings |
| Enterprise | Custom + Commit | Custom + Commit | Vorausgehandelte Bundles, Volumen-Rabatt ab 5 M / Mo |
Storage pro Workspace
| Plan | Storage |
|---|---|
| Free Trial / Free API | 1 GB |
| Starter | 5 GB |
| Business | 50 GB (~50 000 PDFs Ø 1 MB) |
| Enterprise | Custom — bewusst nicht „unlimited", reale Hardware-Kosten kalkuliert |
Response-Header
Anirag liefert auf jedem Response folgende Header zur Quota-Beobachtung:
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 287
X-RateLimit-Reset: 1715000060
X-Quota-Queries-Limit: 500000
X-Quota-Queries-Remaining: 412 583
X-Quota-Embeddings-Limit: 1000000
X-Quota-Embeddings-Remaining: 845 220
X-RateLimit-Reset ist Unix-Timestamp (Sekunden) für den nächsten Burst-Bucket-Reset.
Best-Practices für Burst-Verkehr
Pattern 1: Backoff mit Retry-After
async function queryWithBackoff(req) {
for (let attempt = 0; attempt < 3; attempt++) {
try {
return await client.query(req);
} catch (err) {
if (err.status === 429) {
const retryAfter = Number(err.headers["retry-after"]) || 30;
await new Promise((r) => setTimeout(r, retryAfter * 1000));
continue;
}
throw err;
}
}
throw new Error("Max retries exceeded");
}Pattern 2: Eigene Queue mit Concurrency-Limit
Für Bulk-Indexing-Jobs — limitieren Sie selbst auf z. B. 10 parallele Requests, statt Anirag-Limits auszureizen:
import pLimit from "p-limit";
const limit = pLimit(10);
const results = await Promise.all(
documents.map((doc) =>
limit(() => client.docs.upload({ collection_id, file: doc }))
)
);Soft-Caps für Spending-Schutz
Im Web-UI können Sie pro Workspace Soft-Caps setzen — z. B. „Stop bei 600 k Queries / Mo, sende Slack-Alert bei 500 k". So vermeiden Sie Surprise-Bills durch Bug-Loops in Ihrem Code.
Rate-Limit-Erhöhung beantragen
Für temporäre Spikes (Black Week, Produkt-Launch, Migration) — formloser Request an support@anirag.io mit:
- Workspace-ID
- Erwartetes Spike-Volumen + Dauer
- Vorlauf (idealerweise 5 Werktage)
Anirag erhöht für Business-Pläne typisch 2x für 7 Tage ohne Mehrkosten. Enterprise: nach SLA-Vereinbarung.