Realtime queries for due-diligence negative signals and disclosure links: US sanctions & export-control screening (CSL), competition cases (EU DG COMP · UK CMA), US lobbying disclosures (LDA), the UK political-funds register (UK EC), international arms transfers (SIPRI), US regulatory search across the Federal Register, the current Code of Federal Regulations (eCFR), federal/state case law (CourtListener) and UK court judgments (TNA Find Case Law). All commands run locally on your machine with no credentials: no platform-side quota, each upstream's own limits apply, and repeats within a cache lifetime are served from your local cache without hitting it.
Every direct-lookup face in this domain — each has its own section below (one-line positioning / parameters / a real example / boundaries).
| Command | Jurisdiction | What it answers |
|---|---|---|
legal afdb_debarred_entities |
GLOBAL | African Development Bank debarment screening (cross-debarment edges included) |
legal ca_sema_sanctions |
CA | Canada SEMA sanctions screening (persons/entities/ships, IMO join key) |
legal co_sic_sanctions |
CO | Colombian SIC firm-sanctions register search. |
legal courtlistener_opinions_search |
US | US federal & state case-law search (CourtListener) |
legal csl_screening_list |
US | US sanctions & export-control list screening (CSL) |
legal dgcomp_cases_search |
EU | EU competition case search (DG COMP) |
legal ecfr_search |
US | US federal regulations search (eCFR) |
legal ecfr_titles |
US | US federal regulations title map (eCFR) |
legal federalregister_documents |
US | US Federal Register document search |
legal gb_cma_case |
GB | Single CMA case dossier (history + decision documents) |
legal gb_cma_cases |
GB | UK Competition & Markets Authority case search |
legal gb_ec_donations |
GB | UK political donations (Electoral Commission) |
legal gb_ec_loans |
GB | UK political loans (Electoral Commission) |
legal gb_gazette_notices |
GB | UK official gazette notice search (The Gazette, insolvency-code preset) |
legal gb_tna_caselaw_judgment |
GB | Single UK judgment dossier (party roles / judges / full text) |
legal gb_tna_caselaw_search |
GB | UK court-judgment search (The National Archives Find Case Law) |
legal idb_debarred_entities |
GLOBAL | Inter-American Development Bank sanctions search (violation family × cross-debarment marker) |
legal ie_revenue_defaulters |
IE | Irish Revenue tax-defaulters list (court penalties / settlements, two tables) |
legal lda_filings |
US | US lobbying disclosure search (LDA) |
legal sipri_trades_search |
GLOBAL | International arms-transfer search (SIPRI) |
legal us_occ_enforcements |
US | US OCC monthly enforcement actions (bank orders/CMPs + IAP prohibition orders, docket key) |
legal wb_debarred_firms |
GLOBAL | World Bank debarred firms (SUPP_ID shared with the award stream) |
The examples below are real command output, excerpts only, unmodified. Queries are realtime — running a command returns whatever the official source holds at that moment, so figures shift as upstreams update.
The examples below omit the leading executable name — prepend agentdata (or python -m agentdata ) for a full command.
legal afdb_debarred_entitiesAfrican Development Bank debarment screening (cross-debarment edges included)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--name |
no | Entity or individual name — matches any part of the name, ignoring case |
--type |
no | Subject type: FIRM or INDIVIDUAL (exact match, ignoring case) |
--basis |
no | Debarment reason — matches any part of the Basis text. Cross-debarments are marked by bank token (WBG / ADB / IDB / EBRD), and the same marker is written both with spaces and with hyphens, so match the token alone |
--limit |
no | Rows to return, 1–100 (default 20). The whole register is screened locally, so total_matched in the result is the exact number of hits |
**Note:**Upstream punctuation is inconsistent ("CROSS DEBARMENT : WBG" with spaces vs "CROSS-DEBARMENT: ADB" hyphenated) — --basis is a contains-match, don't quote the full phrase; individual rows ship surnames in full caps (ATABEKOV), verbatim. The site sits behind a Cloudflare UA-fingerprint gate; the SDK carries the full browser-header suite built in, nothing to configure.
**Reading it:**An empty To means the debarment is ongoing (169 rows ship that way); Basis is itself the cross-debarment edge — the four MDBs honouring each other's debarments, self-evidenced here. Narrow with --type FIRM/INDIVIDUAL and --basis by bank token (WBG/ADB/IDB/EBRD). The whole register is cached for 24h; any number of screenings after that cost no network.
legal ca_sema_sanctionsCanada SEMA sanctions screening (persons/entities/ships, IMO join key)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--name |
no | Designated name — matches any part of the name or of an alias, ignoring case; the result echoes which one hit |
--country |
no | Country — matches any part of the country cell, which is written in both languages (Syria and Syrie both hit) |
--limit |
no | Rows to return, 1–100 (default 20). The whole list is screened locally, so total_matched in the result is the exact number of hits |
**Note:**Tags and values are bilingual, verbatim (paired tag names like Country-Pays, values like "Syria / Syrie", ship types carrying a pipe between the language halves); a few EntityOrShip values ship a trailing semicolon — upstream data quality, kept as-is; person rows assemble GivenName × LastName with the surname in full caps.
Reading it:--name screens both the primary name and aliases (matched_on echoes the hit face); --country is a contains-match over the bilingual cell — Syria and Syrie both hit. 731 ship rows carry an IMO number (ship_imo), joining straight onto the THETIS-MRV / Paris MoU faces. The 2.9MB register is cached for 24h.
legal co_sic_sanctionsColombian SIC firm-sanctions register search.
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--where |
no | SoQL filter passed through verbatim (e.g. upper(multado) like '%ECOPETROL%' — multado is the sanctioned-party column; 3,938 firm sanctions since 2013) |
--limit |
no | Rows per page, 1–500 (default 20) |
--offset |
no | Paging offset, 0-based (no total echo on this register — page by offset) |
--order |
no | Sort order (e.g. fecha_emitida DESC; the default is ingestion order, not time) |
**Note:**The company key is the sanctioned-party name (the multado column, name-only — the register carries no NIT column; joining onto co_rues_companies NITs is the corpus line's job); filter by name via --where 'upper(multado) like '%ECOPETROL%'' (raw SoQL passthrough); no total echo on this register — page by --offset, don't guess depth from the reply.
Reading it:$order is the only sorting channel (the default is ingestion order, not time — page the register newest-first with --order "fecha_emitida DESC"). The seven columns pass through verbatim with no masking slot: multado includes individual names, the SIC's own public record. 24h TTL (Socrata anonymous tier, same platform as co_secop/co_rues).
legal courtlistener_opinions_searchUS federal & state case-law search (CourtListener)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--q |
no | Full-text query |
--case-name |
no | Case-name filter |
--court |
no | Court id, e.g. calctapp / scotus |
--judge |
no | Judge name filter |
--docket-number |
no | Docket number filter |
--filed-after |
no | Filed on/after YYYY-MM-DD |
--filed-before |
no | Filed on/before YYYY-MM-DD |
--order-by |
no | Sort, e.g. score desc |
--cursor |
no | Opaque cursor (feed next_cursor) |
**Note:**The full ~8.3M-opinion corpus travels on the S3 batch line — this is the search face, not bulk download; give at least one search condition.
Reading it:citations holds the citation form (report-ready as-is); court names the court and --court narrows by court id (e.g. scotus / calctapp); --case-name / --judge / --docket-number / --filed-after filter further. Upstream pages are fixed at 20 rows — feed next_cursor back to page.
legal csl_screening_listUS sanctions & export-control list screening (CSL)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--name |
no | Subject name (substring, case-insensitive; matches name + alt_names; required — a missing name returns a JSON usage-error envelope) |
--source |
no | List-family filter, substring (e.g. "Entity List", "SDN", "Sectoral") |
--type |
no | Subject type: Entity / Individual / Vessel / Aircraft (many rows carry no type) |
--limit |
no | Rows (default 20, cap 100; total_matched echoes the full count) |
**Note:**Zero hits = a clean screen (a legal answer, not an error); --source / --type narrow by list family / subject type; this face covers the US consolidated lists only — UN/EU/UK lists are not in it.
Reading it:matched_on names the matching face — a document saying “Rosneft Oil Company” still lands the full-name row through the alt_names pool, so don't stop at the first row; total_matched is the full-register hit count (10 here, across SDN/SSI and other families). source_list names the list family and agency. The full CSV is cached 24h and scanned locally — no per-query upstream calls.
legal dgcomp_cases_searchEU competition case search (DG COMP)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--query |
no | Raw ES bool query, JSON text, e.g. {"bool":{"must":\[{"term":{"caseInstrument":"SA"}}\]}} |
--name |
no | Party/case-name shortcut: text query over caseTitle and two sibling fields (XOR with --query; use --query for raw DSL) |
--instrument |
no | Case type: AT antitrust / M merger / SA state aid / DMA Digital Markets Act |
--text |
no | Extra full-text condition (empty = none) |
--page |
no | Page number |
--limit |
no | Rows, 1–100 (larger asks silently yield 100) |
**Note:**A hit means the case/party name contains the term (wide recall — human review required); results are case cards — follow each row's official link to the case page for decision documents. --limit caps at 100 — larger asks silently return 100 (probed upstream).
Reading it:--instrument AT/M/SA filters by case type (antitrust / merger / state aid) — the SA face is a state-aid event stream. case_number is the stable key; decision documents come from each row's official link. 7-day TTL.
legal ecfr_searchUS federal regulations search (eCFR)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--q |
no | Topic term (required — otherwise a JSON usage-error envelope) |
--page |
no | Page number (default 1) |
--limit |
no | Rows (default 20, cap 100) |
--date |
no | Point-in-time date YYYY-MM-DD — section versions in force on that date (omit = current text; e.g. asbestos: 1,436 sections current vs 339 at 2024-01-01) |
Note:--q is required (a missing one returns a JSON usage-error envelope, not a crash); --limit caps at 100; hit counts are section-level, not full-text-level — for full-text search over the Federal Register's daily release stream use federalregister_documents.
**Reading it:**Hits are a section-level version stream — a provision amended repeatedly yields multiple rows, one per effective window (the two evidence rows above are consecutive versions of the same appendix); coords is the legal citation and hierarchy/headings carry the same coordinate in structured and human-readable form (hit terms carry <strong> highlighting); excerpt is a highlighted, ellipsized window of the source text; --date point-in-time search (e.g. 2024-01-01) keeps only versions in force that day — asbestos shrinks from 1,436 current sections to 339.
legal ecfr_titlesUS federal regulations title map (eCFR)
**Note:**A zero-parameter catalog face — all 50 titles return in one call, no filters, no paging; it is the title-level catalog, section-level queries go through ecfr_search.
Reading it:number+name are the title number and name (the volume you cite CFR by, e.g. 40 = environmental protection); latest_amended_on is the last amendment date and latest_issue_date the last issue date (two different semantics); as_of is the library-wide integration watermark (eCFR integrates daily); title 35 is a reserved placeholder (all date columns null) — 49 titles are actually in force.
legal federalregister_documentsUS Federal Register document search
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--q |
yes | Query term (quoted phrases go exact) |
--startdt |
no | Publication date YYYY-MM-DD from (a bare end auto-completes to 1994-01-01) |
--enddt |
no | Publication date to (a bare start auto-completes to today) |
--order |
no | Result order: relevance / newest / oldest / executive_order_number (the fourth sorts by executive-order number) |
--doc-type |
no | Document type, closed set: RULE / PRORULE / NOTICE / PRESDOCU (wrong values silently yield 0 rows upstream — validated locally) |
--agencies |
no | Agency slug, e.g. environmental-protection-agency (the full list lives at GET /api/v1/agencies) |
--cfr-title |
no | CFR title number, e.g. 40 (environment) |
--cfr-part |
no | CFR part or range, e.g. 763 or 1-50 (requires --cfr-title) |
--page |
no | Page number |
--limit |
no | Rows (cap 50 — a platform-side limit; the upstream allows 1000) |
**Note:**Coverage starts at 1994; --limit politeness cap 50 (upstream allows 1000); quoted phrases match exactly.
Reading it:document_number is the stable key (citations and full-text retrieval hang off it); type is the document type (Rule / Proposed Rule / Notice …); a single date end auto-completes the other (1994-01-01 / today).
legal gb_cma_caseSingle CMA case dossier (history + decision documents)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--slug |
yes | Case slug (from gb_cma_cases rows; pasting the full gov.uk link also works — the prefix is stripped) |
**Note:**The single-case face requires --slug — take it from an gb_cma_cases row (pasting the full gov.uk link also works, the prefix is stripped); a slug outside the register returns zero rows.
Reading it:content_id is the stable UUID key (list rows don't carry it — persist against it); change_history runs newest→oldest, [0] is the latest development (this case has only its First published entry); attachments holds the decision/notice PDF family — this case's Google-BeatThatQuote.pdf opens directly; body_html is the case page's summary verbatim. This one is an OFT-era transferred record (the description says "OFT closed case") — cases from before competition powers moved into the CMA in 2014 are still covered.
legal gb_cma_casesUK Competition & Markets Authority case search
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--q |
no | Case query (matches titles/descriptions; omit to enumerate the full ~2,600-case register — case names are party pairs, e.g. "Google / BeatThatQuote.com") |
--count |
no | Rows per page, 1–100 (default 20; the 100 cap is our politeness limit — the upstream has no wall) |
--start |
no | Offset pagination: row to start from (default 0) |
**Note:**Upstream is param-minimalist: only --q/--count/start (organisations/order combos return 422); list rows carry no content_id (upstream _id is the page path, not a UUID — don't use it as a key).
Reading it:slug is the join key — agentdata legal gb_cma_case --slug <row slug> fetches the full dossier (the stable content_id UUID lives on the detail face; change_history runs newest→oldest, [0] is the latest development; attachments holds the decision/notice PDFs). --count is politeness-capped at 1-100; omit --q to enumerate the whole live register (~2,591 cases).
legal gb_ec_donationsUK political donations (Electoral Commission)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--query |
yes | Donor / regulated-entity name (contains match; required) |
--from |
no | Window start YYYY-MM-DD (default = register origin 2001-02-16) |
--to |
no | Window end (default today) |
--start |
no | Offset |
--limit |
no | Rows, 1–50 (larger asks silently yield 50) |
**Note:**Donor names use the full legal form (J C Bamford Excavators Ltd ≠ the brand "JCB") — try both forms. --limit caps at 50 (upstream hard clamp); page deeper with --start.
Reading it:--from/--to defaults to the register's full history (from 2001-02-16); ec_ref is the official lookup anchor. 24h TTL (quarterly cadence).
legal gb_ec_loansUK political loans (Electoral Commission)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--query |
yes | Lender / borrower name (contains match; required) |
--start |
no | Offset |
--limit |
no | Rows, 1–50 (larger asks silently yield 50) |
**Note:**Lender names use the full legal form too (try both forms); --limit caps at 50 (upstream hard clamp); page deeper with --start.
**Reading it:**Zero hits is a legal answer, not a failure — no political loan on record is a different statement from "no donations either"; never read the two faces as one. The upstream loans endpoint takes no date-window parameters (only the donations face has --from/--to). 24h TTL.
legal gb_gazette_noticesUK official gazette notice search (The Gazette, insolvency-code preset)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--text |
no | Full-text contains term (over the notice body and title) |
--noticetypes |
no | Notice code(s), comma- or +-joined (e.g. 2410,2432) — event filtering is by notice code only; the lookalike noticecode= param is ignored upstream, so rewrite commands copied from elsewhere onto this one |
--insolvency |
no | The corporate-insolvency code-chapter preset (13 codes: winding-up resolutions, liquidator appointments, administrators, cessations…), union'd with --noticetypes |
--start-date |
no | Publish-window start YYYY-MM-DD |
--end-date |
no | Publish-window end YYYY-MM-DD |
--page |
no | Page number (default 1) |
--page-size |
no | Rows per page, 1–100 (default 20; 100 is the upstream hard cap) |
--sort |
no | Sort: latest-date (default) or oldest-date |
**Note:**Give at least one filter (--text/--noticetypes/--insolvency/a date window) — a bare search means enumerating all 4,887,099 notices and is refused locally; whole-register needs go through the official bulk-download batch line, this is a targeted search face. Upstream page-size hard cap: 100.
**Reading it:**Event filtering is by notice code only: --insolvency expands the 13-code corporate-insolvency chapter (2432 liquidator appointment, 2410 administrator, 2431 winding-up resolution…) or build your own with --noticetypes. On modern rows title is the company name and placed_by the insolvency practitioner; on legacy 2002 migration rows title = the category and placed_by = "User Migration" — the company name lives in content (the example is that shape). The upstream total arrives as a string and is converted locally.
legal gb_tna_caselaw_judgmentSingle UK judgment dossier (party roles / judges / full text)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--document-uri |
yes | Document URI (any of the three uri forms from search rows: legacy ewhc/admin/2026/2298, new-style d-, tna.; a pasted full link is stripped automatically) |
**Note:**Same Open Justice Licence gate: targeted fetches are fine, feeding them to bulk computational analysis requires the (free) licence first; text is extracted plain text, not the typeset original — for report citations defer to the official XML at the row's data_url.
Reading it:parties are the official party-to-role edges (the XML's as="#claimant" mapped to claimant/defendant, companies and individuals mixed) — more reliable than guessing from the "A v B" title; text is the plain-text extraction of the judgment body (text_length is the full size — the example is trimmed); --document-uri takes all three uri forms from search rows, and a pasted full link is stripped automatically.
legal gb_tna_caselaw_searchUK court-judgment search (The National Archives Find Case Law)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--query |
no | Full-text query (a quoted phrase matches words in order) |
--court |
no | Court code, repeatable (e.g. uksc ewhc; tribunal codes also go here) |
--tribunal |
no | Tribunal code, repeatable (alias segment of court, e.g. eat) |
--party |
no | Party name, full-word match (e.g. Barclays — partial words don't hit) |
--judge |
no | Judge name, full-word match |
--order |
no | Sort: date/-date (default newest first)/updated/-updated/transformation/-transformation |
--page |
no | Page number (total pages in the result's total_pages) |
--per-page |
no | Rows per page, 1–50 (default 50 = the upstream default and our politeness cap) |
--minimum-availability |
no | Minimum representation level: metadata/document/full-text (default full-text) |
**Note:**Open Justice Licence: reuse including commercial is allowed, but bulk computational analysis is forbidden until you apply for the (free) licence — keep this a targeted search face, not a whole-library crawl; the official rate is 1,000 requests per rolling 5 minutes and we pace at half of it.
Reading it:neutral_citation is the official citation (report-ready as-is); uri is the per-judgment join key in three coexisting forms (legacy ewhc/admin/2026/2298, new-style d-<uuid>, tna.<fcid>); --party/--judge match whole words only (Barclays hits, fragments don't); repeat --court to narrow to several courts; total_pages comes straight from the feed header — page with --page; each row's contenthash tells you whether the version changed.
legal idb_debarred_entitiesInter-American Development Bank sanctions search (violation family × cross-debarment marker)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--q |
no | Full-text search across every field of the register (the register's own q parameter) |
--filters |
no | Filter by field values, as JSON text of field→value exact matches (the register's own filters parameter), e.g. {"To": "Ongoing"} or {"Entity": "Firm"} |
--limit |
no | Rows per call, 1–100 (default 20) — the register is queried live, so this is the page size |
--offset |
no | Rows to skip before the first row returned (the register's own offset parameter); the result carries the register's total row count |
--sort |
no | Sort order, e.g. "From desc" (the register's own sort parameter) |
**Note:**The live register counts 1,343 (the census-era 2,603 counts cumulative history — don't mix the two); /dataset/download/<id>/csv returns dataset metadata, not rows — row data lives on datastore_search; Country / Prohibited Practice ship leading spaces upstream, which the SDK trims at the mapping layer.
**Reading it:**The one server-side search face of the debarment line — --q full-text, --filters exact-match JSON (e.g. '{"To": "Ongoing"}'), --offset paging, include_total always sent (so total is exact). From arrives as nanosecond text ("2015-06-09 00:00:00.000000000"), kept verbatim.
legal ie_revenue_defaultersIrish Revenue tax-defaulters list (court penalties / settlements, two tables)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--part |
no | List part: 1 = court-determined penalties (issue type/fine/sentence/charges), 2 = Revenue settlements (five amount columns + unpaid) — the two parts are two different tables and the result's kind echoes the row schema (default 1) |
--year |
no | Publication year (together with --month; omit for the latest quarter on the index) |
--month |
no | Quarter name: march/june/september/december (together with --year) |
**Note:**Names and addresses are statutory-published content (the Section 977 TCA 1997 quarterly obligation) — a public register carried verbatim, not leaked data; the list is the court-confirmed / above-threshold subset, so absence ≠ clean; --year and --month must be given together.
Reading it:****--part picks between two different tables: part 1 = court-determined penalties (issue type/fine/sentence/charges), part 2 = Revenue settlements (five amount columns + unpaid), with kind echoing the row schema. A fine of 0 is a fact, not "no data"; on part 2 an empty unpaid = fully settled. Omit year/month to take the latest quarter on the index; the index lists the current year only — older years live on archive pages this face deliberately does not walk.
legal lda_filingsUS lobbying disclosure search (LDA)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--client-name |
no | Lobbied company name (contains match) |
--registrant-name |
no | Lobbying firm name |
--filing-year |
no | Filing year (from 1999) |
--page |
no | Page number (upstream pages hold at most 25 rows) |
--ordering |
no | Sort (default -dt_posted) |
--limit |
no | Rows, 1–25 (larger asks silently yield 25) |
**Note:**Intermediary filings carry "OBO" (on behalf of) in the client name — brand-name queries miss subsidiary filings; try both names. --limit caps at 25 (upstream hard clamp); page deeper with --page.
Reading it:--registrant-name switches the view, --filing-year narrows the filing year (from 1999); income/expenses appear on quarterly filings only (Q1–Q4). Filing documents link directly via document_url. 7-day TTL.
legal sipri_trades_searchInternational arms-transfer search (SIPRI)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--filters |
no | Raw filter list, JSON text, e.g. \[{"field":"Recipient","listData":\[8\]}\] (countries are numeric ids) |
--supplier |
no | Supplier-country shortcut: full English name, e.g. United States (XOR with --filters; the name is resolved to its numeric id) |
--recipient |
no | Recipient-country shortcut: full English name, e.g. Angola (XOR with --filters; the name is resolved to its numeric id) |
--type |
no | Measure: delivered = trend-indicator value / orders = orders placed |
--page |
no | Page number |
--limit |
no | Rows (cap 100) |
**Note:**Use full English country names (United States / Soviet Union); zero hits is a legitimate answer, not a failure (e.g. United States→Angola has no major transfers on record) — try another supplier; order_year_est/units_est are SIPRI estimate flags. --limit caps at 100.
**Reading it:**A country-level view, not company-level (buyer/seller are country names) — positioned as a geopolitical risk signal; --type delivered/orders switches the measure. resolved_countries shows the upstream entity ids the country names resolved to. 30-day TTL.
legal us_occ_enforcementsUS OCC monthly enforcement actions (bank orders/CMPs + IAP prohibition orders, docket key)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--year |
no | Year 2005–current (the by-year news-release listing range; default = this year) |
--month |
no | Full month name January–December — picks that month's enforcement release (omit for the year's latest) |
--all |
no | Walk every enforcement release of the year (rows carry their release_nr) |
**Note:**Month selection crosses eras: 2026+ titles carry "for October 2026", 2020/2010 titles carry no month — the listing's date column is the fallback; requesting a missing month lists what each release of the year actually covers. The year floor is 2005 (the verified listing range); actions back to 1989 live in the EASearch database, deliberately out of SDK scope (the docket number is the official join key). A published release is immutable (TTL 30d); the by-year listing grows monthly (12h). Row counts drift with the month's release (2026-10 is a 4-row small month; the 2020-02 table form carries 20).
Reading it:****Three row shapes by kind: bank (sentence-form bank actions — action types × institution × state × violations × cmp_amount × dockets × order PDFs on action_docs), iap (individual prohibition orders: name/role/reason — statutory public disclosure, the co_sic precedent), order (≤2020 table rows: ea_no/who/state/date/order_type, with the name+bank+city crammed into one cell and split at the last comma). cmp_amount scales the "$750 million" wording (→ 750000000). The multi-entity variant ("against three subsidiary banks of X : B1 ; B2 ; and B3" sharing one allegations sentence) explodes to one row per bank with holder/holder_city/holder_state carrying the parent, abbreviated dockets ("55, 56, and 57") kept verbatim. No --month = the year's latest enforcement release; --all walks every one of the year.
legal wb_debarred_firmsWorld Bank debarred firms (SUPP_ID shared with the award stream)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--name |
no | Supplier name — matches any part of the name, ignoring case |
--country |
no | Country — matches any part of the country name, or the two-letter country code exactly (China and CN both hit) |
--type |
no | Supplier type: F firm, I individual, U unspecified, C conglomerate (exact match, ignoring case) |
--limit |
no | Rows to return, 1–100 (default 20). The whole register is screened locally, so total_matched in the result is the exact number of hits |
**Note:**The DNB/REGISTER identifier fields ship empty across the register — joins go through name × country; the row count drifts as the live register regenerates (1,546 at admission → 1,540 at acceptance); the row's "Cross Debarment: AfDB" cross-checks against the same-name row on the afdb face (both registers end 2027-10-23). The gateway apikey is a page-embedded browser-public constant, not a registration credential.
Reading it:--country matches either channel: a name substring or the LAND1 code (China/CN both hit). DEBAR_TO_DATE 2999-12-31 is the indefinite-sentinel, kept verbatim. SUPP_ID is the WB supplier key — the same key as awarded_firms[].supp_id on wb_procnotices, so the award × debarment cross-check runs between those two faces.