For AI agents
Endpoints
GET /api/items
Bills, laws, executive orders, resolutions, treaties and rulings, newest action first: stage, dated last action, sponsors with party, votes, topics, official and source URLs, verified
Params: jurisdiction (us, us-mn, eu, gb ... or us-states), kind, stage (or moving), topic, group, since (YYYY-MM-DD, last action on or after), q, limit (max 500), offset
/api/items?jurisdiction=us-mn&limit=2GET /api/items/{id}
One item with its full dated action timeline and its append-only change log
Params: id
/api/items/un-2024-convention-against-cybercrimeGET /api/watch
Closest to law: measures that passed both chambers, then one chamber, newest action first
/api/watchGET /api/jurisdictions
Every jurisdiction on file with its item count and actions in the last 30 days
/api/jurisdictionsGET /api/changes
Append-only log: new items, stage moves, last actions, effective dates, votes
Params: since (ISO time), limit (max 500)
/api/changes?limit=3GET /api/sources
The growing sources table: official APIs, press feeds, hosts and searches
/api/sourcesGET /api/search
Ranked items, jurisdictions, topics and pages
Params: q, limit (max 20)
/api/search?q=deepfakeGET /rss.xml
RSS: the latest moves, newest first
/rss.xml
Python
import requests
r = requests.get("https://legislations.fru.dev/api/items", params={"jurisdiction": "us-mn", "limit": 20})
for it in r.json()["items"]:
print(it["last_action_date"], it["stage"], it["title"])TypeScript
const r = await fetch("https://legislations.fru.dev/api/items?topic=ai&stage=moving&limit=20")
const { items } = await r.json()
for (const it of items) console.log(it.last_action_date, it.stage, it.title)A sample item
{
"id": "un-2024-convention-against-cybercrime",
"jurisdiction": "un",
"kind": "treaty",
"number": "A/RES/79/243",
"title": "UN Convention against Cybercrime",
"stage": "adopted",
"last_action_date": "2026-09-25",
"url": "https://legislations.fru.dev/items/un-2024-convention-against-cybercrime"
}