specification: API Commons Rate Limits specificationVersion: '0.1' schema: https://raw.githubusercontent.com/api-evangelist/interface-research/main/schema/api-commons.yml#/$defs/RateLimits provider: Algolia providerId: algolia name: Algolia Service Limits created: '2026-05-04' modified: '2026-09-23' generated: '2026-09-23' method: searched source: https://www.algolia.com/doc/guides/scaling/algolia-service-limits.md sources: - https://www.algolia.com/doc/guides/scaling/algolia-service-limits.md - https://www.algolia.com/doc/guides/scaling/algolia-service-limits - https://www.algolia.com/pricing/ - https://github.com/algolia/api-clients-automation/tree/main/specs/bundled supersedes: >- The 2026-05-04 bulk-sweep version of this file, which was method:generated and recorded only "scales with plan" for the two headline limits. Every figure below is now quoted from Algolia's own service-limits page, and the response headers were read from the first-party OpenAPI documents. tags: - Rate Limiting - Search description: >- Algolia publishes a genuinely detailed service-limits page. The important structural finding for an agent is that the runtime signal is INCONSISTENT across the estate: the Analytics-family APIs return x-ratelimit-* response headers, and the Search-family APIs return none at all. headers: x-ratelimit-limit: description: Request quota for the window. declared_in: [analytics, abtesting, abtesting-v3, insights, personalization, advanced-personalization] x-ratelimit-remaining: description: Requests remaining in the window. declared_in: [analytics, abtesting, abtesting-v3, insights, personalization, advanced-personalization] x-ratelimit-reset: description: When the window resets. declared_in: [analytics, abtesting, abtesting-v3, insights, personalization, advanced-personalization] headers_absent_from: - search - recommend - ingestion - crawler - query-suggestions - monitoring - composition - agent-studio - algoliasearch headers_note: >- 6 of 15 first-party OpenAPI documents declare rate-limit response headers; 9 declare none. An agent driving indexing or search therefore has NO runtime budget signal and must respect the documented 100-pending-request throttling limit by construction. Note the legacy X- prefixed form rather than the RFC 9331 RateLimit-* form. No Retry-After header is declared anywhere in the estate. retry_after: false responseCodes: throttled: 429 limits: - name: Pending requests (throttling limit) limit_text: 100 pending requests scope: application max: 100 note: >- The operative rate limit for the Search API. Algolia queues up to 5,000 pending requests but throttles at 100 pending, which is the number an agent must design around. - name: Pending requests (queue ceiling) limit_text: '5,000' scope: application max: 5000 - name: Analytics API calls limit_text: 100 API calls per minute per app scope: application window: minute max: 100 - name: Indexing rate limit_text: 10,000 indexing operations per Unit (as applicable) scope: application max: 10000 - name: Ingestion push endpoint limit_text: 2000 calls per minute per IP scope: ip window: minute max: 2000 - name: Ingestion observability endpoints limit_text: 2000 calls per minute per IP scope: ip window: minute max: 2000 - name: Ingestion runTask limit_text: 10 calls per 10 minute per taskID scope: task window: 10 minutes max: 10 - name: Ingestion other endpoints limit_text: 200 calls per minute per IP scope: ip window: minute max: 200 - name: Agent Studio completions per minute limit_text: '3,000' scope: application window: minute max: 3000 - name: AI Assist combined tokens per app per day limit_text: 25 million scope: application window: day max: 25000000 - name: DocSearch queries per second limit_text: '3' scope: application window: second max: 3 note: Applies to the free hosted DocSearch tier only. - name: Insights tag processing limit_text: 1,750 unique tag combinations every 5 minutes scope: index window: 5 minutes max: 1750 quotas: - name: Application size limit_text: 100 GB (or 1 GB for the Free plan) scope: application - name: Index size limit_text: 100 GB (or 1 GB for the Free plan) scope: index - name: Indices per application limit_text: 1,000 (Premium), 50 (Grow), or 10 (Free) scope: application - name: Record size limit_text: 10 KB to 100 KB—based on your plan (10 KB maximum for the Free plan) scope: record - name: objectID length limit_text: 200 characters scope: record - name: Indexing request body size limit_text: 1 GB per batch scope: request - name: Search request body size limit_text: 50 MB per request scope: request - name: Query size limit_text: 512 bytes scope: request - name: Query parameter size limit_text: 16 KiB scope: request - name: Pagination depth limit_text: '20,000' scope: query note: Hits reachable through page/hitsPerPage pagination. Use browse (cursor) to walk beyond it. - name: Values per facet per query limit_text: '1,000' scope: query - name: Synonyms per index limit_text: 10,000 (or 1,000 for the Free plan) scope: index - name: API keys per application limit_text: '5,000' scope: application - name: Virtual replicas per index limit_text: '20' scope: index - name: Number of filters limit_text: '1,000' scope: query - name: Data transformations per application limit_text: 5 million per month scope: application - name: Fetch enrichment requests limit_text: Up to 1 million Fetch requests per Application per month, as part the 5 million transformations per Application per month limit. scope: application - name: Agent Studio agents per app limit_text: '500' scope: application - name: Agent Studio conversations retained limit_text: '100,000' scope: application - name: Agent Studio retention policy limit_text: 90 days scope: application limit_count: 12 plan_dependent_note: >- Search and indexing OPERATION volume is a plan quota rather than a rate limit - see plans/algolia-plans-pricing.yml for the per-tier search request and record allowances and overage pricing.