API, feeds, and syndication
Everything public is available by API and feeds under the same licences as the site. Attribution is required. Keys are free for newsrooms, researchers, and small tools; without a key you get a lower rate limit.
| Endpoint | What it returns |
|---|---|
| GET /api/v1/entries | Crosswalk entries; filter by type, jurisdiction, applies_to, status, deadline_within_days, q |
| GET /api/v1/entries/{slug} | One entry with dates, rules, and change log |
| GET /api/v1/deadlines?from=&to= | Dated events between two dates |
| GET /api/v1/mappings | Baseline control to framework mappings |
| GET /api/v1/posts | Wire items; filter by kind, tag, jurisdiction, entry, since |
| GET /api/v1/posts/{slug} | One post |
| GET /api/v1/posts/{slug}/republish | Republish bundle with credit line and counter |
| GET /api/v1/changes?since= | Entry changes and new posts since a timestamp |
| GET /api/v1/baseline | Current Deployer Baseline document |
| GET /api/v1/attestations | Published attestations only |
| GET /api/v1/tool-register | The AI Tool Register |
| GET /api/v1/stats | Live public counts |
| POST /api/v1/tools/domain-check | Run the passive domain check: {"domain": "example.com"} |
| POST /api/v1/webhooks | Register an endpoint (API key required) for post.published, entry.updated, deadline.created |
Try it
curl http://localhost:3000/api/v1/entries?jurisdiction=US-TX curl -H "Authorization: Bearer agc_..." http://localhost:3000/api/v1/changes?since=2026-10-01
Limits
No key: 60 requests an hour per IP. Free key: 1,000 a day plus webhooks. Heavier use: ask through the contact form.
Feeds
/feeds/wire.xml
/feeds/wire.json
/feeds/crosswalk-changes.xml
/feeds/timeline.ics
/feeds/kind/{kind}.xml
/feeds/tag/{tag}.xml
Headers on every response
X-License · X-Attribution · X-RateLimit-Limit · X-RateLimit-Remaining
MCP endpoint
Streamable HTTP JSON-RPC at /mcp with read-only tools: search_entries, get_entry, list_deadlines, get_mappings, search_posts, get_post, get_baseline, list_attestations.