This domain answers four kinds of questions. Lists — filter company subjects by registration country (the library spans 10+ countries and regions), or qualification rosters by type, region and year — roster filters take the controlled-vocabulary values verbatim (zh-CN roster scope). One company — its records and disclosures: qualification details, regulator disclosure documents, customer / supplier / subsidiary relationships. European registries — live lookups in the official company registers of Switzerland, Norway and Finland, or search the French national directory by company name, officer name or SIREN. US public companies — identify a registrant by number or name, find its parents, pull its federal contracts, and full-text-search SEC EDGAR filings from 2001 to today. Every result carries an evidence quote and an official source URL you can open.
Every command in this domain — the two library queries plus every direct-lookup face; each has its own section below (what it answers / parameters / a real example / boundaries).
| Command | Jurisdiction | What it answers |
|---|---|---|
company search |
— | Filter company lists by field (qualification / disclosure / subject records; needs access opened) |
company read |
— | Pull one company's full file, tiered by depth (needs access opened) |
company ch_zefix_firm |
CH | ehraid → full Swiss registry record (purpose text, old names, M&A edges) |
company ch_zefix_firm_search |
CH | Swiss company name → registry candidates (Zefix, triple key ehraid/uid/chid) |
company co_rues_companies |
CO | Colombian company name / SoQL → chamber-of-commerce registry rows (RUES) |
company fdic_institutions |
US | US bank registry search (FDIC) |
company fi_ytj_companies |
FI | Finnish name / business-id → company record (YTJ v3) |
company fr_recherche_search |
FR | French company / officer name / SIREN → company record (annuaire) |
company gb_contracts_finder_published_notices |
GB | UK sub-threshold contract notices (Contracts Finder) |
company gb_fts_release_packages |
GB | UK above-threshold contract awards (Find a Tender) |
company gleif_direct_parent |
GLOBAL | LEI → direct parent |
company gleif_lei_records |
GLOBAL | LEI → company identity card |
company gleif_lei_records_search |
GLOBAL | Company name → LEI candidates |
company gleif_ultimate_parent |
GLOBAL | LEI → ultimate controller |
company kr_hometax_biz_status |
KR | Korean business number → open / closed / unregistered (NTS) |
company no_brreg_enheter |
NO | Norwegian name / org number → master record (Brreg) |
company no_brreg_roller |
NO | org number → Norwegian role register (CEO / board / auditors, Brreg) |
company nzco_companies |
NZ | New Zealand company name → register rows (company number + NZBN dual keys, Companies Office) |
company nzco_directors |
NZ | NZ company number → current-directors roster (statutory name / residential address / appointment date) |
company ror_organizations |
GLOBAL | Name / ROR id → research-organization record |
company sec_fulltext_search |
US | Full-text search across SEC filings (EDGAR) |
company sec_submissions |
US | CIK → SEC filer profile |
company ted_notices_search |
EU | EU tender notice search (TED) |
company usaspending_spending_by_award |
US | US federal contracts & grants (by recipient) |
company vies_vat |
EU | EU VAT number official validation (VIES) |
search and read query the built library (available once access is opened) — it holds three record kinds: company (a company subject) / qualification (an official qualification award) / disclosure_document (a regulator disclosure document).
The examples below omit the leading executable name — prepend agentdata (or python -m agentdata ) for a full command.
**Answers:**first-pass screening needs a slice of US-registered company subjects — one command returns the rows, each with its inclusion reason, evidence quote and official source, plus counts per field.
Response shape (available once access is opened):
Reading the result:
rows[].entity — the matched record itself (company / qualification / disclosure document)rows[].reason — why this row is in the result (the inclusion reason)rows[].evidence[] — the evidence: a quote from the original (quote), the official source URL (url), plus the raw file path and content hash (sha256)facets — counts per field you asked for (e.g. how many companies per province)total_matched / next_cursor — total hits and the next-page cursor (feed it back to page through)Parameters:
| Flag | Required | Meaning |
|---|---|---|
--filter |
no | Filter K=V (repeatable; the filterable fields are listed on this page) |
--record-kind |
no | Record kind (closed set; values in the domain spec) |
--facets |
no | Comma-separated fields to return facet counts for |
--level |
no | Read-layer depth (default tier1; see the read layers on this page) |
--limit |
no | Rows per page (default 50, max 1000) |
--cursor |
no | Pagination cursor (feed next_cursor from the response) |
--mode |
no | Special mode: screen (batch screening; requires --input) |
--input |
no | Input JSONL file for batch screening (with --mode screen) |
Undeclared fields are a 400 error (a typo never returns a silent empty result). The Status column updates automatically with the fields actually open at the interface — fields marked Open are filterable; fields marked Not open cannot be filtered. kw keyword search is the disclosure-documents-only 4th dimension.
| filter | Type | Applies to | Description | Status |
|---|---|---|---|---|
company_registration_country |
keyword | company |
Subject registration country: all three forms accepted (Chinese 中国 / ISO2 (CN, TW, KY) / English) — kept separate from the disclosing jurisdiction | Open |
registration_status |
keyword | company |
active / unverified, two states (snapshot, with as_of; finer operating status not ingested) | Open |
industry_cn |
keyword | company |
Industry (CN national economic classification) | Open |
industry_naics |
keyword | company |
Industry (US NAICS, dual track with industry_cn) | Not open |
established_year |
range | company |
Year established | Open |
employee_count / revenue_latest |
range | company |
Size ranges (coverage follows the source; not present ≠ non-compliant) | Not open |
stock_code / us_ticker |
keyword | company |
Securities identifiers, resolved back to the subject via company_listing (never a merge key) | Open |
isin |
keyword | company |
ISIN (same — resolved back to the subject) | Not open |
doc_class |
keyword | disclosure_document |
Controlled vocabulary (问询函 inquiry letters / 行政处罚决定 administrative penalty decisions / market bans / 8-K…) | Open |
issuer_agency |
keyword | disclosure_document |
Issuing authority (CSRC / 上交所 SSE / 深交所 SZSE / SEC / FCA…) | Not open |
doc_date |
range | disclosure_document |
Disclosure date (event semantics) | Open |
disclosed_company_id |
keyword | disclosure_document |
Subject the disclosure is about (strong keys preferred; name-normalization candidates must return their basis) | Open |
kw |
keyword | disclosure_document |
Disclosure-document keyword search (hits the title layer; the hit window is the T2 quote) | Open |
qtype |
keyword | qualification |
Qualification type — zh-CN roster scope, values verbatim (高企 / 小巨人 / 专精特新…; value count in the metrics) | Open |
qualification_year |
range | qualification |
Qualification year (e.g. the Little Giant batch year) | Open |
province |
keyword | qualification |
Province-level division (transcribed from list sources) | Open |
license_no |
keyword | qualification |
License number (operating permits etc.) | Open |
issuing_authority |
keyword | qualification |
Issuing authority | Not open |
effective_from / effective_until |
range | qualification |
Validity interval (active/expired projection) | Not open |
risk_* |
range | company |
Inquiry / penalty / market-ban counts | Not open |
source |
keyword | all |
Source identifier | Open |
source_observed_at |
range | all |
Observation time (snapshot / event / interval semantics) | Not open |
The qtype controlled vocabulary currently holds 42 values. Suggested facets (open fields): doc_class / doc_date(year) / qtype / province / company_registration_country / registration_status.
A misspelled filter field returns 400 undeclared_field — never a silent empty result.
**Answers:**a row from search caught your eye — read pulls that company's full file with one id, as deep as you ask.
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--id |
yes | Subject id (from search result rows) |
--level |
no | Read-layer depth (default tier1) |
| Depth | What you get |
|---|---|
T1 |
Subject card: legal name / registration no. / registration country / year established / industry / company status + listing status + qualification summary + risk-signal counts (inquiries / penalties) + source coverage + "not covered ≠ no risk" |
T2 |
Qualification details (qtype / authority / validity / evidence quote); disclosure-document details (doc_class / date / title / kw hit-window quote of 200–500 characters); relationship details (subsidiary / customer / supplier + attachment basis and assertion grade) |
T3 |
Evidence pack: official URL + fetch time + content hash (sha256) + in-document anchor (table/row/paragraph); disclosure documents via the text_ref text layer |
Depth levels: tier1 the summary card, tier2 full details, tier3 the evidence pack. Every level carries its reasoning, evidence quote and source URL (semantics in the read-layers table above).
The direct-lookup faces skip the library: install the package and they run, querying the official public sources on the spot and returning what those sources hold at that moment. Every result carries the official source URL so you can verify the original. 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.
Examples below are real command output, excerpts only, unmodified — captured 2026-10-23–11-02 (recaptured in flat form 2026-10-27). Figures shift as upstreams update.
The examples below omit the leading executable name — prepend agentdata (or python -m agentdata ) for a full command.
company ch_zefix_firmehraid → full Swiss registry record (purpose text, old names, M&A edges)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--ehraid |
yes | The Swiss commercial-registry number ehraid (search rows carry it) |
**Note:**Takes only the ehraid (search rows carry it); empty M&A arrays mean no declared edges — not missing data.
Reading it:purpose is the registered-purpose text, verbatim in German / French / Italian; old_names is the renaming history; has_taken_over / taken_over_by are M&A edges — predecessors and successors each carry the other side's three keys, and neither renaming nor M&A breaks the ehraid.
company ch_zefix_firm_searchSwiss company name → registry candidates (Zefix, triple key ehraid/uid/chid)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--name |
yes | Company name or fragment (contains match — historical names hit too) |
--max-entries |
no | Rows (upstream maxEntries, default 100) |
--offset |
no | Offset (upstream pagination, walk with --max-entries; cap is the upstream-echoed max_offset) |
**Note:**Candidates are non-authoritative — confirm with the full ch_zefix_firm --ehraid record; the --offset walk cap is the upstream-echoed max_offset.
**Reading it:**Contains-match hits historical names too. Each key has its use: ehraid unlocks the full record via ch_zefix_firm; uid_formatted (CHE-103.650.519) is the cross-database key for Swiss companies; status EXISTIEREND means active (German, verbatim). cantonal_excerpt_web links straight to the cantonal registry excerpt; shab_date is the latest Swiss Official Gazette of Commerce (SHAB) change.
company co_rues_companiesColombian company name / SoQL → chamber-of-commerce registry rows (RUES)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--where |
no | SoQL filter expression passed through verbatim (e.g. razon_social like '%BANCOL%', estado_matricula='ACTIVA'); a base filter keeping company (NIT) rows only is auto-appended |
--limit |
no | Rows per page, 1–500 (default 20) |
--offset |
no | Paging offset, 0-based |
--order |
no | Sort order (e.g. matricula ASC; the upstream rejects NULLS syntax) |
**Note:**Company (NIT) rows only — sole proprietors (registered under a personal id) are outside this query face; the master table has no address column (establishments live in a separate dataset); the legal representative comes as a name without an id number.
Reading it:matricula (registration number) is only unique together with camara_comercio — each chamber numbers its own; numero_identificacion + digito_verificacion form the NIT tax id with check digit; cod_ciiu_act_econ_pri is the primary industry code (4741=retail); estado_matricula is the registry status (ACTIVA=active / CANCELADA=cancelled — this sample row is a cancelled one; historical companies stay searchable); representante_legal is the legal representative's name (public officer information). --where takes a SoQL expression (e.g. razon_social like '%BANCOL%', estado_matricula='ACTIVA') and composes freely.
company fdic_institutionsUS bank registry search (FDIC)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--search |
no | Full-text expression, e.g. NAME:"First National" AND ST:TX |
--filters |
no | Structured filter, e.g. ST:TX AND CITY:Dallas (point-lookup by CERT: CERT:628) |
--limit |
no | Rows to return (default 5) |
**Note:**A CERT maps to exactly one institution; the institution name (brand wording) is never an identity key.
Reading it:active: true = operating and insured. active: false is not "not found" — failed/surrendered/merged-out institutions stay in the registry, with end_date giving the insurance end date. report_date is the master-record reporting period; name is the full legal name (not the brand).
company fi_ytj_companiesFinnish name / business-id → company record (YTJ v3)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--name |
no | Company name (substring semantics — "Nokia" also hits "Nokian Vuokrakodit"; historical and branch names hit too) |
--business-id |
no | Finnish business-id (e.g. 0205709-4; direct lookup) |
**Note:**No paging channel for large result sets (the upstream ignores paging params); a business-id looks like 0205709-4.
**Reading it:**Matching is substring-style and includes historical / branch names: "Nokia" drags in the Fysios physio chain and Tikkurila (a Nokia spin-off) — total_results is the true total (991 here); pin it down with the full name or a --business-id direct lookup. Paging params are silently ignored upstream — a fixed ~63-row page; narrow by a longer name instead.
company fr_recherche_searchFrench company / officer name / SIREN → company record (annuaire)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--q |
yes | One query, three uses: company name / officer name (cross-company mandate search) / direct SIREN lookup |
--page |
no | Page, 1-based (walk while page ≤ total_pages) |
--per-page |
no | Rows per page, 1–25 (default 10; above 25 fails locally without calling upstream) |
--etat-administratif |
no | True status filter: A=active / C=ceased (the upstream default does not filter; lowercase is normalized) |
Note:--q is required; officer-name search aggregates mandates across companies and namesakes are common — narrow and re-check by SIREN before persisting.
Reading it:siren is the French national key; tva is the VAT number (FR + check digits + SIREN); etat_administratif A=active / C=ceased (--etat-administratif filters for real — the upstream default does not); dirigeants is the directors/officers slot (individuals carry name + birth year-month, corporate ones a siren) — querying an officer's name as q searches these slots across companies; siege.siret is the head-office establishment key (SIREN + sequence); categorie_entreprise GE = large enterprise.
company gb_contracts_finder_published_noticesUK sub-threshold contract notices (Contracts Finder)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--name |
no | Company name, local contains filter (this upstream face has no name-search param — a full 100-row page is fetched, then filtered) |
--stages |
no | Stage filter: tender / award (absent = both stages mixed; a wrong value gets an upstream 400 naming the closed set) |
--published-from |
no | Window start, YYYY-MM-DD (default 7 days back) |
--published-to |
no | Window end (default today) |
--limit |
no | Rows, 1–100; with --name this caps matches (each page still fetches 100) |
--cursor |
no | Pagination cursor (pass the same window when walking) |
**Note:**This complements Find a Tender, it does not replace it — above-threshold contracts are not on this face; notices published outside the window are not returned.
Reading it:award_values carries amount / currency / award date (198,930 GBP above); supplier_ids are GB-CFS registry keys (GB-COH company-number form also occurs); window echoes the publication window — the default is the last 7 days, and longer history needs explicit --published-from/--published-to ends. Same full-page-100-then-filter and cursor paging as FTS.
company gb_fts_release_packagesUK above-threshold contract awards (Find a Tender)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--name |
no | Company name, local contains filter (this upstream face has no name-search param — a full 100-row page is fetched, then filtered) |
--stages |
no | OCDS stage: award / tender (default award) |
--limit |
no | Rows, 1–100; with --name this caps matches (each page still fetches 100) |
--cursor |
no | Pagination cursor (feed next_cursor) |
--updated-from |
no | Window start, YYYY-MM-DD or full ISO datetime (bare dates get T00:00:00Z) |
--updated-to |
no | Window end (bare dates get T23:59:59Z) |
**Note:**Contains-matching is the contract, not a defect — zero hits on the current page doesn't mean the base has none (keep paging with the cursor); --stages award|tender splits by stage, award by default.
**Reading it:**The upstream OCDS face has no name-search param — --name is a local contains filter: it fetches a full 100-row page first, then filters (total_in_page records the raw page size) and matched_on states whether the buyer or supplier name matched. supplier_ids are GB-FTS registry keys, ocid the OCDS global key; feed next_cursor back to page.
company gleif_direct_parentLEI → direct parent
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--lei |
yes | The LEI to look up (20 chars) |
**Note:**Only GLEIF-declared relationships count — with no declared parent (including self-reported "no parent"), the face honestly returns 404 "no parent"; no equity inference.
Reading it:direct_parent is a complete identity card (legal name / LEI / status / jurisdiction) — no follow-up lookup needed. For the ultimate parent (top of the control chain), switch to gleif_ultimate_parent with the same LEI. The input is an LEI; if you don't have one, get it via gleif_lei_records_search first.
company gleif_lei_recordsLEI → company identity card
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--lei |
yes | The LEI to look up (20 chars, ISO 17442) |
**Note:**Only a well-formed 20-character ISO 17442 LEI is accepted; malformed input exits 2 without calling upstream. The card reports the official registration only — no subject merging.
**Reading it:**The identity card as registered in GLEIF. entity_status is the company's operating status (ACTIVE = operating); registration.status is the status of the LEI itself (ISSUED = validly issued) — two different things, and a LAPSED registration on an operating company is a common combination. next_renewal_date is the next annual renewal; an overdue LEI loses reference value. registration.registered_as is the national-registry id join key (here the Delaware file number 4348344) — join across registries on it, not on names. bic/mic and legal_form.id (the GLEIF ELF code, T91T here) are slots only the LOU could have captured — null means not captured, not an error. successor_entities is the M&A successor LEI list — upstream names are null in practice, resolve each LEI via this same face (live anchor: Nestlé Canada's successor = 8945002SOXKVMWPWUH46).
company gleif_lei_records_searchCompany name → LEI candidates
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--filter-entity-legal-name |
yes | Legal name or a fragment of it (contains match; official param filter\[entity.legalName\]) |
--filter-entity-jurisdiction |
no | Jurisdiction filter (official param filter\[entity.jurisdiction\]; ISO 3166 country or region code, e.g. CH, US-MO) |
--filter-entity-status |
no | Entity status filter (official param filter\[entity.status\]; ACTIVE/INACTIVE/NULL — entity lifecycle, not registration.status) |
--page-number |
no | Page, 1-based (official param page\[number\]; walk bound = result.page.lastPage) |
--page-size |
no | Candidates cap, 1–200 (default 10) |
**Note:**Candidates ≠ verdicts: zero hits is a legal answer (not an error); confirm with gleif_lei_records before persisting. --page-size caps at 200 rows per call. The jurisdiction param filters, it does not transform — a broad name plus a narrow jurisdiction is the intended use.
**Reading it:**Matching is legal-name contains, not fuzzy tolerance — precise keywords beat exhaustive variants. total is the full match count, not the number returned. Narrow with --filter-entity-jurisdiction (ISO country or region code, e.g. CH, US-MO) or --filter-entity-status (ACTIVE/INACTIVE/NULL). Candidate rows carry registered_as, the national-registry id — present only when the LOU captured it (both examples above are null; live anchor: Nestlé Purina under US-MO = 00007498); join across registries on it, not on names; page.lastPage is the honest walk bound for --page-number.
company gleif_ultimate_parentLEI → ultimate controller
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--lei |
yes | The LEI to look up (20 chars) |
**Note:**Only GLEIF-declared relationships count — with no declared ultimate parent the face honestly returns 404; no equity inference.
**Reading it:**Picking up from the previous face: Bloomberg Finance L.P.'s direct parent is Bloomberg L.P.; the ultimate parent is one level higher still, Bloomberg Inc. — the gap between the two faces is the depth of the control chain. The output is again a complete identity card (no follow-up needed); to walk the chain level by level yourself, call gleif_direct_parent repeatedly.
company kr_hometax_biz_statusKorean business number → open / closed / unregistered (NTS)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--biz-no |
yes | Korean business registration number, 10 digits, hyphens optional (124-81-00998 equals 1248100998) — required at runtime |
**Note:**One number per call — batch checks go one by one (politeness rate limit); this is a status lookup, not a roster source ('list all companies' is not possible); unregistered means the number does not exist or is mistyped — a different thing from closed.
Reading it:state has four values: active (open, tax_type carries the tax-type text verbatim) / closed (deregistered, closed_date is the closure date) / unregistered (the NTS has no such number — a legal answer, not an error) / error (malformed upstream payload, passed through). The number may carry hyphens (124-81-00998) or be 10 bare digits. The lookup is anonymous — no owner name is disclosed.
company no_brreg_enheterNorwegian name / org number → master record (Brreg)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--navn |
no | Company name (the upstream param really is navn — spelling it name gets a 400) |
--organisasjonsnummer |
no | 9-digit org number (direct single record; takes precedence over --navn) |
--page |
no | Page, 0-based (only with --navn search) |
--size |
no | Rows per page (default 20, cap 100) |
Note:--navn is the upstream's real param name (spelling it name gets a 400); with an org number, prefer the direct --organisasjonsnummer lookup; search paging is --page (0-based) and --size (cap 100).
Reading it:organisasjonsnummer is the Norwegian national key — feed it to no_brreg_roller for roles; naeringskode1 is the industry code; antall_ansatte the headcount; negative flags are independent (konkurs bankrupt / under_avvikling in liquidation); the two register bits say whether it is listed in the company register / the VAT register.
company no_brreg_rollerorg number → Norwegian role register (CEO / board / auditors, Brreg)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--organisasjonsnummer |
yes | 9-digit org number (enheter rows carry it) |
**Note:**Takes only the org number (enheter rows carry it); the STYR group shows 1 of the 13 seats captured — the real output is longer, excerpted here.
**Reading it:**The result key is rollegrupper (grouped, not a flat roller list); person slots carry navn + fodselsdato (no national id on the public face — birth dates are for telling namesakes apart), corporate slots go by enhet_organisasjonsnummer — here the REVI group is an audit firm; avregistrert: true marks a relinquished role.
company nzco_companiesNew Zealand company name → register rows (company number + NZBN dual keys, Companies Office)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--q |
yes | Name substring (required; company numbers also hit inside the name index) |
--entity-types |
no | The filter form's own checkbox codes: ALL (default) / LTD / UNLTD / COOP = NZ companies, ASIC / NON_ASIC = overseas |
--start |
no | Paging row offset, 0-based (omitted on the first page) |
--limit |
no | Page size, only 5 and 15 ever observed live (default 15; others unpinned upstream, refused locally) |
**Note:**The search surface is the register's UI (no published API contract) and rides a politeness rate; zero hits are not an error — an empty page comes back (count=0); for current directors feed the company number to nzco_directors.
Reading it:company_number and nzbn (the 16-digit New Zealand Business Number) are the dual official keys — the latter is the cross-government join key; status is the register's own word (Registered / Removed — there is no "Active", carried verbatim untranslated); has_next is derived from the pager's own offsets (no total echo upstream); --entity-types takes the filter form's own checkbox codes (LTD/UNLTD/COOP = NZ companies, ASIC/NON_ASIC = overseas); paging is --start row offset + --limit, with only 5 and 15 ever observed live — other sizes are unpinned upstream and refused.
company nzco_directorsNZ company number → current-directors roster (statutory name / residential address / appointment date)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--company-number |
yes | NZ company number, digits only (104799 = Air New Zealand Limited; find it with nzco_companies first) |
**Note:**The company number is digits only (104799 = Air New Zealand Limited — find it with nzco_companies first); an unknown number answers 404 (upstream_not_found); former directors are outside this face.
**Reading it:**The page H1 confirms company name + number + status together (a number mismatch refuses to emit rows — no cross-company attribution); only current directors return — the ceased/former section renders in different markup and never enters; appointment_date is the register's own wording ("01 May 2025", not ISO-normalized); the residential address is statutory-public in NZ and may arrive partially masked since the privacy-law change — carried verbatim, never reconstructed.
company ror_organizationsName / ROR id → research-organization record
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--query |
no | Organization name search (fixed 20 rows per page) |
--ror-id |
no | ROR id (0+8 chars; bare id or full URL) |
--page |
no | Page number (with --query) |
--all-status |
no | Include inactive / withdrawn organizations — the upstream default returns only active ones, silently hiding the other two states |
**Note:**Candidates are non-authoritative — re-check with the exact --ror-id card before persisting; pages are fixed at 20 rows (--page); zero hits is a legal answer — retry with an alias.
Reading it:ror_id is the stable org key — grant and publication linking hang off it. type is the org type (funder here; also education / company / healthcare …); external_ids bridges libraries — fundref to grant databases, isni to bibliographic databases, grid the legacy id.
company sec_fulltext_searchFull-text search across SEC filings (EDGAR)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--q |
yes | Query term (EDGAR full-text search syntax; quote phrases) |
--forms |
no | Form-type filter, e.g. 8-K,10-K |
--startdt |
no | Start date YYYY-MM-DD (a single end auto-completes to 2001-01-01) |
--enddt |
no | End date YYYY-MM-DD (a single start auto-completes to today) |
--limit |
no | Rows, 1–100 (the upstream page is 100 hits, sliced locally beyond that) |
**Note:**The body layer starts at 2001; earlier filings are outside full-text search.
Reading it:total is the hit count; total_relation: eq = exact, gte = over the count cap (at least this many). Each row's doc_url opens the source document; adsh is the filing accession key, the same key as the official SEC bulk archive. The Texas Mineral Resources Corp. hit above can be followed with sec_submissions --cik — the rename-history example on that face comes from exactly this row.
company sec_submissionsCIK → SEC filer profile
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--cik |
yes | CIK, 1–10 digits (search result rows carry it) |
**Note:**A CIK maps to exactly one registrant (10-digit zero-padded form as upstream serves it); an empty tickers array means no registered trading face, not missing data.
**Reading it:**This example relays with the sec_fulltext_search face below: Texas Mineral Resources Corp., hit by the full-text search, turns out to have been renamed DyTb, LLC in 2026-07 — filing history spans the rename; CIK never breaks. former_names is the chain of former names (with from/to dates); filings_total is the total filing count (recent_filings_count is the recent window only); sic is the industry code; state_of_incorporation is the state of incorporation (DE = Delaware).
company ted_notices_searchEU tender notice search (TED)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--query |
yes | TED query expression (required), e.g. organisation-name-buyer=Siemens* AND organisation-country-buyer=DEU (trailing * = prefix match) |
--fields |
no | eForms fields to return, comma-separated (wrong names get a 400 with the full field dump — copy the correct name from it) |
--limit |
no | Notices per page, 1–250 (default 10) |
--page |
no | Page number |
**Note:**Pages hold 1–250 notices (--limit); prefix names do not consolidate groups — narrow to the target subject by VAT/LEI before persisting.
Reading it:--query passes the upstream expert syntax verbatim: organisation-name-buyer=Siemens* trailing wildcard = prefix match, AND-combines country (ISO-3) / CPV. publication_number is the stable key and xml_url points at the official source notice. has_more: true means more pages.
company usaspending_spending_by_awardUS federal contracts & grants (by recipient)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--recipient-search-text |
yes | Recipient name |
--award-type-codes |
no | Comma-separated award type codes (default A,B,C,D = contracts; grants are 02/03 etc.) |
--start-date |
no | Window start, YYYY-MM-DD (a single end auto-completes the other) |
--end-date |
no | Window end, YYYY-MM-DD |
--fields |
no | Columns to return, comma-separated (default 6) |
--limit |
no | Rows per page, 1–100 (default 10) |
--page |
no | Page number (keep walking while has_more) |
--subawards, --no-subawards |
no | Include subawards (default off) |
**Note:**One window end suffices (the other is auto-completed); give both when narrowing a history window. The default queries contract types A,B,C,D — grants need --award-type-codes 02,03…. Narrow to the target subject by CIK/UEI before persisting.
**Reading it:**Each awards[] row is one award: amount, period, awarding agency (the Department of Defense above). Read the period semantics right: the window matches contracts whose span overlaps it (the long-term contract signed in 2006 therefore hits the 2007Q4 window), not awards starting inside it. has_more: true means more pages (--page walks them). Name matching does not consolidate groups — Lockheed Martin subsidiaries account separately; narrow to a specific subject by CIK/UEI.
company vies_vatEU VAT number official validation (VIES)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--vat |
yes | VAT number with member-state prefix, e.g. DE811907980 |
**Note:**The number must carry the member-state prefix (e.g. DE811907980); whether name/address are disclosed follows each member state's policy.
Reading it:valid: true is the official confirmation; invalid is equally a legal answer (ok: true, valid: false) — not a query failure. null name/address is member-state privacy masking (the raw "---" mapped faithfully), not missing data; the approximate block is a fuzzy-match reference. request_date is there for audit trails.