Docs

Research & intel

Beyond the curated enforcement feed, ExChek exposes general full-text search across the primary U.S. legal and regulatory sources — the Federal Register, SEC EDGAR, the eCFR, GovInfo, and Regulations.gov — over both REST (GET /api/…) and MCP. These are read-only research primitives: they fetch live from each upstream, edge-cache the result, and fail soft — a broken or blocked upstream returns a soft result ({ results: [], error }) rather than failing the request. Everything here is public information only — do not send CUI or classified information.

Free — no key

Six search endpoints (and their matching MCP tools) are free, no auth. Two of them (GovInfo, Regulations.gov) run through a server-side DATA_GOV_KEY; when that key is not configured they return { configured: false, error } — never a 5xx, never a 401.

search_federal_register

Full-text search of the Federal Register — every published rule, proposed rule, notice, and presidential document (the general FR search, distinct from the curated get_rule_changes / enforcement feeds).

GET /api/federal-register · params: query (required), agency (FR agency slug, e.g. industry-and-security-bureau), doc_type (RULE | PRORULE | NOTICE | PRESDOCU), limit (default 20, max 100).

get_federal_register_document

Fetch one FR document by number — full metadata plus its plain-text body (truncated to ~40k chars). Use it to read the actual order text of a rule or notice surfaced by the search above.

GET /api/federal-register/:document_number · params: document_number (required, in the path).

search_sec_edgar

SEC EDGAR full-text search across public-company filings — surfaces companies self-disclosing export or sanctions issues (voluntary self-disclosures, enforcement, remediation). Pass the query as plain terms; quoted-phrase queries are finicky.

GET /api/sec-edgar · params: query (required), forms (comma-separated form types, e.g. 8-K,10-K), date_from and date_to (YYYY-MM-DD).

search_ecfr

Global cross-title full-text discovery search of the Code of Federal Regulations — distinct from the scoped search_ecfr_part / search_ecfr_title lookups, which stay inside one part or title.

GET /api/cfr-search · params: query (required), title (narrow to one CFR title, e.g. 15, 22), limit (default 20, max 100).

search_govinfo

GovInfo full text across the Federal Register, CFR, US Code, USCOURTS federal court opinions, bills, and public laws. Optionally scope to one collection.

GET /api/govinfo · params: query (required), collection (USCOURTS | FR | CFR | USCODE | BILLS | PLAW). Uses the server-side DATA_GOV_KEY.

search_regulations

Search Regulations.gov rulemaking dockets and public comments — find open comment periods and docket documents for a proposed rule.

GET /api/regulations · params: query (required). Uses the server-side DATA_GOV_KEY.

REST example

curl -sS "https://api.exchek.us/api/federal-register?query=denial%20of%20export%20privileges&doc_type=NOTICE&limit=5"

MCP example

curl -sS -X POST https://api.exchek.us/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_federal_register","arguments":{"query":"denial of export privileges","doc_type":"NOTICE","limit":5}}}'

Enterprise — CourtListener (bring your own token)

Three additional court-records tools — search_court_records, find_court_case, and get_court_case_documents — search CourtListener and RECAP. They are Enterprise MCP tools with no REST equivalent, and they run under your own CourtListener token — because CourtListener’s free shared token is capped at 125 requests/day, each user brings their own so you get your own rate limits.

ToolWhat it does
search_court_recordsSearch CourtListener across federal + state opinions, RECAP dockets, oral arguments, and judges. result_type selects the corpus (default RECAP dockets); court narrows to a court id.
find_court_caseDoes a matter have a criminal court case? Combines a DOJ press-release title search with a CourtListener RECAP-docket search.
get_court_case_documentsList the docket documents for a CourtListener docket_id — flattens docket entries into a document list, with a download URL for documents already available in RECAP.

Setup. Generate a free token at courtlistener.com/profile, then paste it once into the “CourtListener API token” panel at app.exchek.us/keys. The token is attached to your tool calls server-side and never appears in tool arguments.

Note. find_court_case still returns DOJ press-release matches even without a token — only the RECAP docket half needs one. So a token-less call is still useful for answering “is there a DOJ criminal case?”; add the token when you also want PACER/RECAP dockets.

Next steps

  • Enforcement actions — the curated feed these searches sit behind
  • API Reference — every research endpoint with parameters and response shapes
  • Pricing — Enterprise plans for the CourtListener tools