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.
| Tool | What it does |
|---|---|
search_court_records | Search 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_case | Does a matter have a criminal court case? Combines a DOJ press-release title search with a CourtListener RECAP-docket search. |
get_court_case_documents | List 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.