Realtime queries across environmental, facility and extractives disclosures, five blocks: emissions (Climate TRACE facility-level GHG sources — whose facilities, in which country, how many tCO2e; plus the THETIS-MRV catalog of EU shipping emission-report files), payments (the EITI extractives dataset line by line, classified by IMF GFS revenue codes — who paid whom, where, and how much), facility & carbon-registry master data (the EPA FRS facility master — the authoritative facility key ECHO/TRI/GHGRP converge on; the EU carbon registry's official bulk-download catalog), port state control (Paris MoU current detentions, the ban list, low-performance ISM companies and the historical inspection flow — official ship×management-company edges), and air safety (the EU Air Safety List's official download catalog — third-country carriers banned or restricted, machine-readable XLSX master + 24 language PDFs; the files themselves travel on the batch pipeline). 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 |
|---|---|---|
esg climatetrace_owners |
GLOBAL | Emitting owners (Climate TRACE) |
esg climatetrace_sources |
GLOBAL | Facility-level greenhouse-gas emissions (Climate TRACE) |
esg eiti_companies |
GLOBAL | Extractives disclosing entities (EITI) |
esg eiti_payments |
GLOBAL | Extractives payments to governments, line by line (EITI) |
esg epa_frs_facilities |
US | EPA facility master lookup (FRS) |
esg euasl_datasets |
EU | EU Air Safety List official download catalog |
esg eutl_datasets |
EU | EU carbon registry bulk-download catalog (EUTL) |
esg paris_mou_bans |
GLOBAL | Paris MoU banned ships (embedded management company) |
esg paris_mou_detentions |
GLOBAL | Paris MoU current detentions snapshot |
esg paris_mou_inspections |
GLOBAL | Paris MoU historical inspections window search |
esg paris_mou_low_performance_companies |
GLOBAL | Paris MoU low-performance ISM companies |
esg thetis_mrv_datasets |
EU | EU shipping MRV emission-report file catalog (THETIS-MRV) |
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.
esg climatetrace_ownersEmitting owners (Climate TRACE)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--name |
yes | Owner name (feed the id into climatetrace_sources for facility-level emissions) |
--limit |
no | Rows (cap 50) |
--offset |
no | Rows to skip (ordering is unstable — prefer one large fetch) |
**Note:**Candidates are non-authoritative; upstream ordering is unstable across limits (probed), so fetch enough in one go instead of paging finely; --limit politeness default 50 (upstream tested to 1,000).
**Reading it:**The trace_owner_id (E-prefix) is the authoritative row-face anchor — land the id here first, then query the emissions face per source; group sisters sit side by side in the candidates (Equinor ASA / Energy AS / Brasil), so pick the right subject before going further. Zero hits means the name is not in the owner register — retry with an alias.
esg climatetrace_sourcesFacility-level greenhouse-gas emissions (Climate TRACE)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--owner-ids |
no | Owner id(s), e.g. E100000000766 (comma-joined = union) |
--owner-name |
no | Owner-name shortcut: resolves the first matching owner (XOR with --owner-ids; use the latter to target precisely) |
--year |
no | Emissions year (default = current year; data window starts 2021) |
--gas |
no | Gas measure (default co2e_100yr = tCO2e) |
--limit |
no | Rows (cap 500) |
--offset |
no | Rows to skip (ordering is unstable — prefer one large fetch) |
--sectors |
no | Sector filter, closed set: agriculture / buildings / fluorinated-gases / forestry-and-land-use / fossil-fuel-operations / manufacturing / mineral-extraction / power / transportation / waste, plus the special all_no_forest (wrong values silently return the whole corpus upstream — validated locally) |
--subsectors |
no | Subsector slug (68 upstream values, listed at GET /v7/definitions/subsectors; wrong values get an upstream 400) |
--gadm-id |
no | GADM region id (location family — gadm-id / city-id / country-group / continent: the upstream allows only one at a time, more gets a 400) |
--city-id |
no | Metro-area id (location family, one at a time) |
--country-group |
no | Country-group slug, e.g. eu / aosis / g20 (location family, one at a time) |
--continent |
no | Continent name, e.g. Europe (the upstream counts RUS under Europe; location family, one at a time) |
**Note:**Years outside the data window return null upstream (not an error); the --owner-name convenience flag resolves only the first candidate — for multi-entity groups, land the id on the climatetrace_owners face first, then query by --owner-ids.
Reading it:reason carries the page total directly (4 sources, 61.4M tCO2e for 2024 above) — use it for cross-facility sums instead of hand-adding rows across different gases. --owner-ids accepts a comma-joined union (deduped); --year starts at 2021; --gas defaults to co2e_100yr (tCO2e), and switching to a specific gas moves the row key to emissions_quantity in its native unit.
esg eiti_companiesExtractives disclosing entities (EITI)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--company-name__like |
no | Company name, SQL LIKE match (% / _ wildcards pass through) |
--name |
no | Company-name shortcut: assembled to a %name% contains match (XOR with --company-name__like; use the latter to control wildcards yourself) |
--size |
no | Rows (cap 1000) |
**Note:**Candidates are non-authoritative (like match, ASCII case-insensitive; % and _ in names act as LIKE wildcards verbatim); narrow same-name subjects by UUID / estma_id before persisting — estma_id is an ESTMA (Canadian transparency act) filer number, and filers include foreign companies operating in Canada, not just Canadian firms; hq_country is null for most rows (upstream fill rate 62/10,201).
**Reading it:**Sister entities surface right in the candidate list (Angola Block 31, upstream México all listed); the eiti_id_company UUID is the authoritative anchor. total_matches is the full match count (shown as >10000 when it exceeds ten thousand). 7-day TTL.
esg eiti_paymentsExtractives payments to governments, line by line (EITI)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--eiti-id-company__exact |
no | EITI company id, exact full value (incl. the eiti_id_company: prefix) |
--eiti-id |
no | Bare-UUID shortcut: the eiti_id_company: prefix is auto-added (XOR with --eiti-id-company__exact) |
--company-name__like |
no | Company name, SQL LIKE match (% / _ wildcards pass through) |
--name |
no | Company-name shortcut: assembled to a %name% contains match (XOR with --company-name__like; use the latter to control wildcards yourself) |
--size |
no | Rows (cap 1000) |
**Note:**Prefer the eiti_id_company UUID anchor; the register carries no local registration numbers (estma_id is an ESTMA filer number, present for only some filers) — never join it against company registries. total_rows is the full match count (shown as >10000 when it exceeds ten thousand).
Reading it:payment_value is the original local currency and payment_value_usd the conversion — the USD basis varies across reporting batches, so compare across countries via GFS-code groups, never absolute values across batches. The USD figure in reason is a page subtotal, not the full total — raise --size for more (up to 1,000 rows per call); when the name match hits multiple entities, land the UUID on the eiti_companies face first and query by --eiti-id. 7-day TTL.
esg epa_frs_facilitiesEPA facility master lookup (FRS)
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--registry-id |
no | FRS Registry ID — the authoritative facility key (ECHO/TRI/GHGRP join anchor) |
--primary-name |
no | Facility primary name — EXACT match incl. spaces (the upstream contains/~ operators silently return 0; fuzzy names go through ECHO) |
--state-code |
no | State code, 2-letter (lowercase uppercased locally, e.g. DE) |
--city-name |
no | City name (exact; the seven filters combine as AND, at least one required) |
--country-name |
no | Country name (exact uppercase form, lowercase uppercased locally — GERMANY=110 measured; unlocks the non-US facility slice) |
--site-type-name |
no | Site type (exact uppercase, e.g. STATIONARY=4,725,914 measured) |
--epa-region-code |
no | EPA region (zero-padded two-digit string form '03'; region 10 = 214,197 measured) |
--start |
no | Paging offset (upstream ROWS closed-interval start; the end is computed locally from size) |
--size |
no | Rows (default 50, politeness cap 500) |
**Note:**Seven filter columns (registry_id/primary_name/state_code/city_name/country_name/site_type_name/epa_region_code — the last three added by the 0.3.20 audit) are all EXACT = matches upstream (whole string, spaces included), combinable as AND, at least one required — the bare full-table scan (~5.6M rows) is walled off politely; country_name unlocks the non-US facility slice (FRS is not a US-only library: GERMANY=110, UNITED STATES=3,129,491 rows measured); fuzzy facility-name search does not live here (the upstream contains/~ operators silently return 0 rows) — land the registry_id on the ECHO face first, then come point-lookup.
Reading it:registry_id is EPA's authoritative facility key — facility rows on the ECHO (enforcement/compliance), TRI and GHGRP faces all join back here for the master record; trust std_full_address (the standardized form) for addresses; null columns like operating_status are common (the upstream leaves them unfilled). In this very row state_name=CONNECTICUT contradicts the New Jersey address — the upstream's auxiliary columns (state_name/county_name) are inconsistently populated, so never use them as a second check.
esg euasl_datasetsEU Air Safety List official download catalog
**Note:**A zero-parameter catalog face — one call returns all 25 files, no filters, no paging; the document UUIDs are publish-time content ids, not stable keys, and rotate on every republication (link form /document/download/<uuid>_<lang>?filename=…), so reconcile against this listing and never guess file names; the XLSX/PDF files themselves are not downloadable through this face (the batch pipeline fetches them).
Reading it:master carries the machine-readable XLSX row (same as the first row); the other 24 rows are official-language PDF renditions (language = ISO-639-1 code; the hr rendition carries an _2 suffix on the filename while the language token stays the path segment); download_path is a site path — prepend the transport.ec.europa.eu host for the direct file link. The list itself: Annex A = third-country carriers under an operating ban (~188), Annex B = carriers operating under restrictions and conditions (AIR KORYO / IRAN AIR).
esg eutl_datasetsEU carbon registry bulk-download catalog (EUTL)
**Note:**A zero-parameter catalog face — one call returns all 15 datasets, no filters, no paging; it hands out official URL coordinates only, the csv.gz/xlsx files themselves are not downloadable through it; the climate.ec.europa.eu annual-file URLs carry a document UUID that changes when the upstream reissues a version.
Reading it:cadence comes in three gears: daily = the Azure daily extracts (accounts/operators/holdings csv.gz, host dlsclimabi…), yearly = the European Commission annual files (compliance/verified emissions 2021–2025, host climate.ec.europa.eu), static = the transactions register; url is the official direct link — this face's output is exactly that set of download coordinates, and the files themselves travel on the batch pipeline.
esg paris_mou_bansParis MoU banned ships (embedded management company)
**Note:**Of the 486 rows, 310 carry the management-company key — the rest have null company columns (the upstream leaves them unlinked), so never assume a company edge on every row; the list rolls daily; this face is the ban list, single detention events live in the paris_mou_inspections flow.
**Reading it:**One row per ship ban, with the ISM management-company quartet embedded (company_imo_number / company_name / country) — an official ship×management-company edge straight from the source, whose company IMO key joins directly against shipping-company registers; ban_order_status / ban_reason / minimum_duration are structured enums (VALIDATED / MULTIPLE_OF_DETENTIONS / THREE_MONTHS), and ban_occurrence (First/Second/…) marks the recidivism tier.
esg paris_mou_detentionsParis MoU current detentions snapshot
**Note:**A rolling current-state snapshot — today's 52 ships shift tomorrow (new detentions in, releases out), it is not a historical ledger; coverage is limited to ports of Paris MoU member authorities; for detention history use the paris_mou_inspections windowed search.
**Reading it:**One row per ship currently under detention: the ship IMO number (the asset key) plus ship type, flag, and the detention date/port/authority — the 52 rows here are the full global detention list as of today; take the ship IMO number to vessel registers or company faces for asset matching.
esg paris_mou_inspectionsParis MoU historical inspections window search
Parameters:
| Flag | Required | Meaning |
|---|---|---|
--period-min |
yes | Window start dd/mm/yyyy (upstream periodMin; STRICT day-first — wrong order silently returns zero; required) |
--period-max |
yes | Window end dd/mm/yyyy (upstream periodMax; window <= 3 years enforced locally — longer windows silently empty upstream; required) |
--psc-inspection-regime |
no | Inspection regime (upstream pscInspectionRegime; 1 = PSC default, the only live value — 0 → poisoned 200 empty / 2 → HTTP 500; non-1 walled locally with the evidence) |
--page |
no | Page number (upstream page; the paging switch — this face always sends it, without it upstream ignores limit and dumps the whole window) |
--start |
no | Row offset within page (upstream start; page+start+limit = start-offset paging, page 1/2 verified zero overlap) |
--limit |
no | Rows (default 50, politeness cap 500; upstream fully honors 1000) |
--ism-company-name |
no | ISM management-company name filter (upstream ismCompanyName) |
--ism-company-imo-number |
no | ISM company IMO number filter, 7-digit zero-padded (upstream ismCompanyImoNumber, e.g. 0052193; both padded/unpadded forms accepted upstream — passed through verbatim) |
Note:--period-min / --period-max are required and demand strict dd/mm/yyyy date order — a reversed window silently returns 0 rows; the window spans at most 3 years (a local wall); --psc-inspection-regime 1 is the only live value — 0 draws a poisoned 200 empty and 2 an HTTP 500 upstream, so non-1 values are walled locally with the evidence (measured in the 0.3.20 audit); page via --page (always sent on this face) or --start, with --limit default 50 and politeness cap 500 (the upstream fully honors 1000).
Reading it:reason carries the window statistics (this window: 13,181 inspections / 12,175 ships / 517 detentions / 1,900 ISM deficiencies) — use it directly to size a window's risk surface; result.resume is the same data in structured form (with non_ism_deficiencies / bans too); one row = one inspection, the id key supports per-inspection drill-down (upstream getInspectionDetail); --ism-company-imo-number / --ism-company-name narrow the flow to a given management company.
esg paris_mou_low_performance_companiesParis MoU low-performance ISM companies
**Note:**The list holds only LOW-tier companies — higher-risk performance tiers are not on this face; effect_date is the listing date (it can long predate today, the first example 2012 — years-long low performance), and a null expiry_date means still listed; address columns are null for some rows.
**Reading it:**One row per ISM management company: the company IMO number (7-digit zero-padded, e.g. 0052193) plus address, country, performance / effect_date / status — a rolling 6-month-window list of 65 companies, ready-made for shipping-company risk due diligence; the company IMO key cross-joins the other Paris MoU faces (the ISM columns of bans/inspections).
esg thetis_mrv_datasetsEU shipping MRV emission-report file catalog (THETIS-MRV)
**Note:**A zero-parameter catalog face — one call returns all 8 periods' current files, no filters, no paging; version numbers jump as the upstream regenerates (at capture time 2025 was already v76, 2024 v254), so reconcile against this listing and never guess file names; the XLSX files themselves are not downloadable through this face.
**Reading it:**One row per reporting period = its currently published file: version, regeneration timestamp, file name and download path; the reporting_periods array lists every period on the shelf (2018–2025); download_path is relative — prepend the mrv.emsa.europa.eu host for the direct file link.