Handle Algolia rate limits and throttling: per-key limits, indexing queue limits,
429 responses, and backoff strategies.
Trigger: "algolia rate limit", "algolia throttling", "algolia 429",
"algolia retry", "algolia backoff", "algolia too many requests".
allowed-tools
Read, Write, Edit
version
1.6.0
license
MIT
author
Jeremy Longshore <jeremy@intentsolutions.io>
tags
["saas","search","algolia"]
compatibility
Designed for Claude Code
Algolia Rate Limits
Overview
Algolia has two distinct rate limiting mechanisms: per-API-key limits (configurable, returns HTTP 429) and server-side indexing limits (protects cluster stability, returns HTTP 429 with specific messages). The algoliasearch v5 client has built-in retry with backoff, but you need to handle sustained rate limiting yourself.
How Algolia Rate Limiting Works
Per-API-Key Rate Limits
Setting
Default
Where to Change
maxQueriesPerIPPerHour
0 (unlimited)
Dashboard > API Keys > Edit
maxHitsPerQuery
1000
Dashboard > API Keys > Edit
Search requests
Plan-dependent
Upgrade plan
Server-Side Indexing Limits
When the indexing queue is overloaded, Algolia returns 429 with these messages:
Message
Meaning
Action
Too many jobs
Queue full
Reduce batch frequency
Job queue too large
Too much pending work
Wait for queue to drain
Old jobs on the queue
Stuck tasks
Check dashboard > Indices > Operations
Disk almost full
Record quota near limit
Delete unused records or upgrade
Instructions
Step 1: Configure Per-Key Rate Limits
import { algoliasearch } from'algoliasearch';
const client = algoliasearch(process.env.ALGOLIA_APP_ID!, process.env.ALGOLIA_ADMIN_KEY!);
// Create a rate-limited API key for frontend useconst { key } = await client.addApiKey({
apiKey: {
acl: ['search'],
description: 'Frontend search key — rate limited',
maxQueriesPerIPPerHour: 1000, // Per user IPmaxHitsPerQuery: 20,
indexes: ['products'], // Restrict to specific indicesvalidity: 0, // 0 = never expires
},
});
console.log(`Created rate-limited key: ${key}`);