Skip to content

API Reference

mrdulasolutions edited this page Apr 23, 2026 · 1 revision

API Reference

The ExChek API provides live eCFR regulatory data for the skills. No authentication required; no payment required. All endpoints return JSON.

Base URL: https://api.exchek.us

Full API reference: https://docs.exchek.us/docs/api-reference


eCFR Part endpoints

These endpoints return the full structure of a given CFR Part as JSON. Skills use them to apply regulatory logic with current rule text.

Endpoint Description Used by
GET /api/ecfr/774 15 CFR Part 774 — Commerce Control List (CCL) ECCN Classification, License Determination
GET /api/ecfr/738 15 CFR Part 738 — Commerce Country Chart License Determination, Country Risk
GET /api/ecfr/740 15 CFR Part 740 — License Exceptions License Determination
GET /api/ecfr/742 15 CFR Part 742 — CCL-based Controls (incl. encryption § 742.15) Encryption
GET /api/ecfr/744 15 CFR Part 744 — End-use Controls (Entity List, MEU) ECCN Classification, License Determination
GET /api/ecfr/746 15 CFR Part 746 — Embargoes and Special Controls Country Risk, License Determination
GET /api/ecfr/121 22 CFR Part 121 — U.S. Munitions List (USML) ECCN Classification, Jurisdiction

Full-text search endpoints

Search within a specific Part for a keyword or phrase.

Endpoint Description
GET /api/ecfr/:part/search?q=term Full-text search within a specific Part
GET /api/ecfr/search?q=term&title=15 Search across all Parts in Title 15

Examples:

GET https://api.exchek.us/api/ecfr/774/search?q=pressure+sensor
GET https://api.exchek.us/api/ecfr/746/search?q=Russia
GET https://api.exchek.us/api/ecfr/742/search?q=encryption
GET https://api.exchek.us/api/ecfr/search?q=specially+designed&title=15

Response format

All part endpoints return JSON with a nodes structure. Each node has:

{
  "identifier": "774",
  "label": "Part 774 — The Commerce Control List",
  "children": [
    {
      "identifier": "774.1",
      "label": "§ 774.1 — Introduction",
      "children": []
    }
  ]
}

Skills traverse the node tree to find applicable sections and cite specific parts in the output.


eCFR fallback endpoints

If the ExChek API returns a 503 or is unreachable, skills fall back to the official eCFR developer API:

Endpoint Description
GET https://www.ecfr.gov/api/versioner/v1/structure/current/title-15.json Title 15 (Commerce) — extract Part 774, 738, 740, 742, 744, 746
GET https://www.ecfr.gov/api/versioner/v1/structure/current/title-22.json Title 22 (Foreign Relations) — extract Part 121

The eCFR API requires no key and returns the same node structure.


Trade.gov CSL API (CSL Search skill only)

The CSL Search skill uses the Trade.gov API — a separate system from the ExChek API. This one requires a free API key from developer.trade.gov.

Endpoint Description
GET https://data.trade.gov/consolidated_screening_list/v1/search Search the CSL by name and other parameters
GET https://data.trade.gov/consolidated_screening_list/v1/sources List available source abbreviations

Authentication: API key as a query parameter or header (see developer.trade.gov for exact method).

Key parameters:

Parameter Type Description
name string Party name to search
fuzzy_name boolean Enable fuzzy matching (use with name)
sources string Comma-separated source abbreviations (DPL, EL, SDN, etc.)
countries string ISO alpha-2 codes, comma-separated
size integer Results per page (max 50)
offset integer Pagination offset

Full parameter list: developer.trade.gov


Rate limits and availability

The ExChek API has no documented rate limits for normal skill use. If you encounter a 503, skills automatically fall back to the eCFR API.

The Trade.gov CSL API is maintained by ITA. Check developer.trade.gov for current status and rate limit terms.


Keeping data current

The ExChek API pulls from live eCFR data. Skills call the API at runtime to get current regulatory text — they do not cache Part data between runs.

For manual installations that need offline data, the ExChek refresh script (available in the private repo) can pre-fetch and store Part data locally.

Clone this wiki locally