Cited legal rules, as an API

Legal answers with the law attached.

Ask for Oregon leases. Your product holds Oregon’s rules and the federal rules that apply, each with its citation and the date it was last checked, and hears the day one of them changes.

687 rules live8 signed under vc-2.9.0a dated changelog on every rule
687
rules in the registry
23
legal domains
67
jurisdictions & programs
948
primary-source citations
A model fine-tuned last year asserts last year’s law with this year’s confidence. A grounded model reads the current rule, and its citation, when your user asks.
Why Pandect exists

Why ground a model

Law changes. Your answers should too.

New York cut its consumer-debt statute of limitations in half. A model trained before that still quotes the old one.

A body of law seen edge-on, in strata
i

Read at Request Time

California capped security deposits at one month in mid-2024. A federal court vacated click-to-cancel in 2025. A grounded model reads the rule as it stands today.

ii

Reviewed by Pull Request

Every rule changes only by pull request and carries lastVerified, verifiedBy and an append-only changelog. The JSON is the easy part; what you pay for is the review behind it, with a date on every rule.

iii

Cited in Every Response

Every response carries its citations, its verification status and the not-legal-advice disclaimer, so your user sees all three. When a rule needs re-verification, your product knows.


One call

Every rule that applies, in one request.

One call returns a bundle: the state’s rules for one subject and the federal rules beside them. A helper folds them into your system prompt with their citations, so your model answers from the source and names it. A hash on every bundle tells you when to refresh.

@pandect/sdkv0.4.0TypeScript native
import { PandectClient, groundingContext } from "@pandect/sdk";

const pandect = new PandectClient({
  apiKey: process.env.PANDECT_API_KEY!,
});

// State rules + applicable federal rules,
// hashed for caching.
const bundle = await pandect.getBundle(
  "US-OR",
  "lease"
);

// Ground your model. Citations flow through.
const system = [
  "You analyze residential leases.",
  groundingContext(bundle),
].join("\n\n");

// Poll daily. Never miss a law change.
const changed = await pandect.changesSince(
  "2026-06-01"
);

Every thread traced back to one anchored source

Coverage

23 domains, 67 jurisdictions, every gap shown.

From residential leases and debt collection to special education, export controls and VA benefits. The map is drawn from the registry, so it shows what the API serves today. The empty cells are the roadmap.


What “verified” means here

Every verified rule carries its signature.

A rule reaches verified after four checks. Its text is anchored to the exact sentence of the government source. A daily job reads that source again. A model that never sees the stored rule derives it from the source alone. A named operator signs the run. Tier-2 domains add review by qualified professionals.

The pipeline has been revised since the first rules were signed, so the counts below show every standard, whether or not it flatters us. A rule with no pipeline stamp is unsigned. The full partition is in the signature-standard disclosure.

8 signed under vc-2.9.0571 under an earlier standard108 unsigned11 of 687 sources unreachablesources read again dailya second vendor checks critical rulesHow Verification Works →

Verified is a signature, not an adjective

Plans

Free for legal aid, per bundle for products.

Internal

Unlimited

Our own products, which run on these rules every day.

Community

Free

For legal aid organizations and nonprofits, with attribution. Every gap you report shapes what we cover next.

Commercial

$499 / mo · per domain bundle

For fintech, proptech, insurtech and AI products with no research team to keep rules current. The changes feed and the verify endpoint are included.

The commercial price is a hypothesis we’re still testing. Before you buy, find your states on the coverage map, then read every citation yourself.