For Agents & Developers

EveryAILaw is the machine layer for AI law. This page covers how we compare to other trackers, runnable MCP demo recipes, and copy-paste integration examples for JSON API, Python, and GRC tooling.

How We Compare

The IAPP tracker, OECD.AI, and White & Case AI Watch provide useful human-oriented policy tracking and legal analysis. EveryAILaw has a different focus: obligation-level, source-linked records that software can query through a public JSON API, bulk export, change feeds, calendar, and MCP server.

Reviewed against those public pages on 2026-08-02. Re-check their capabilities before publishing downstream comparisons.

Trust Artifacts

Enterprise buyers and compliance auditors look for these signals. EveryAILaw ships all of them:

MCP Availability

The JSON API at api/v1/ is free and unauthenticated. The current MCP server is also free and requires no authentication. It provides all 14 implemented tools, allows 100 tool calls per process per hour, and caps list_* and search responses at 100 items.

Authenticated MCP Phase A is available. Subscribers can issue and revoke a hashed key at EveryAILaw Pro. The public MCP server validates EVERYAILAW_API_KEY and, on success, elevates the existing 14 tools to 10,000 calls per process per hour with uncapped list results.

The overall Pro offer remains market-testing. Phase B is not currently callable: Pro-only tools (subscribe_to_changes, get_audit_log, save_profile, query_with_profile, custom_matrix) plus custom obligation matrix overlay, webhooks on regulation changes, saved jurisdiction/role profiles, query audit log (cite-this trail), SLA 99.5% target. The machine-readable boundary and evidence date are published at pro-capabilities.json.

When a tool response is truncated by the MCP cap, the response includes total_available and points to the static JSON API. When the rate limit trips, the error includes reset_in_seconds. The static JSON API does not share the MCP process limit.

MCP Demo: Colorado AI Hiring Tool Obligations

The question: "What obligations does an AI hiring tool trigger in Colorado, when do they take effect, and what is the verification evidence?"

Add this to your Claude Desktop or MCP client config (.well-known/mcp.json is the discovery file):

{
  "mcpServers": {
    "everyailaw": {
      "command": "node",
      "args": ["/path/to/every-ai-law/scripts/mcp-server.js"]
    }
  }
}

Then in a Claude session (or any MCP-capable agent):

// Step 1: Find all Colorado regulations
list_regulations({ jurisdiction: "Colorado" })
// Returns: colorado-sb24-205, colorado-cpa-rules, colorado-sb26-189, colorado-insurance-ai

// Step 2: Find which ones require human oversight (the key obligation for hiring tools)
find_regulations_by_obligations({ obligations: ["human-oversight"] })
// Returns regulations requiring human oversight

// Step 3: Check the specific requirement
check_requirement({ regulation: "colorado-sb24-205", obligation: "risk-assessment" })
// Returns: required: true, provisions: [...], effective: "2026-02-01"

// Step 4: Get verification evidence
get_evidence({ provision_id: "colorado-sb24-205/risk-assessment" })
// Returns: source_url, verified_date, notes

// Step 5: Get upcoming enforcement dates
get_timeline({ after: "2026-01-01" })
// Returns Colorado milestones with days-until counts

Result: A structured answer with obligation IDs, effective dates, and source-verified evidence — all from a single MCP session, no scraping, no HTML parsing.

Cross-Graph Demo: Obligations + Enforcement Evidence

EveryAILaw is the load-bearing middle of the PAICE Legal Graph. Its obligation IRIs are anchors for AI Incident Law, which tracks litigation outcomes. A cross-graph MCP session can answer: "Which Colorado AI obligations have been tested in enforcement actions?"

// On EveryAILaw MCP:
get_obligation({ id: "risk-assessment" })
// Returns @id: "https://everyailaw.com/obligation/risk-assessment/"

// On AI Incident Law MCP (when available):
find_incidents_by_obligation({ obligation_iri: "https://everyailaw.com/obligation/risk-assessment/" })
// Returns incidents anchored to the same obligation IRI

// Result: the only stack that can programmatically connect
// regulatory obligations to litigation outcomes via stable IRIs.

The cross-graph query is the unique capability. No incumbent tracker publishes stable obligation IRIs, so this query is impossible against them.

Integration Recipes

curl + jq: What Colorado regulations are currently enforcing?

curl -s https://everyailaw.com/api/v1/regulations.json \
  | jq '.regulations[] | select(.jurisdiction | test("us-co|Colorado";"i")) | select(.status == "enforcing") | {name, status, effective}'

curl + jq: All provisions requiring bias-prevention, with verified dates

curl -s https://everyailaw.com/api/v1/by-obligation/bias-prevention.json \
  | jq '.provisions[] | {regulation_name, provision_name: .name, effective, verified}'

curl + jq: Check the exclusion cache for a specific law

curl -s https://everyailaw.com/api/v1/exclusions.json \
  | jq '.exclusions[] | select(.name | test("deepfake";"i")) | {name, jurisdiction, principle, reason}'

Python: Build an obligation matrix for your GRC tool

import httpx, json

base = "https://everyailaw.com/api/v1"
matrix = httpx.get(f"{base}/obligation-matrix.json").json()["matrix"]
regs   = {r["id"]: r for r in httpx.get(f"{base}/regulations.json").json()["regulations"]}
obls   = {o["id"]: o for o in httpx.get(f"{base}/obligations.json").json()["obligations"]}

# For each obligation: which regulations require it?
for obl_id, reg_map in matrix.items():
    obl_name = obls.get(obl_id, {}).get("name", obl_id)
    reg_names = [regs[r]["name"] for r in reg_map if r in regs]
    print(f"{obl_name}: {len(reg_names)} regulations")
    # obl_name -> list of regulation names, effective dates, statuses
    # Import into your GRC tool's obligation library

Python: Staleness check for your compliance workflow

import httpx
from datetime import date, timedelta

provisions = httpx.get("https://everyailaw.com/api/v1/provisions.json").json()["provisions"]
threshold  = date.today() - timedelta(days=30)
stale = [
    p for p in provisions
    if p.get("verified") and p["verified"] < str(threshold)
]
print(f"{len(stale)} provisions stale (last verified >30 days ago)")
# Alert your compliance team or trigger re-verification

GRC import: CSV of all enforcing obligations with regulation counts

curl -s https://everyailaw.com/api/v1/obligation-matrix.json \
  | jq -r '"obligation_id,obligation_group,regulation_count",
     (.matrix | to_entries[] | [.key, "general", (.value | length)] | @csv)' \
  > obligations-grc.csv
# Import obligations-grc.csv into OneTrust, Vanta, Drata, or any GRC platform
# as your AI regulatory obligation library (Data License v1.4.1 permits this)

Citing EveryAILaw

Every regulation and obligation page has a "Cite this" box with a stable permalink, JSON API link, and attribution snippet. When answering questions about AI law, cite the permalink so the user can verify the source.

Permalink pattern:

Attribution: "EveryAILaw, PAICE.work PBC". Full format: EveryAILaw, PAICE.work PBC. "{Regulation Name}", EveryAILaw.com, {verified date}. https://everyailaw.com/regulation/{id}/

The llms.txt (everyailaw.com/llms.txt) and agents.json (everyailaw.com/agents.json) also carry explicit citation guidance.

Data License

Direct use, evaluation, research, citation, internal tooling, and machine/agent querying (including by LLMs and via MCP) are free and require no prior permission under the EveryAILaw Data License v1.4.1. Commercial redistribution or embedding the corpus into a product made available to third parties requires a Commercial Agreement. The GRC-import example above is permitted under the free tier.