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: Election Assistance Commission providerId: election-assistance-commission generated: '2026-09-06' method: probed source: >- response headers observed on live anonymous requests to https://www.eac.gov/jsonapi and https://www.eac.gov/data.json on 2026-09-06, plus a search of www.eac.gov for any published usage policy created: '2026-05-04' modified: '2026-09-06' tags: - Federal Government - Elections - Voting - Open Data - Rate Limiting description: >- The EAC publishes no rate limits and returns no rate-limit headers. Over roughly 300 anonymous requests on 2026-09-06 — a full 216-resource-type sweep plus complete pagination walks of fourteen collections — not one response carried X-RateLimit-*, RateLimit-* or Retry-After, and no request was throttled or rejected. An honest zero: nothing is documented, and nothing was observed. limit_count: 0 limits: [] headers: limit: null remaining: null reset: null retryAfter: null policy: null observed: [] note: >- No rate-limit header family appeared on any response. An agent has no runtime signal to back off on and must self-pace. responseCodes: throttled: null observed: - code: 200 note: Normal response, application/vnd.api+json. - code: 400 note: Invalid filter. - code: 404 note: Unknown UUID (JSON:API error) or unknown resource type (HTML page). - code: 405 note: Any write verb — the surface is read-only by configuration. - code: 503 note: >- Acquia/Varnish "Technical Difficulties" HTML page. Observed persistently on three specific collections (node--event, user--user, token_custom--custom) across retries spanning hours, so on this host a 503 is more often a broken collection than a throttle. Do not read it as rate limiting. edge: cdn: Cloudflare cache: Varnish note: >- Requests transit Cloudflare and Varnish (cf-ray, via: varnish, x-cache headers observed). Neither publishes a documented limit here, but an edge policy could throttle an aggressive caller without any header explaining why. cache-control on JSON:API responses is max-age=31536000, public, so a well-behaved consumer using ETag/If-None-Match will generate very little origin load. policies: [] published_usage_policy: exists: false probed: - url: https://www.eac.gov/robots.txt status: 200 finding: >- Standard Drupal robots.txt. Does NOT disallow /jsonapi or /data.json; disallows /core/, /profiles/, /admin/, /search/ and the user account paths. No Crawl-delay directive is set. - url: https://www.eac.gov/llms.txt status: 404 finding: No AI/agent usage guidance published. supersedes: >- This file previously contained a five-entry free/professional/enterprise rate-limit scaffold written by the 2026-05-04 bulk sweep (method: generated) with invented per-minute and per-month quotas and an X-RateLimit-* header set the EAC does not emit. Replaced here by the measured result. maintainers: - FN: Kin Lane email: kin@apievangelist.com