Every law as structured data

One API call to search, read, and track changes across legislation from 32 countries. Free to start.

What are you building?Get your free API key
2,000 calls/month free.
856,521+ laws
32 countries
1,055,894+ reforms tracked
New: MCP connector Not calling the API yourself? Claude, ChatGPT and any other MCP client read the same corpus directly — same account, same quota. See the connector →

Typed end-to-end, zero-config, retries + webhook verification built in.

Python
PyPI
pip install legalize
from legalize import Legalize client = Legalize() for law in client.laws.iter("es"): print(law.id)
Node
npm
npm install @legalize-dev/sdk
import { Legalize } from "@legalize-dev/sdk"; const client = new Legalize(); for await (const law of client.laws.iter("es")) console.log(law.id);
go get github.com/legalize-dev/legalize-sdks/go
client, _ := legalize.New() defer client.Close() iter := client.Laws().Iter(ctx, "es", nil) // pull-based: iter.Next(ctx)

Set LEGALIZE_API_KEY in your environment. Every SDK reads it automatically — no argument needed.

from legalize import Legalize client = Legalize() # Search the Spanish civil code, auto-paginated for law in client.laws.search_iter("es", q="propiedad intelectual"): print(law.id, law.title)
import { Legalize } from "@legalize-dev/sdk"; const client = new Legalize(); // Search the Spanish civil code, auto-paginated for await (const law of client.laws.searchIter("es", "propiedad intelectual")) { console.log(law.id, law.title); }
client, _ := legalize.New() defer client.Close() iter := client.Laws().SearchIter(ctx, "es", "propiedad intelectual", nil) for { law, ok, err := iter.Next(ctx) if err != nil || !ok { break } fmt.Println(law.ID, law.Title) }
export KEY="leg_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" curl -H "Authorization: Bearer $KEY" \ "https://legalize.dev/api/v1/es/laws?q=propiedad+intelectual"
Time-travel

Every law has a git history

Each reform is a commit, and you can fetch the text of any law at any past revision with one call. No other legal API ships this.

Structured

Markdown + typed metadata

Body as clean Markdown, frontmatter with jurisdiction, status, dates, reform IDs. Drop into a RAG pipeline without scraping HTML.

Cross-border

One API, 32 countries

ES, FR, DE, AT, SE, LV, LT, PT, UY, CL, and counting. Same schema, same Bearer token. No per-country onboarding.

Change feed

Know the day a law changes

Push or pull, same events either way. Register a webhook and each change lands on your endpoint, HMAC-signed and retried, with a delivery log you can query — or poll /changes?since= and host nothing. Both follow the daily sync.

B2B only. Paid prices exclude applicable VAT. Every country on every tier; no card on Free. Full pricing →

Free

€0

2,000 requests/month, all countries, OpenAPI spec.

Enterprise

€149+ /month, excl. VAT

Custom volume (2M+), higher rate limits, direct line to founder.

For scale and compliance platforms.

See all →
2026-08-26 The connector can actually sign you in v0.18.0
2026-08-26 One click from Claude to your account v0.17.0
2026-08-26 Ask for an article by its name v0.16.1

Start here

Quickstart →

Install, authenticate, first call.

Essentials

Authentication →

Bearer tokens, env vars, rotation.

Essentials

Pagination →

Lazy iterators across large result sets.

Advanced

Time-travel →

Fetch any law at any past revision.

Advanced

Webhooks →

Signed event deliveries, verification.

Reference

API reference →

Every endpoint, with try-it panel.

What will you build?

Compliance dashboards. Legal AI assistants. Reform trackers. Civic tech tools. Journalism investigations. Academic research. The data is here — the rest is up to you.

Get your free API key