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: Plausible providerId: plausible created: '2026-05-04' # Provenance: originally written by the API Evangelist bulk sweep dated 2026-05-04 # (roadmap#35). RE-READ FROM THE PROVIDER on 2026-08-13. The 600 requests/hour figure was # confirmed verbatim at https://plausible.io/docs/stats-api ("API keys have a rate limit of # 600 requests per hour by default") and at https://plausible.io/#pricing. The absence of # rate-limit response headers was confirmed by live probes on 2026-08-13 rather than # inferred from the docs — see responseHeaders below. Upgraded generated -> searched. method: searched modified: '2026-08-13' verified: '2026-08-13' limit_count: 3 reconciled: true tags: - Rate Limiting - Analytics - Web Analytics - Privacy description: Plausible publishes a default Stats API rate limit of 600 requests per hour scoped to the API key, available on Business and Enterprise plans. The Events API (ingest) is open to all plans, returns 202 Accepted on success, and uses bot/IP heuristics rather than published per-key numerics. Higher Stats API capacity is available by contacting Plausible. The provider does not publish per-second numbers or rate-limit response headers in its public documentation. sources: - https://plausible.io/docs/stats-api - https://plausible.io/docs/events-api responseCodes: throttled: 429 ingestAccepted: 202 ingestDropped: 202 responseHeaders: published: [] observed: [] observedOn: '2026-08-13' observedRequests: - 'POST https://plausible.io/api/v2/query (401, no auth)' - 'POST https://plausible.io/api/v2/query (401, invalid bearer)' - 'GET https://plausible.io/api/v1/sites (401, no auth)' - 'POST https://plausible.io/api/event (202)' absent: - X-RateLimit-Limit - X-RateLimit-Remaining - X-RateLimit-Reset - RateLimit - RateLimit-Policy - Retry-After note: >- THIS IS THE GAP. Plausible publishes the number but not the runtime signal: no X-RateLimit-*, no RateLimit-* and no Retry-After header was returned on any response observed. An agent or client cannot read its remaining budget, cannot learn when the window resets, and can only discover exhaustion by being refused with a 429. Every response does carry an `x-request-id` header, which is useful for support but not for flow control. presentHeaders: - {name: x-request-id, purpose: 'per-request correlation id, present on every response'} - {name: x-plausible-dropped, purpose: 'set to 1 on POST /api/event when the event was filtered and discarded'} limits: - name: Stats API default scope: api-key metric: requests_per_hour limit: 600 timeFrame: hour notes: Default for Business plan; Enterprise plans can negotiate higher capacity by contacting Plausible. - name: Stats API enterprise scope: api-key metric: requests_per_hour limit: 'negotiated; contact Plausible for higher capacity' notes: No fixed published ceiling for Enterprise; raised on request. - name: Events API ingestion scope: site metric: varies limit: 'no published per-second / per-minute numeric; bot filtering and IP heuristics apply' notes: All plans can post to /api/event. Server-side ingestion must set X-Forwarded-For to the real client IP or events will be dropped as bot traffic. Inspect x-plausible-dropped response header to detect filtering. policies: - name: API Key Scoping description: Stats API rate limits are evaluated per API key supplied via the Authorization Bearer header. Multiple keys per account are permitted. - name: Event Ingestion Filtering description: The Events API silently accepts (HTTP 202) but may drop events that match bot heuristics. Use X-Debug-Request and check x-plausible-dropped to verify acceptance. - name: Capacity Increase description: Higher Stats API throughput is available by emailing Plausible from the Business or Enterprise plan account. - name: Backoff description: On 429 responses, clients should pause and retry with exponential backoff. The hourly window resets on a rolling basis. maintainers: - FN: Kin Lane email: kin@apievangelist.com