Get a free API key
Free tier: 60 requests per minute, every endpoint, all 51 jurisdictions. No card, no trial clock. The key appears on the next page and is shown only once. Your address is stored with the key and used for one thing: telling you before something breaks. No newsletter.
Terms, in full
- Free for commercial and non-commercial use.
- If you publish anything derived from this data, credit Homeschool Fox with a visible link back to homeschoolfox.com.
- The data describes state law but is not legal advice. Every field carries its source citation — check it before you rely on it.
- Don't resell the raw feed as a competing data product.
Overview
The Homeschool Fox Compliance API is a read-only HTTP API that exposes structured, versioned U.S. state homeschool compliance data — required hours, days, subjects, assessment rules, ESA programs, tax credits, and source citations for all 50 states + DC.
What it is
- A stable contract over data that's already public but is otherwise tedious to maintain — the value is the editorial process behind it, not the bits.
- Versioned per-state with cryptographically anchored history (every version is backed by a git commit on
data/compliance/states/*.yml). - Point-in-time queryable:
?as_of=2026-03-01returns what the data looked like on that date. - Diffable: the change feed lets integrators sync only what's moved since their last poll.
What it is not (in v1)
- Not write-capable. Read endpoints only.
- Not metered or billed. The free tier is the only tier today — 60 requests a minute, every endpoint. There is no paid plan and no usage billing.
- Not for user-scoped data. Student records, activities, goals, etc. are not exposed here. The compliance API only covers reference data about the 51 jurisdictions.
- Not webhooks. Pull-based change feed only — push notifications are a roadmap item.
Getting access
Keys are self-serve and free at /developers. We ask one thing in return: if you publish anything derived from this data, credit Homeschool Fox with a visible link back.
Audience
- Our own Rails app (eventual internal consumer).
- Third-party homeschool apps that don't want to scrape DOE pages themselves.
- Researchers and analysts who want a clean, citable, queryable view of state homeschool law over time.
Architecture in one paragraph
The canonical source of truth is YAML files committed to the repo at data/compliance/states/<abbr>.yml. A boot-time service (ComplianceData) reads + schema-validates them. A compliance:reindex_history rake task walks git log for those files and writes one row per version into a compliance_snapshots table. The API reads from ComplianceData for current data and from compliance_snapshots for historical (as_of / pinned-version) lookups. Auth is API keys with constant-time hash comparison; rate limiting is via rack-attack, keyed per-key.