Skip to main content
Every filter value the API understands, generated from the same objects the server validates against. This page cannot describe a value the API does not accept, or omit one it does.

How to read this page

Values come in three kinds, and the difference decides what you can safely build on. Mixing them up is not a documentation nicety — it is the difference between a filter that is exhaustive and one that quietly is not. Live, machine-readable version of this whole page, including a sha256 you can pin against: GET /api/v2/meta/enums. It is unmetered — checking a value before you spend a query unit on a request that would fail should not itself cost a query unit.

Closed vocabularies

region

Closed vocabulary — 19 values. This is the authoritative set. Anything else is rejected with 400 INVALID_REGION, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Africa · Asia · Middle East · Northern Africa · Western Africa · Eastern Africa · Middle Africa · Southern Africa · Europe · Eastern Europe · South Asia · Southeast Asia · East Asia · Central Asia · North America · Central America · Caribbean · South America · Oceania Accepted by: region On: /api/v2/events · /api/v2/stories · /api/v2/events/summary · /api/v2/stories/summary · /api/v2/facilities

continent

Closed vocabulary — 6 values. This is the authoritative set. Anything else is rejected with 400 INVALID_CONTINENT, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Africa · Asia · Europe · North America · South America · Oceania Accepted by: continent On: /api/v2/events · /api/v2/stories · /api/v2/events/summary · /api/v2/stories/summary · /api/v2/facilities

event_category

Closed vocabulary — 16 values. This is the authoritative set. Anything else is rejected with 400 INVALID_CATEGORY, and the error carries details.accepted_values so a caller can self-correct without reading this page.
The union of the 6 ACLED event types (Conflict family) and the 10 CAMEO+ domains. The family is implied by the category, which is why event_family is deprecated. Battles · Protests · Riots · Explosions/Remote violence · Violence against civilians · Strategic developments · POLITICAL · CRIME · ECONOMIC · CORPORATE · TECHNOLOGY · INFRASTRUCTURE · ENVIRONMENT · HEALTH · DEMOGRAPHIC · INFORMATION Accepted by: category, event_category On: /api/v2/events · /api/v2/stories · /api/v2/events/summary · /api/v2/stories/summary

story_category

Closed vocabulary — 22 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Two spellings of ONE vocabulary. The cameoplus_* / conflict_security forms are what the story layer stores and what a response echoes back; the bare CAMEO+ domain forms (CORPORATE, CONFLICT, …) are what the event taxonomy and the published examples use. Send either — they resolve to the same filter. /api/v2/share-of-voice?category= takes the identical set. conflict_security · cameoplus_political · cameoplus_crime · cameoplus_economic · cameoplus_corporate · cameoplus_technology · cameoplus_infrastructure · cameoplus_environment · cameoplus_health · cameoplus_demographic · cameoplus_information · CONFLICT · CORPORATE · CRIME · DEMOGRAPHIC · ECONOMIC · ENVIRONMENT · HEALTH · INFORMATION · INFRASTRUCTURE · POLITICAL · TECHNOLOGY Accepted by: story_category On: /api/v2/stories · /api/v2/stories/summary

event_family

Closed vocabulary — 2 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
conflict · cameoplus Accepted by: event_family On: /api/v2/events · /api/v2/stories · /api/v2/events/summary

cameoplus_domain

Closed vocabulary — 10 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
POLITICAL · CRIME · ECONOMIC · CORPORATE · TECHNOLOGY · INFRASTRUCTURE · ENVIRONMENT · HEALTH · DEMOGRAPHIC · INFORMATION Accepted by: domain On: /api/v2/events · /api/v2/stories · /api/v2/events/summary · /api/v2/stories/summary

sort

Closed vocabulary — 2 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
significance · recent Accepted by: sort On: /api/v2/events · /api/v2/stories

event_group_by

Closed vocabulary — 8 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
The bucket key /api/v2/events/summary groups by. source_actor_country and target_actor_country bucket by actor ORIGIN — which country the acting or receiving side represents — rather than by where the event happened, which is what country does. /api/v2/stories/summary spells group_by over a SHORTER list (a Story has no actors of its own); other surfaces have their own dimensions and are not this list. date · country · region · continent · category · subcategory · source_actor_country · target_actor_country Accepted by: group_by On: /api/v2/events/summary

story_group_by

Closed vocabulary — 6 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
The bucket key /api/v2/stories/summary groups by. Deliberately shorter than the Events list: a Story carries no source/target actor, only an undirected set of its linked events’ actor origins, so it cannot bucket by acting versus receiving side. date · country · region · continent · category · subcategory Accepted by: group_by On: /api/v2/stories/summary

country_match

Closed vocabulary — 2 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Which definition of “in this country” the country, region and continent filters apply. The default is deliberately the wide one — a French company sanctioned in Washington is a French story — so a caller who never sets it keeps the answer they have always had. Measured on 2026-08-12, a country=United States event summary returned 13.7% of its events located outside the United States under the default; country_match=location is how you exclude them. The value in force is echoed back as applied_filters.country_match whether or not you sent it. Accepted by: country_match On: /api/v2/events · /api/v2/stories · /api/v2/events/summary · /api/v2/stories/summary

entity_match

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Controls why an entity-scoped Event or Story is eligible. Failed or unavailable material attribution never falls back to broad coverage: the request returns 503 ENTITY_ATTRIBUTION_UNAVAILABLE. Use entity_match=coverage only when broad story co-occurrence actually answers the intended question. Accepted by: entity_match On: /api/v2/events · /api/v2/stories · /api/v2/events/summary · /api/v2/stories/summary

entity_type

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Stored and published here in upper case, but MATCHED CASE-INSENSITIVELY — parseEntityTypes lowercases the input, and the endpoint’s own 400 message tells you to send lower case. Both work. This list is the value space, not the required spelling. PERSON · ORGANIZATION · PLACE Accepted by: type On: /api/v2/entities · /api/v2/search

facility_type

Closed vocabulary — 21 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
coal_plant · oil_gas_plant · nuclear_plant · geothermal_plant · bioenergy_plant · hydropower_plant · solar_farm · wind_farm · coal_mine · oil_gas_field · iron_ore_mine · coal_terminal · lng_terminal · gas_pipeline · oil_pipeline · lng_carrier · port · steel_plant · cement_plant · chemical_plant · data_center Accepted by: type On: /api/v2/facilities

facility_class

Closed vocabulary — 6 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
power · extraction · transport_logistics · ports · heavy_industry · digital_infrastructure Accepted by: class On: /api/v2/facilities

facility_source_silo

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
gem · maritime_ports · epoch Accepted by: source On: /api/v2/facilities

facility_context_include

Closed vocabulary — 1 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
gov Accepted by: include On: /api/v2/facilities/{facility_id}/context

chokepoint

Closed vocabulary — 11 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
A curated set of maritime chokepoints, each defined by a bounding box that the AIS ingest subscribes to — so a position is TAGGED with one of these at write time and the warehouse can never hold a value outside the list. Open water carries an empty tag and is excluded from transits. Adding one is a code change plus new ingest coverage, not a data change. hormuz · bab_el_mandeb · malacca · suez · panama · bosphorus · gibraltar · dover · kerch · taiwan · danish_straits Accepted by: chokepoint On: /api/v2/maritime/transits · /api/v2/maritime/vessels · /api/v2/maritime/dwell · /api/v2/maritime/gaps · /api/v2/maritime/activity · /api/v2/maritime/tracks · /api/v2/maritime/chokepoint-watch

min_harbor_size

Closed vocabulary — 4 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
A MINIMUM, not an exact match — medium returns medium and large. The API spelling is ours; the World Port Index column it ranks is Titlecase (Very SmallLarge). A fifth WPI size would rank 0 and become unreachable, so this list is only closed for as long as WPI’s is. very_small · small · medium · large Accepted by: min_harbor_size On: /api/v2/maritime/ports

maritime_activity_bucket

Closed vocabulary — 2 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
The time grain of the aggregation. OMITTING it is a third, legitimate request — an automatic grain, hourly for spans of 2 days or less and daily beyond — so the default is not one of these values and the response echoes whichever was chosen. Until 2026-08-10 an unknown value was silently coerced to that automatic grain: bucket=week returned 200 with DAILY rows echoed as bucket: "day", while this enum was already published as though it were enforced. It is now enforced, which is what makes publishing it true. hour · day Accepted by: bucket On: /api/v2/maritime/activity

maritime_dwell_status

Closed vocabulary — 2 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Whether a dwell episode had ended at the rollup edge. Two failure modes worth knowing: a VALID value can return 409 STATUS_UNAVAILABLE while the port_dwell status-column rebuild is pending (the rows then carry status: null), and rows written before that rebuild carry the column default — an empty string that is not in this vocabulary. ongoing · completed Accepted by: status On: /api/v2/maritime/dwell

gem_tracker

Closed vocabulary — 15 values. This is the authoritative set. Anything else is rejected with 400 INVALID_TRACKER, and the error carries details.accepted_values so a caller can self-correct without reading this page.
The fifteen Global Energy Monitor registries behind gem.assets_view. Genuinely closed — a tracker exists only when a loader and a table exist for it. Three sharp edges: the same code returns 400 on /energy/assets and 404 on the /energy/assets/{tracker}/{gem_id} path param; the four Heavy-Industry trackers are a SEPARATE vocabulary accepted only on /energy/assets and /energy/assets/summary; and capacity units are NOT a function of the tracker — see gem_capacity_unit. Accepted by: tracker On: /api/v2/energy/assets · /api/v2/energy/assets/summary · /api/v2/energy/assets/map · /api/v2/energy/assets/{tracker}/{gem_id}

gem_heavy_industry_tracker

Closed vocabulary — 4 values. This is the authoritative set. Anything else is rejected with 400 UNSUPPORTED_FILTER, and the error carries details.accepted_values so a caller can self-correct without reading this page.
GEM’s Materials program, kept out of gem_tracker because these report capacity in ttpa / mtpa rather than MW and cannot share a rollup with the energy trackers. Accepted ONE AT A TIME, never mixed with an energy tracker, and never with fuel or tier — each of those is a 400 UNSUPPORTED_FILTER. They are also reachable only through the tracker spelling: the trackers alias routes to the energy lane and 400s INVALID_TRACKER. iron_steel_plants · cement_plants · chemical_plants · iron_ore_mines Accepted by: tracker On: /api/v2/energy/assets · /api/v2/energy/assets/summary

energy_status

Closed vocabulary — 24 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Seven lifecycle FAMILIES plus every member spelling they expand to — sending a family name matches all of its members. Matched case-insensitively. This is a hand-maintained partition over a column GEM owns, so it is closed only until GEM ships a status nobody has mapped: the sibling vocabulary on /api/v2/facilities (facility_status) reads the same class of data and is published as a measurement for exactly that reason. operating · construction · proposed · permitted · cancelled · mothballed · retired · active · underground gas storage · on order · mixed status · announced · pre-construction · pre-permit · in-development · discovered · exploration · shelved · cancelled - inferred 4 y · shelved - inferred 2 y · abandoned · idle · idled · decommissioning Accepted by: status On: /api/v2/energy/assets · /api/v2/energy/assets/summary · /api/v2/energy/assets/map

energy_fuel

Closed vocabulary — 9 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Fuel CATEGORIES, each expanding to a set of synonyms found in the source data. Not accepted on a Heavy-Industry request — that combination is a 400 UNSUPPORTED_FILTER. gas · oil · bioenergy · coal · solar · wind · nuclear · hydropower · geothermal Accepted by: fuel On: /api/v2/energy/assets · /api/v2/energy/assets/summary · /api/v2/energy/assets/map

energy_sort

Closed vocabulary — 6 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Distinct from the events/stories sort vocabulary, which is significance \| recent. Same param name, different value-space — they are registered separately rather than merged, because merging them would publish a value one of the two endpoints rejects. capacity_desc · capacity_asc · start_year_desc · start_year_asc · recent · name Accepted by: sort On: /api/v2/energy/assets

energy_asset_class

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Fixed assets (plants, mines, pipelines) versus mobile ones (LNG carriers). Defaults to fixed, and flips to all on its own when the request asks for lng_carriers alone — so the effective default is not always the declared one. fixed · mobile · all Accepted by: asset_class On: /api/v2/energy/assets · /api/v2/energy/assets/summary · /api/v2/energy/assets/map

energy_group_by

Closed vocabulary — 8 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Bucket dimension for the energy summary. Two further spellings — start_year and decade — are intercepted before this enum is consulted and therefore work without appearing here; a Heavy-Industry request accepts a different, smaller set. country · region · continent · tracker · status · start_year_decade · fuel · tier Accepted by: group_by On: /api/v2/energy/assets/summary

epoch_hardware_type

Closed vocabulary — 11 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Accelerator class. Epoch’s vocabulary, not ours, and the comparison is exact-after-lowercasing rather than substring — so the compound token dcu (gpgpu) must be sent whole (a bare dcu is a 400), and gpu cannot reach a gpgpu row. Any casing is accepted; the values are published lowercase because that is the form the server compares and the form its 400 returns in accepted_values. Rows with no type are unreachable by any value here. gpu · tpu · xpu-r · npu · gpgpu · other · xpu · asic · lpu · hybrid cpu · dcu (gpgpu) Accepted by: type On: /api/v2/epoch/hardware

epoch_model_accessibility

Closed vocabulary — 6 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
How the model’s weights are released. Matched case-insensitively but otherwise exactly, parentheses and all. Epoch’s vocabulary — it currently matches the corpus one-for-one, and will need re-measuring whenever Epoch republishes. Open weights (unrestricted) · Open weights (restricted use) · Open weights (non-commercial) · API access · Hosted access (no API) · Unreleased Accepted by: model_accessibility On: /api/v2/epoch/models

epoch_model_domain

Closed vocabulary — 19 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
★ KNOWN GAP, stated rather than hidden. The stored field is COMPOSITE — a model spans several domains, comma-joined — so the filter substring-matches, and each token you send is validated against this list. The list is CURATED and has fallen behind the dataset: measured 2026-08-10, epoch.ai_models.domain also contains Psychology, Astronomy and Cybersecurity, and sending any of the three returns 400 INVALID_ENUM even though rows carry it. It is published as closed because that is what the server enforces today; widening it (or reopening it as a measurement) is a deliberate contract change, not a documentation fix. Language · Vision · Biology · Multimodal · Image generation · Video · Speech · Robotics · Games · Audio · Medicine · Mathematics · Materials science · Earth science · Recommendation · Driving · Search · 3D modeling · Other Accepted by: domain On: /api/v2/epoch/models

filings_sort

Closed vocabulary — 2 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
recent · filer Accepted by: sort On: /api/v2/filings

filings_summary_group_by

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Also the discovery path for form_type, which is an open vocabulary — see sec_form_type. form_type · date · filer Accepted by: group_by On: /api/v2/filings/summary

filings_event_type

Closed vocabulary — 11 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
The 8-K material-event kinds. Genuinely closed because it is the CLOSED OUTPUT VOCABULARY of our own extractor, with other as the residual — the column can only ever hold what the extractor was allowed to emit. Case-sensitive. material_agreement · executive_change · results · acquisition · disposition · guidance · restructuring · impairment · delisting · bankruptcy · other Accepted by: event_type On: /api/v2/filings/events

filings_rel_type

Closed vocabulary — 7 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Counterparty relation kinds extracted from filing text. Closed for the same reason as filings_event_type: it is the extractor’s own output vocabulary. Note risk_factor is a first-class member — two hand-written doc pages list only six of these seven and drop it. subsidiary · supplier · customer · counterparty · partner · jurisdiction_exposure · risk_factor Accepted by: rel_type On: /api/v2/filings/{cik}/relations

macro_frequency

Closed vocabulary — 10 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
BOTH spellings of each cadence are accepted — the word (prefix-matched against FRED’s messy frequency string, so Weekly reaches “Weekly, Ending Friday”) and the short code (exact against frequency_short). Case-insensitive. Two published tellings each got this half right: the spec declared the codes only, the 400 advertises the words only. Annual/A is legal and currently matches no series. Daily · D · Weekly · W · Monthly · M · Quarterly · Q · Annual · A Accepted by: frequency On: /api/v2/macro/series

macro_seasonal_adjustment

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Matched case-insensitively. ★ This is a FRED vocabulary that we nonetheless REJECT on, measured across fewer than a hundred series — so the day ALFRED emits a fourth adjustment string, this 400s a value the warehouse holds. Closed here because that is the behaviour today; the fix is to stop rejecting, which is a contract change of its own. Not Seasonally Adjusted · Seasonally Adjusted · Seasonally Adjusted Annual Rate Accepted by: seasonal_adjustment On: /api/v2/macro/series

macro_agency

Closed vocabulary — 11 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
DERIVED from the featured-series catalogue rather than hand-listed, so it cannot fall below what the catalogue actually serves. Case-insensitive. BEA · BLS · CBOE · Census · DOL · EIA · FHFA · FRB · Freddie Mac · Treasury · U. Michigan Accepted by: agency On: /api/v2/macro/series · /api/v2/macro/releases

list_change_type

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Emitted by our own list differ, so the column cannot hold anything else. Case-sensitive. added · removed · changed Accepted by: change_type On: /api/v2/lists/changes

list_entries_sort

Closed vocabulary — 2 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
name · recent Accepted by: sort On: /api/v2/lists/entries

list_source_key

Closed vocabulary — 14 values. This is the authoritative set. Anything else is rejected with 400 INVALID_LIST_SOURCE, and the error carries details.accepted_values so a caller can self-correct without reading this page.
The restricted-party lists we have ACTUALLY ingested. LIST_SOURCES declares 22; these 14 are the ones with rows, and the other 8 (csl_ofac_plc, uflpa, fcc_covered, sec_hfcaa, cbp_wro, mofcom_uel, au_dfat, eu_fsf) are rejected with details.reason = "declared_but_not_ingested" rather than answering an empty 200 — “we do not carry this list” and “nothing matched on this list” are opposite answers to a screening question. Every rejection carries details.reason: declared_but_not_ingested or unknown_source_key. Matching is case-insensitive. Accepted by: list, source On: /api/v2/lists · /api/v2/lists/entries · /api/v2/lists/changes

exposure_lens

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
The three exposure classifications the spine computes. Declared beside the INGEST that writes the column, so the reader and the writer cannot disagree. sanctions · china · state_owned Accepted by: lens On: /api/v2/exposure

exposure_subject

Closed vocabulary — 2 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Whether the answer is about assets or about entities. The DECLARED default is assets, but the OBSERVED default is not: with an entity handle and no asset selector the endpoint silently switches to entities and says so in subject_note. Worth sending explicitly. On the entities path, group_by and sort are accepted, ignored, and echoed back as applied. assets · entities Accepted by: subject On: /api/v2/exposure

exposure_group_by

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Validated only on the assets path — see exposure_subject. none · country · tracker Accepted by: group_by On: /api/v2/exposure

exposure_sort

Closed vocabulary — 2 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Validated only on the assets path — see exposure_subject. capacity_desc · stake_desc Accepted by: sort On: /api/v2/exposure

exposure_list

Closed vocabulary — 16 values. This is the authoritative set. Anything else is rejected with 400 INVALID_LIST_SOURCE, and the error carries details.accepted_values so a caller can self-correct without reading this page.
What made an exposure row exposed. A deliberate SUPERSET of list_source_key: the 14 ingested lists plus two labels that are not lists at all — state_owned (the state_owned lens) and cn_state (a Chinese state owner under the china lens). Both are RETURNED inside contributing_lists, so rejecting them would 400 a value the endpoint had just handed back; measured 2026-08-10 they match 3,690 and 104 asset rows. They are meaningless on /api/v2/lists, which is why this is a second enum rather than one over-promising union. The china lens STORES a list edge prefixed (list_csl_ofac_cmic); send either spelling — the serve layer matches both, so one value works across all three lenses. Accepted by: list On: /api/v2/exposure

atlas_level

Closed vocabulary — 4 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Geographic aggregation level. Shared by GPR, Posture and Coverage — but the DEFAULT is not: Posture defaults to country. world · continent · region · country Accepted by: level On: /api/v2/intelligence/gpr

atlas_posture_scope

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Which posture blocks to return. Omitting the param is NOT the same as sending all: absent returns both the internal and external blocks in their own right. all · internal · external Accepted by: scope On: /api/v2/intelligence/posture

atlas_posture_window

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
★ Posture’s window is a TOKEN, not a number of days — 30d, not 30. It is the only window in the v2 surface that works this way (GPR’s is an integer that is silently clamped), and a bare integer here is a 400 INVALID_ENUM. 7d · 30d · 90d Accepted by: window On: /api/v2/intelligence/posture

atlas_weighting

Closed vocabulary — 2 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Corpus weighting. On Posture, gdp can silently DEGRADE to attention when the GDP basis is unavailable — the response says which was actually used in weighting.effective plus a reason. attention · gdp Accepted by: weighting On: /api/v2/intelligence/gpr

atlas_gpr_construction

Closed vocabulary — 2 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Which denominator the index is normalized against: our own coverage, or the world corpus. Not interchangeable — two series built on different constructions must never be compared. own_coverage · world_corpus Accepted by: construction On: /api/v2/intelligence/gpr

atlas_gpr_variant

Closed vocabulary — 4 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
The two GPR lenses are events and attention. fullspectrum and gpr are the internal storage names, still accepted as legacy aliases — they are published here because the server accepts them, while the 400 deliberately advertises only the two product names. events · attention · fullspectrum · gpr Accepted by: variant On: /api/v2/intelligence/gpr

atlas_gpr_component

Closed vocabulary — 5 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Which decomposition of the index to return. Membership in this list is NECESSARY BUT NOT SUFFICIENT — see the per-variant sets below; sending a component the variant does not carry is a 400 INVALID_ENUM whose accepted_values is that variant’s set, not this union. all · threats · acts · verbal · material
The legal values depend on variant. The list above is the union across every variant; membership in it does NOT mean a value is accepted with the variant you are sending. A mismatch returns 400 INVALID_ENUM whose details.accepted_values is the row below, not the union.
The events lens (and its fullspectrum storage alias) carries all five; the gpr lens is built from the threat/act partition only, so verbal and material do not exist for it; the attention lens is a single undecomposed series, so all is its only component. Measured against prod: 6 of the 15 pairs a flat 5-value enum implies cannot return a row. Accepted by: component On: /api/v2/intelligence/gpr

atlas_gpr_metric

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
gpr is the product name for the index; pulse is its legacy internal alias. gpr · pulse · attention_share Accepted by: metric On: /api/v2/intelligence/gpr

atlas_coverage_tier

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
depth · thin · none Accepted by: tier On: /api/v2/intelligence/coverage

china_projects_sort

Closed vocabulary — 2 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
amount_desc · recent Accepted by: sort On: /api/v2/china/projects

china_projects_group_by

Closed vocabulary — 6 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Four of these buckets — sector, status, flow_class, intent — are the ONLY discovery path for the corresponding open filter vocabularies. There is deliberately no region bucket, which is why the AidData region a row carries has none; see china_recipient_region. country · sector · status · year · flow_class · intent Accepted by: group_by On: /api/v2/china/projects/summary

search_universe

Closed vocabulary — 4 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
registry is the raw GLEIF LEI universe in its own lane and additionally requires the GLEIF entitlement — an unentitled caller gets 403 PLAN_REQUIRED, not 400. It is a legal value regardless of plan, which is why it is listed here. all · news · reference · registry Accepted by: universe On: /api/v2/search

search_entity_type

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
★ LOWERCASE, and deliberately a DIFFERENT value-space from entity_type (UPPERCASE), which /api/v2/entities accepts. Same concept, two spellings, two endpoints — registered separately rather than merged, because publishing one casing for both would advertise a value one of them rejects. place is a first-class member on both; a filter that offers only person and organization silently hides every geography. person · organization · place Accepted by: type On: /api/v2/search

entity_hierarchy_direction

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Which way to walk the ownership tree from the anchor entity. Defaults to both. up · down · both Accepted by: direction On: /api/v2/entities/{entity_id}/hierarchy

gleif_entity_status

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
From the LEI-CDF specification. NULL is a real, sendable value — GLEIF publishes it as a string for records where the status is genuinely unknown, so it is not the absence of a value. ACTIVE · INACTIVE · NULL Accepted by: entity_status On: /api/v2/gleif/entities

gleif_registration_status

Closed vocabulary — 12 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
The LEI record’s own lifecycle, distinct from whether the legal entity is active. Twelve values, of which MERGED is deprecated upstream and retained for historical records. ISSUED · LAPSED · PENDING_TRANSFER · PENDING_ARCHIVAL · DUPLICATE · RETIRED · ANNULLED · CANCELLED · TRANSFERRED · PENDING_VALIDATION · PUBLISHED · MERGED Accepted by: registration_status On: /api/v2/gleif/entities

gleif_entity_category

Closed vocabulary — 6 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
GENERAL · BRANCH · FUND · SOLE_PROPRIETOR · RESIDENT_GOVERNMENT_ENTITY · INTERNATIONAL_ORGANIZATION Accepted by: entity_category On: /api/v2/gleif/entities

gleif_relationship_type

Closed vocabulary — 6 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
From the RR-CDF specification. Accounting consolidation, branch, and the three fund relationships. Note IS_FUND-MANAGED_BY carries a hyphen inside the token. IS_DIRECTLY_CONSOLIDATED_BY · IS_ULTIMATELY_CONSOLIDATED_BY · IS_INTERNATIONAL_BRANCH_OF · IS_FUND-MANAGED_BY · IS_SUBFUND_OF · IS_FEEDER_TO Accepted by: relationship_type On: /api/v2/gleif/relationships

actor_type

Closed vocabulary — 9 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
The actor classification carried on conflict events as inter1 (the acting side) and inter2 (the receiving side). None applies only to inter2, in a one-sided event with no second actor. None · State forces · Rebel groups · Political militias · Identity militias · Rioters · Protesters · Civilians · External/Other forces

quality

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
How much scoring confidence a row must clear to be returned. production_ready is the default and the one to build on; reviewable widens to rows we would show a human but not a customer; all disables the filter entirely and will include rows we do not stand behind. production_ready · reviewable · all Accepted by: quality On: /api/v2/entities/{entity_id}/tone

geo_precision

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
How exactly the event was located: 1 an exact named place, 2 a nearby or general area, 3 a country or region centroid. The companion geo_precision_label field carries these as exact_place, nearby_area and country_or_region. This is the difference between an event AT an asset and an event somewhere in the same country — check it before triggering on a coordinate. 1 · 2 · 3

time_precision

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
How exactly the event was dated: 1 the exact day is known, 2 within a week, 3 within a month. There is no time_precision_label field — the number is what is served. A 3 on a daily time series is a month-wide event pinned to one bucket, not a same-day observation. 1 · 2 · 3

actor_role

Closed vocabulary — 4 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
The part an actor played in the event. WHICH PAIR YOU GET IS DECIDED BY family, and the two pairs never mix on one card. CAMEO+ events are DIRECTED and carry source (who acted) and target (who was acted upon) — this is the direction bilateral questions turn on. Conflict (ACLED) events are UNDIRECTED — two parties to a clash — and carry actor1 and actor2, which imply no initiator. actor1/actor2 is not a legacy spelling of source/target: filtering on actor direction cannot return conflict events, because that family does not record one. source · target · actor1 · actor2

incident_resolution

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Whether this event was checked for being a duplicate of another, and what the check found. llm — an independent adversarial judge CONFIRMED a duplicate, and incident.uid names the survivor. self — adjudicated and found unique. unadjudicated — never checked, which is a DIFFERENT claim from self, not a weaker one: “we did not look” is not “we found nothing”. Coverage is partial by design, so filter to llm,self when you need to count incidents rather than rows. unadjudicated · self · llm Accepted by: incident_resolution On: /api/v2/events · /api/v2/events/summary

event_match_type

Closed vocabulary — 2 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
How a row was retrieved by search=, on Event and Story cards. semantic means the row came back from embedding similarity and carries a search_score; name means it matched literally and carries search_score: null — deliberately, because faking a distance would assert a cosine similarity nobody computed. The field is OMITTED entirely on non-search requests rather than served as null. NOT the same vocabulary as match_type on /api/v2/search. semantic · name

brief_time_window

Closed vocabulary — 5 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
How far back the brief looks for evidence. 6h · 24h · 72h · 7d · 30d Accepted by: time_window On: /api/v2/briefs

brief_baseline_window

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
The comparison period a reading is called normal or abnormal against. It is separate from time_window on purpose: a 24h brief still needs weeks of history to know what 24 hours of this looks like. 7d · 14d · 30d Accepted by: baseline_window On: /api/v2/briefs

brief_audience

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
Who the brief is written for. It changes the register and what is foregrounded, never the evidence. executive · analyst · operator Accepted by: audience On: /api/v2/briefs

brief_depth

Closed vocabulary — 3 values. This is the authoritative set. Anything else is rejected with 400 INVALID_ENUM, and the error carries details.accepted_values so a caller can self-correct without reading this page.
How much the brief does. Not a quality setting — a skim is complete and cited, just narrower. Distinct from the numeric depth on the entity-hierarchy endpoint, which counts ownership levels. skim · standard · detailed Accepted by: depth On: /api/v2/briefs

Observed vocabularies

These are measurements. We publish them because guessing is worse, and we date them because an undated measurement is indistinguishable from a promise.

sec_form_type

Observed vocabulary — a measurement, not an allowlist. These are the 262 values present in the corpus as of 2026-08-10. The API accepts values outside this list — the corpus grows between refreshes, and refusing a value the warehouse can answer would be worse than an empty result. Treat an unlisted value as possibly valid, not invalid.
SEC form types are an open vocabulary: 264 distinct values appeared in a single 30-day window, and 424B2 alone was 36.3% of them. Any closed list here would be wrong within a quarter, so this filter accepts anything and returns an empty result for a form type the window does not contain. 424B2 · 4 · 8-K · 13F-HR · NPORT-P · FWP · D · 10-Q · 144 · SCHEDULE 13G/A · 6-K · N-PX · 497K · SCHEDULE 13G · 3 · D/A · 497 · 424B3 · 485BXT · 10-D · ABS-EE · DEFA14A · 13F-NT · 425 · N-MFP3 · 485BPOS · 497J · 24F-2NT · EFFECT · SCHEDULE 13D/A · N-CSR · S-8 · S-8 POS · 424B5 · 485APOS · DEF 14A · N-CSRS · 4/A · 8-A12B · CERT · ABS-15G · 8-K/A · 497VPU · 25-NSE · S-1/A · 497VPI · 40-17G · ARS · 10-K · S-1 · PRE 14A · S-6 · NPORT-P/A · 13F-HR/A · N-CEN · POS AM · SCHEDULE 13D · 486BPOS · MA-I/A · 487 · SC TO-I/A · C/A · S-3ASR · 1-U · S-3 · C · DFAN14A · 20-F · 424B8 · C-U · SC TO-I · F-1/A · S-4/A · AW · 15-12G · 424B4 · X-17A-5 · 3/A · 6-K/A · 10-D/A · 253G2 · POS EX · 10-K/A · 497AD · DEF 14C · N-23C3A · N-VP/A · F-6EF · 144/A · N-2 · F-1 · N-2/A · 40-APP/A · F-3 · N-PX/A · N-MFP3/A · N-14 · C-AR · S-4 · S-3/A · 40-APP · F-4/A · 1-A POS · NT 20-F · PRE 14C · 10-Q/A · RW · DEFM14A · 424B7 · SC TO-T/A · MA-I · 1-A · S-6/A · NT 10-Q · PREM14A · 5 · APP NTC · 1/A · 25 · QUALIF · 424H · F-X · 40-17F2 · 15-15D · POSASR · IRANNOTICE · N-CSR/A · ABS-15G/A · SC 14D9/A · NT 10-K · F-6 POS · N-23C-2 · 20-F/A · ATS-N/UA · 1-A/A · SEC STAFF ACTION · N-8F · 11-K · 8-K12B · F-3/A · 18-K/A · F-3ASR · APP ORDR · 305B2 · PRER14A · DRS · MA-A · 10-12G/A · SD · F-6 · 10-12G · POS AMI · N-8A · S-1MEF · SBSE-A/A · PX14A6G · DSTRBRPT · N-8F ORDR · N-54A · MA/A · DEFC14A · N-CSRS/A · 40-8B25 · N-14/A · PREC14A · 1-A-W · 8-A12B/A · 10-12B/A · 1-SA · TA-1/A · F-10 · ATS-N/MA · 8-A12G · 18-K · F-4 · N-CEN/A · 40-33 · SUPPL · CB · TA-2 · N-1A/A · F-10EF · 40-6B · 1-K · 40-24B2 · C-W · DEFA14C · SEC STAFF LETTER · 486BXT · SC TO-C · 15-12G/A · F-10/A · NRSRO-UPD · SC 13D/A · N-2ASR · REVOKED · 424B1 · 6B ORDR · NT-NCEN · C-TR · SC 14F1 · DEL AM · S-B/A · 10-12B · N-14 8C · DEFR14A · SC 13E3/A · F-N · SC14D9C · SC 14D9 · DEFM14C · S-11 · 253G1 · N-30B-2 · NT N-CEN · ANNLRPT · SF-3 · N-8F NTC · 40-17F1 · ATS-N/CA · 15F-12B · S-3DPOS · SC TO-T · F-10POS · S-B · 20FR12B/A · N-8F/A · N-1A · 8-K12G3 · APP WD · CFPORTAL/A · 6B NTC · SF-3/A · SD/A · APP WDG · S-4 POS · UPLOAD · 8-K15D5 · DEFR14C · N-54C · 20FR12B · N-6 · DFRN14A · PRRN14A · N-4/A · PREN14A · POS462B · C-TR-W · 40FR12B/A · DRS/A · C/A-W · 40FR12B · S-3D · QRTLYRPT · SC 13E3 · 13F-NT/A · X-17A-5/A · S-11/A · 40-F · N-30D · N-6F/A · SC13E4F Discover the current set: GET /api/v2/filings/summary?group_by=form_type Accepted by: form_type On: /api/v2/filings · /api/v2/filings/summary

facility_status

Observed vocabulary — a measurement, not an allowlist. These are the 32 values present in the corpus as of 2026-08-10. The API accepts values outside this list — the corpus grows between refreshes, and refusing a value the warehouse can answer would be worse than an empty result. Treat an unlisted value as possibly valid, not invalid.
GEM lifecycle statuses arrive mixed-case and carry inferred variants (e.g. “shelved - inferred 2 y”), so the served vocabulary is what the registry actually holds rather than a curated list. Matching is case-insensitive. operating · pre-construction · cancelled · announced · construction · retired · Operating · cancelled - inferred 4 y · shelved - inferred 2 y · shelved · proposed · mothballed · active · Proposed · Mothballed · discovered · on order · permitted · pre-permit · in-development · Cancelled · Shelved · idle · Retired · abandoned · decommissioning · idled · operating pre-retirement · underground gas storage · Construction · mixed status · exploration Discover the current set: GET /api/v2/facilities?limit=1 (see applied_filters) or /api/v2/meta/enums Accepted by: status On: /api/v2/facilities

gem_capacity_unit

Observed vocabulary — a measurement, not an allowlist. These are the 37 values present in the corpus as of 2026-08-10. The API accepts values outside this list — the corpus grows between refreshes, and refusing a value the warehouse can answer would be worse than an empty result. Treat an unlisted value as possibly valid, not invalid.
The unit of capacity.value on a GEM asset. It is NOT a function of the tracker: for lng_terminals, gas_pipelines, oil_pipelines and lng_carriers the loader passes GEM’s own per-row CapacityUnits string through verbatim, so one tracker returns several units and the casing varies (mtpa and Mtpa are both present). Measured 2026-08-10: lng_terminals carries 10 distinct units across 1,206 rows and gas_pipelines carries 17 across 4,246, of which 1,604 carry no unit at all. NEVER sum capacity.value across rows without grouping by this field; capacity.mw is the only cross-tracker-summable number, and it is populated only for the power trackers. MW · Mtpa · mtpa · bcm/y · cbm · MMcf/d · bpd · Mt · MMSCMD · TJ/d · mill.Sm3/day · bcf/d · GWh/d · m3/day · Mcf/d · scm/y · m3/month · lpy · m3/h · Tn/d · gal/day · GWh/h · tpa · thousand m3/year · Mb/d · m3/year · PJ/y · Dth/d · Tn/day · scm/yr · m3/d · bph · tn/h · BCF/y · MWh/d · Tsd. m³/h · MMBtu/d Discover the current set: GET /api/v2/energy/assets?tracker=<tracker>&limit=1 (read capacity.unit on each row) Accepted by: capacity_unit (response field) On: /api/v2/energy/assets

energy_tier

Observed vocabulary — a measurement, not an allowlist. These are the 5 values present in the corpus as of 2026-08-10. The API accepts values outside this list — the corpus grows between refreshes, and refusing a value the warehouse can answer would be worse than an empty result. Treat an unlisted value as possibly valid, not invalid.
GEM’s own coverage tier for an asset row (main sheet vs below-threshold vs closed, and the utility/distributed split on solar). The serve layer accepts it as a free comma list and does not validate it, so an unknown tier returns an empty 200 rather than a 400 — which is why it is published as a measurement rather than as an allowlist. utility · main · below_threshold · closed · sub_threshold Discover the current set: GET /api/v2/energy/assets/summary?group_by=tier Accepted by: tier On: /api/v2/energy/assets

gem_owner_entity_type

Observed vocabulary — a measurement, not an allowlist. These are the 6 values present in the corpus as of 2026-08-10. The API accepts values outside this list — the corpus grows between refreshes, and refusing a value the warehouse can answer would be worse than an empty result. Treat an unlisted value as possibly valid, not invalid.
The corporate-registry classification GEM assigns an ownership entity. Unvalidated at the serve layer — /api/v2/energy/owners?entity_type= is applied as a plain IN list, so an unlisted value returns an empty 200. legal entity · state · state body · arrangement · unknown entity · person Discover the current set: GET /api/v2/energy/owners?limit=1 (read entity_type) Accepted by: entity_type On: /api/v2/energy/owners

china_sector

Observed vocabulary — a measurement, not an allowlist. These are the 24 values present in the corpus as of 2026-08-10. The API accepts values outside this list — the corpus grows between refreshes, and refusing a value the warehouse can answer would be worse than an empty result. Treat an unlisted value as possibly valid, not invalid.
AidData’s OECD-DAC sector name, stored verbatim and matched case-insensitively. Ours to serve, not ours to define — it changes when AidData republishes GCDF. The filter does not validate, so an unlisted sector returns an empty 200. HEALTH · EDUCATION · GOVERNMENT AND CIVIL SOCIETY · TRANSPORT AND STORAGE · ENERGY · OTHER SOCIAL INFRASTRUCTURE AND SERVICES · EMERGENCY RESPONSE · UNALLOCATED/UNSPECIFIED · INDUSTRY, MINING, CONSTRUCTION · AGRICULTURE, FORESTRY, FISHING · COMMUNICATIONS · OTHER MULTISECTOR · BANKING AND FINANCIAL SERVICES · ACTION RELATING TO DEBT · WATER SUPPLY AND SANITATION · DEVELOPMENTAL FOOD AID/FOOD SECURITY ASSISTANCE · BUSINESS AND OTHER SERVICES · TRADE POLICIES AND REGULATIONS · GENERAL BUDGET SUPPORT · GENERAL ENVIRONMENTAL PROTECTION · OTHER COMMODITY ASSISTANCE · RECONSTRUCTION RELIEF AND REHABILITATION · DISASTER PREVENTION AND PREPAREDNESS · POPULATION POLICIES/PROGRAMMES AND REPRODUCTIVE HEALTH Discover the current set: GET /api/v2/china/projects/summary?group_by=sector Accepted by: sector On: /api/v2/china/projects · /api/v2/china/projects/summary

china_status

Observed vocabulary — a measurement, not an allowlist. These are the 6 values present in the corpus as of 2026-08-10. The API accepts values outside this list — the corpus grows between refreshes, and refusing a value the warehouse can answer would be worse than an empty result. Treat an unlisted value as possibly valid, not invalid.
AidData’s project status. Note the two Pipeline: … values contain a colon and a space — a picker that offers a slugified form will silently match nothing. Completion · Pipeline: Commitment · Implementation · Pipeline: Pledge · Cancelled · Suspended Discover the current set: GET /api/v2/china/projects/summary?group_by=status Accepted by: status On: /api/v2/china/projects · /api/v2/china/projects/summary

china_flow_class

Observed vocabulary — a measurement, not an allowlist. These are the 3 values present in the corpus as of 2026-08-10. The API accepts values outside this list — the corpus grows between refreshes, and refusing a value the warehouse can answer would be worse than an empty result. Treat an unlisted value as possibly valid, not invalid.
AidData’s ODA-like / OOF-like concessionality class. Unvalidated at the serve layer. ODA-like · OOF-like · Vague (Official Finance) Discover the current set: GET /api/v2/china/projects/summary?group_by=flow_class Accepted by: flow_class On: /api/v2/china/projects · /api/v2/china/projects/summary

china_intent

Observed vocabulary — a measurement, not an allowlist. These are the 4 values present in the corpus as of 2026-08-10. The API accepts values outside this list — the corpus grows between refreshes, and refusing a value the warehouse can answer would be worse than an empty result. Treat an unlisted value as possibly valid, not invalid.
AidData’s donor-intent classification. Unvalidated at the serve layer. Development · Mixed · Commercial · Representational Discover the current set: GET /api/v2/china/projects/summary?group_by=intent Accepted by: intent On: /api/v2/china/projects · /api/v2/china/projects/summary

china_recipient_region

Observed vocabulary — a measurement, not an allowlist. These are the 7 values present in the corpus as of 2026-08-10. The API accepts values outside this list — the corpus grows between refreshes, and refusing a value the warehouse can answer would be worse than an empty result. Treat an unlisted value as possibly valid, not invalid.
The recipient region a project row CARRIES, which is AidData’s regional grouping — NOT the vocabulary the region= filter accepts. The filter validates against the API-wide 19-value region enum, so a value read out of a row (America, Multi-Region) is rejected with 400 INVALID_REGION if you send it straight back. Filter by country instead, or map the AidData region onto one of ours yourself. Africa · Asia · America · Oceania · Europe · Middle East · Multi-Region Discover the current set: GET /api/v2/china/projects?limit=1 (read region; there is no group_by=region bucket) Accepted by: region (response field — NOT the filter) On: /api/v2/china/projects

list_cadence

Observed vocabulary — a measurement, not an allowlist. These are the 2 values present in the corpus as of 2026-08-10. The API accepts values outside this list — the corpus grows between refreshes, and refusing a value the warehouse can answer would be worse than an empty result. Treat an unlisted value as possibly valid, not invalid.
How often a screening list is refreshed. Read straight off the catalogue and matched CASE-SENSITIVELY with no validation, so cadence=Daily returns zero rows while cadence=daily returns twelve. The sibling jurisdiction filter was made case-insensitive for exactly this reason; cadence was not. daily · episodic Discover the current set: GET /api/v2/lists (read cadence on each catalogue entry) Accepted by: cadence On: /api/v2/lists

gleif_jurisdiction

Observed vocabulary — a measurement, not an allowlist. These are the 250 values present in the corpus as of 2026-08-10 (307 distinct in total; the most frequent are listed). The API accepts values outside this list — the corpus grows between refreshes, and refusing a value the warehouse can answer would be worse than an empty result. Treat an unlisted value as possibly valid, not invalid.
GLEIF’s legal jurisdiction as published — ISO 3166-1 alpha-2 plus alpha-2/subdivision forms such as US-CA. Uppercased but NOT validated by the serve layer, unlike the three GLEIF status enums beside it, so an unlisted jurisdiction returns an empty 200. IN · IT · DE · GB · NL · ES · FR · US-DE · SE · DK · CN · LU · BE · NO · FI · AU · AT · KY · PL · IE · VG · CZ · EE · CH · HU · US · CA · US-CA · JP · PT · US-NY · LI · CY · CA-ON · SG · US-FL · JE · US-TX · HK · TR · US-OH · US-PA · RO · US-MA · GG · US-IL · CA-QC · GR · SK · MX · MT · US-MI · US-NJ · CA-BC · PA · BG · SA · IS · BS · LT · US-GA · SI · AE · US-MD · MU · US-NC · BR · US-WI · US-VA · LV · IM · NZ · BM · US-IN · CA-AB · US-NV · US-WA · ZA · US-CT · US-CO · HR · MH · US-MN · KR · AE-DU · US-TN · GI · US-MO · IL · TH · US-AZ · SC · MY · US-SC · US-OR · RU · TW · US-IA · CL · US-AL · US-LA · ID · BZ · US-KY · US-UT · US-OK · US-WY · US-NE · US-KS · US-NH · CA-MB · CO · CW · LR · NG · MC · US-ME · WS · AR · AE-AZ · US-AR · VC · US-RI · CA-SK · CA-NS · PH · US-DC · US-SD · US-ID · UY · PE · US-MS · KN · US-ND · CA-NB · AD · GB-NIR · PR · FO · US-NM · US-WV · KN-N · US-VT · US-HI · AI · VN · QA · CK · EG · GB-SCT · BB · KZ · US-MT · TC · KE · BH · RS · UA · LB · CR · US-AK · AE-RK · OM · MY-15 · PY · BD · DO · KW · LC · MA · LK · VE · JO · GT · MK · VU · PK · GE · AE-SH · TN · EC · GH · BA · NC · DM · SM · CA-NL · PS · MO · SV · AE-AJ · AG · NA · CA-PE · KM · TT · UG · AL · KG · ZW · HN · AM · AO · PF · TZ · ME · GL · UZ · BW · AZ · ZM · VI · MN · BQ · JM · AW · MD · BY · IQ · XX · BO · CI · XK · AE-UQ · MV · FJ · NP · BN · KH · CD · AE-FU · NI · SN · MZ · GU · RW · YE · UN · SX · SR · CM · DZ · LA · TG · BF · PG · BE-VLG · ML · MR · FK Discover the current set: GET /api/v2/gleif/entities?country=<iso3>&limit=1 (read legal_jurisdiction) Accepted by: jurisdiction On: /api/v2/gleif/entities

gleif_relationship_status

Observed vocabulary — a measurement, not an allowlist. These are the 3 values present in the corpus as of 2026-08-10. The API accepts values outside this list — the corpus grows between refreshes, and refusing a value the warehouse can answer would be worse than an empty result. Treat an unlisted value as possibly valid, not invalid.
The status of a GLEIF relationship record. Unlike relationship_type beside it, this one is uppercased and passed through unvalidated, so it is published as measured. ACTIVE · NULL · INACTIVE Discover the current set: GET /api/v2/gleif/relationships?lei=<lei> (read status) Accepted by: relationship_status On: /api/v2/gleif/relationships

fara_country

Observed vocabulary — a measurement, not an allowlist. These are the 250 values present in the corpus as of 2026-08-10 (265 distinct in total; the most frequent are listed). The API accepts values outside this list — the corpus grows between refreshes, and refusing a value the warehouse can answer would be worse than an empty result. Treat an unlisted value as possibly valid, not invalid.
The foreign principal’s country AS FARA SPELLS IT — KOREA, SOUTH, MYANMAR (BURMA), GREAT BRITAIN. The country= filter resolves your input to ISO-3 and then matches every stored spelling that maps to it, so you may send an ISO code or an English name; these are the raw values you will see in a response. JAPAN · CANADA · MEXICO · GREAT BRITAIN · FRANCE · KOREA, SOUTH · GERMANY, FEDERAL REPUBLIC OF · INTERNATIONAL · ISRAEL · USSR · CHINA · SAUDI ARABIA · TAIWAN · RUSSIA · DOMINICAN REPUBLIC · ITALY · NETHERLANDS · SWITZERLAND · TURKEY · AUSTRALIA · VENEZUELA · CUBA · GERMANY · HAITI · UKRAINE · POLAND · SPAIN · BRAZIL · PHILIPPINES · UNITED ARAB EMIRATES · PANAMA · SOUTH AFRICA · NIGERIA · COLOMBIA · SWEDEN · QATAR · ARGENTINA · ROMANIA · JAMAICA · PAKISTAN · INDIA · HONG KONG · IRAQ · INDONESIA · CZECHOSLOVAKIA · AUSTRIA · GUATEMALA · MOROCCO · BELGIUM · THAILAND · NICARAGUA · HUNGARY · BAHAMAS · NORWAY · IRELAND · LIBERIA · EGYPT · GREECE · DENMARK · EL SALVADOR · CHILE · LIBYA · PERU · ANGOLA · BERMUDA · ECUADOR · CONGO, DEMOCRATIC REPUBLIC OF THE · UNITED KINGDOM · CAYMAN ISLANDS · GEORGIA · COSTA RICA · IRAN · CONGO, REPUBLIC OF THE · YUGOSLAVIA · MALAYSIA · BULGARIA · GERMAN DEMOCRATIC REPUBLIC · COTE D'IVOIRE (IVORY COAST) · KAZAKHSTAN · ETHIOPIA · LEBANON · HONDURAS · FINLAND · KUWAIT · AZERBAIJAN · SINGAPORE · PORTUGAL · CYPRUS · BARBADOS · JORDAN · NEW ZEALAND · SOMALI DEMOCRATIC REPUBLIC · NETHERLANDS ANTILLES · AFGHANISTAN · KENYA · ALGERIA · GABON · SCOTLAND · BANGLADESH · SUDAN · VIETNAM · SERBIA · BOLIVIA · TRINIDAD AND TOBAGO · UZBEKISTAN · ALBANIA · SRI LANKA · CAMBODIA · BAHRAIN · ICELAND · BOSNIA & HERZEGOVINA · PALESTINE · MARSHALL ISLANDS · GUYANA · UGANDA · TUNISIA · NORTHERN IRELAND · CAMEROON · GHANA · LUXEMBOURG · CROATIA · ZIMBABWE · CURACAO · TOGO · ARUBA · KOSOVA · ANTIGUA & BARBUDA · ZAIRE · MOZAMBIQUE · GRENADA · YEMEN · SYRIA · ZAMBIA · OMAN · MONGOLIA · SIERRA LEONE · BRITISH VIRGIN ISLANDS · UNITED STATES · SAINT LUCIA · EQUATORIAL GUINEA · LATVIA · MALAWI · SENEGAL · NAMIBIA · MYANMAR (BURMA) · PARAGUAY · RWANDA · LITHUANIA · ARMENIA · TANZANIA · GUINEA · URUGUAY · MOLDOVA · MAURITANIA · DOMINICA · MACEDONIA · LIECHTENSTEIN · ERITREA · BENIN · SURINAME · MONACO · BELIZE · MALTA · ST. KITTS AND NEVIS · TURKS AND CAICOS ISLANDS · SLOVENIA · BELARUS · PALAU · SWAZILAND · PAPUA NEW GUINEA · CZECHIA · SOMALIA · FIJI · BOTSWANA · BURKINA FASO · MONTENEGRO · MAURITIUS · SLOVAKIA · ANGUILLA · KYRGYZSTAN · MALDIVES · BURUNDI · BIAFRA · GAMBIA, THE · BRUNEI · LAOS · MALI · SAINT VINCENT AND THE GRENADINES · BOPHUTHATSWANA · CABO VERDE · MONTSERRAT · SEYCHELLES · SOUTH SUDAN · NIGER · CHAD · TRANSKEI · NAURU · TIBET · TONGA · CEYLON (SRI LANKA) · REPUBLIC OF SOUTH SUDAN · MADAGASCAR · ISLE OF MAN · VIRGIN ISLANDS · PUERTO RICO · MICRONESIA · NEPAL · MACAU · VANUATU · LESOTHO · GUADELOUPE & MARTINIQUE · SOMALILAND · ESTONIA · TAHITI · SOUTH MOLUCCAS, REPUBLIC OF · CENTRAL AFRICAN REPUBLIC · CHANNEL ISLANDS · TAJIKISTAN · KOREA, NORTH · DJIBOUTI · UNKNOWN · ST. EUSTATIUS · TURKMENISTAN · ST. MARTIN · GUINEA-BISSAU · NAGORNO KARABAKH · GUERNSEY · BONAIRE · CISKEI · BURMA · SAHARAWI ARAB DEMOCRATIC REPUBLIC · UNITED STATES, MISCELLANEOUS CARIBBEAN ISLANDS · YEMEN, PEOPLES DEMOCRATIC REPUBLIC OF YEMEN · TIMOR-LESTE (EAST TIMOR) · WEST BERLIN · NEW CALEDONIA · WESTERN SAMOA · NORTH MACEDONIA · SAN MARINO · ENGLAND · DAHOMEY · UNITED KINGDOM OF CORALLAND · CENTRAL AND SOUTHERN LINE ISLANDS · BRITISH SOLOMON ISLANDS · SULU AND NORTH BORNEO · SAO TOME AND PRINCIPE · BRITISH WEST INDIES · VATICAN CITY · SOUTHERN YEMAN · GREENLAND Discover the current set: GET /api/v2/gov/fara?entity=<id> (read country on each foreign principal) Accepted by: country On: /api/v2/gov/fara

epoch_foundry

Observed vocabulary — a measurement, not an allowlist. These are the 5 values present in the corpus as of 2026-08-10. The API accepts values outside this list — the corpus grows between refreshes, and refusing a value the warehouse can answer would be worse than an empty result. Treat an unlisted value as possibly valid, not invalid.
The fab that manufactured the accelerator, as Epoch publishes it. Matched as a case-insensitive SUBSTRING with no validation, so a typo returns an empty 200 rather than a 400. Note some rows carry a comma-joined pair (SMIC,TSMC). TSMC · Samsung · SMIC · Intel · SMIC,TSMC Discover the current set: GET /api/v2/epoch/hardware?limit=1 (read foundry) Accepted by: foundry On: /api/v2/epoch/hardware

epoch_organization_categorization

Observed vocabulary — a measurement, not an allowlist. These are the 126 values present in the corpus as of 2026-08-10. The API accepts values outside this list — the corpus grows between refreshes, and refusing a value the warehouse can answer would be worse than an empty result. Treat an unlisted value as possibly valid, not invalid.
Epoch’s classification of the publishing organization. The stored field is COMPOSITE — a paper with several organizations carries their categories comma-joined, which is why 126 distinct strings appear (measured 2026-08-10) behind four underlying categories, including repeats such as Academia,Academia. Substring-matched and unvalidated, so filtering on a single category works and an unlisted value is an empty 200 rather than a 400. Industry · Academia · Academia,Academia · Industry,Academia · Academia,Industry · Academia,Academia,Academia · Industry,Industry · Academia,Industry,Academia · Industry,Academia,Academia · Academia,Academia,Industry · Research collective · Government · Industry,Government · Industry,Academia,Academia,Academia · Research collective,Academia · Academia,Academia,Academia,Academia · Academia,Government · Academia,Industry,Industry · Industry,Industry,Industry · Academia,Research collective · Industry,Academia,Industry · Research collective,Industry,Academia,Academia,Industry,Industry,Academia · Academia,Academia,Academia,Industry,Academia · Industry,Research collective · Academia,Academia,Academia,Industry · Academia,Industry,Academia,Academia · Academia,Academia,Research collective · Academia,Academia,Academia,Academia,Academia · Industry,Industry,Academia · Industry,Academia,Academia,Academia,Academia · Academia,Academia,Industry,Academia · Academia,Academia,Academia,Academia,Industry · Industry,Academia,Academia,Academia,Academia,Academia · Research collective,Academia,Academia,Academia,Academia,Academia,Academia,Academia,Academia · Academia,Academia,Academia,Industry,Government,Academia · Academia,Industry,Research collective · Academia,Industry,Industry,Academia · Academia,Academia,Academia,Academia,Academia,Academia · Academia,Academia,Academia,Academia,Industry,Academia · Research collective,Academia,Academia · Academia,Academia,Research collective,Industry · Academia,Industry,Academia,Academia,Academia,Academia,Academia · Academia,Academia,Government · Academia,Industry,Government,Industry,Academia · Academia,Academia,Industry,Academia,Research collective · Industry,Research collective,Academia · Industry,Academia,Academia,Industry · Academia,Industry,Industry,Academia,Academia,Academia · Academia,Government,Academia · Academia,Academia,Academia,Government · Academia,Academia,Industry,Research collective · Academia,Research collective,Academia · Academia,Industry,Industry,Research collective · Academia,Industry,Academia,Industry,Government · Industry,Industry,Academia,Academia · Industry,Government,Academia,Academia,Government,Academia,Academia,Academia,Academia,Academia,Government · Academia,Academia,Industry,Academia,Academia · Research collective,Research collective,Academia,Academia,Government,Academia,Academia,Industry,Academia,Academia,Academia,Academia,Academia,Academia · Academia,Industry,Academia,Academia,Academia · Academia,Academia,Academia,Academia,Academia,Research collective · Academia,Industry,Academia,Academia,Academia,Academia,Research collective · Industry,Academia,Industry,Academia,Academia · Academia,Research collective,Industry · Academia,Industry,Academia,Industry · Industry,Government,Academia · Academia,Industry,Academia,Industry,Academia · Academia,Research collective,Research collective,Academia,Academia,Academia · Academia,Research collective,Academia,Research collective,Academia · Industry,Industry,Industry,Academia,Academia,Academia · Government,Industry,Academia,Industry,Academia · Industry,Academia,Academia,Academia,Government,Government · Industry,Industry,Academia,Academia,Academia,Academia,Academia,Academia,Industry,Academia,Academia,Government,Government,Academia,Academia,Academia,Academia,Industry,Academia,Industry,Academia,Academia,Academia,Academia,Industry,Industry,Industry,Academia,Academia,Government,Academia,Research collective,Government · Academia,Industry,Industry,Industry · Academia,Academia,Academia,Academia,Academia,Academia,Research collective · Industry,Government,Government,Government · Academia,Academia,Academia,Academia,Academia,Academia,Research collective,Industry,Academia,Academia,Academia · Academia,Industry,Government · Academia,Industry,Research collective,Academia,Academia · Research collective,Academia,Academia,Industry · Research collective,Industry · Academia,Industry,Academia,Academia,Academia,Academia · Academia,Academia,Academia,Academia,Industry,Industry,Academia,Academia · Industry,Industry,Academia,Academia,Research collective,Industry,Academia · Academia,Academia,Academia,Research collective · Academia,Academia,Academia,Academia,Research collective,Academia · Industry,Industry,Government,Government · Industry,Academia,Industry,Industry · Academia,Industry,Academia,Industry,Academia,Industry · Academia,Academia,Academia,Academia,Academia,Industry,Academia · Industry,Academia,Government,Academia · Academia,Academia,Research collective,Industry,Academia,Academia · Industry,Academia,Academia,Industry,Academia,Academia · Academia,Academia,Industry,Industry,Industry · Academia,Academia,Government,Academia,Academia,Academia,Academia,Government,Industry,Academia,Industry,Academia,Academia,Academia,Academia,Academia,Academia,Academia,Academia,Industry,Academia · Industry,Research collective,Academia,Academia,Academia,Academia · Industry,Academia,Academia,Academia,Industry,Academia · Research collective,Industry,Government,Academia · Industry,Academia,Research collective · Academia,Academia,Academia,Academia,Academia,Academia,Academia,Industry · Academia,Academia,Industry,Industry,Academia · Research collective,Research collective · Government,Academia,Academia · Academia,Research collective,Academia,Academia,Academia,Academia,Academia · Research collective,Industry,Academia,Academia · Government,Research collective · Academia,Academia,Academia,Industry,Industry · Industry,Government,Academia,Academia,Academia,Academia · Academia,Academia,Industry,Industry,Academia,Industry · Academia,Academia,Industry,Industry · Academia,Academia,Academia,Industry,Academia,Research collective · Academia,Industry,Academia,Research collective · Academia,Academia,Academia,Research collective,Academia,Academia · Academia,Academia,Academia,Research collective,Academia,Academia,Academia · Government,Academia,Government,Academia · Research collective,Academia,Industry · Industry,Government,Industry,Government · Academia,Academia,Academia,Academia,Academia,Industry,Academia,Research collective · Academia,Academia,Research collective,Academia,Academia,Industry,Academia · Industry,Government,Industry · Government,Academia · Industry,Academia,Industry,Academia · Government,Industry · Academia,Academia,Academia,Academia,Research collective · Academia,Research collective,Academia,Academia · Academia,Industry,Academia,Industry,Academia,Academia · Government,Academia,Industry Discover the current set: GET /api/v2/epoch/models?limit=1 (read organization_categorization) Accepted by: organization_categorization On: /api/v2/epoch/models

epoch_chip_manufacturer

Observed vocabulary — a measurement, not an allowlist. These are the 6 values present in the corpus as of 2026-08-10. The API accepts values outside this list — the corpus grows between refreshes, and refusing a value the warehouse can answer would be worse than an empty result. Treat an unlisted value as possibly valid, not invalid.
The accelerator designer in Epoch’s chip-sales series. Lower-cased exact match with no validation — an unlisted manufacturer returns an empty 200. Nvidia · Google · Amazon · Huawei · AMD · Cambricon Discover the current set: GET /api/v2/epoch/chip-sales?limit=1 (read chip_manufacturer) Accepted by: chip_manufacturer On: /api/v2/epoch/chip-sales

coverage_language

Observed vocabulary — a measurement, not an allowlist. These are the 77 values present in the corpus as of 2026-08-10. The API accepts values outside this list — the corpus grows between refreshes, and refusing a value the warehouse can answer would be worse than an empty result. Treat an unlisted value as possibly valid, not invalid.
The languages the corpus actually carries, canonicalized toward ISO 639-1 (639-2 codes are folded to their 2-letter form, and a long tail of 639-3 codes survives for outlets that have no 639-1 code, e.g. tet, crs). The filter validates SHAPE, not membership: it rejects only a token that cannot be an ISO code — a normalized value longer than 3 characters, so languages=english is a 400 while languages=zz is an accepted, empty 200. A code absent from this list may still be valid; it just had no coverage in the measured window. THREE entries are upstream spellings that are NOT folded: axe is Azerbaijani (1,619 rows over 30 days, so languages=az currently returns nothing), glg is Galician, and mon is Mongolian, which is therefore split against the folded mn. Filter on the spelling you see here until they are folded and backfilled together. Discover the current set: GET /api/v2/stories?limit=1 (read coverage.languages) Accepted by: languages On: /api/v2/events · /api/v2/stories · /api/v2/entities/{entity_id}/tone

admin1

Observed vocabulary — a measurement, not an allowlist. These are the 120 values present in the corpus as of 2026-08-10 (3229 distinct in total; the most frequent are listed). The API accepts values outside this list — the corpus grows between refreshes, and refusing a value the warehouse can answer would be worse than an empty result. Treat an unlisted value as possibly valid, not invalid.
Sub-national admin1 NAMES as the corpus spells them — not codes. This is a per-country vocabulary, so the list here is the most-covered slice of a much larger set (the artifact’s distinct count is the real total); resolve the full set for one country through the discovery endpoint. Matching is case-insensitive and folds a trailing administrative suffix on both sides, so Kharkiv Oblast and kharkiv reach the same rows. The filter never rejects an unknown value. District of Columbia · California · Delhi · Texas · New York · Maharashtra · England · Ontario · Florida · Federal Capital Territory · Gauteng · Karnataka · Uttar Pradesh · Ohio · Pennsylvania · Tamil Nadu · British Columbia · Michigan · Punjab · Washington · Illinois · New South Wales · Jakarta · Georgia · Maryland · North Carolina · Kerala · Telangana · West Bengal · Oregon · Arizona · West Bank · Scotland · Massachusetts · Wisconsin · São Paulo · Lazio · Lagos State · Lombardy · Madhya Pradesh · Tennessee · Indiana · Missouri · Virginia · Colorado · Jammu and Kashmir · South Carolina · Community of Madrid · Bihar · Gujarat · Minnesota · Victoria · Hong Kong · Gaza Strip · New Jersey · Alberta · Kentucky · Louisiana · Maine · Andalusia · Odisha · Rajasthan · Central Region · Osun State · Guangdong · East Java · Western Cape · Oklahoma · Andhra Pradesh · Istanbul · Alabama · Île-de-France · Metro Manila · Nevada · West Java · Quebec · Catalonia · Haryana · Attica · Emilia-Romagna · Mexico City · Assam · Buenos Aires Province · Iowa · Sicily · Idaho · Lagos · Arkansas · Federal District · Campania · Dhaka Division · Wales · Kansas · Jharkhand · Utah · West Virginia · Bavaria · Masovian Voivodeship · Hawaii · KwaZulu-Natal · New Mexico · Nebraska · Nairobi County · Shanghai · Queensland · North Rhine-Westphalia · Republika Srpska · Sindh · Dubai · Western Australia · Buenos Aires · Mississippi · Uttarakhand · Western Province · Bucharest Municipality · Vilnius County · Connecticut · Kaduna State · Kano State · Galicia Discover the current set: GET /api/v2/geo/admin1?country=<name|ISO-2|ISO-3|FIPS> Accepted by: admin1 On: /api/v2/events · /api/v2/stories

Identifier spaces

entity_handle

Identifier space — not a vocabulary. This is a key with a format and a resolver, not a list you can enumerate.
A key with a format, not a vocabulary — resolve one with GET /api/v2/search rather than constructing it. Several identifier spaces coexist (spine e_…, news wiki:…, cik:, llm:, GEM entity ids, LEI, UEI) and the set an endpoint accepts differs by endpoint. Sending an id from the wrong space generally returns an empty 200 rather than an error, so check the per-endpoint table at https://docs.gdeltcloud.com/reference/parameters#identifier-parameters before chaining two endpoints. Resolve one with: GET /api/v2/search?q=<name> Accepted by: entity On: /api/v2/events · /api/v2/stories · /api/v2/events/summary · /api/v2/stories/summary · /api/v2/facilities

country

Identifier space — not a vocabulary. This is a key with a format and a resolver, not a list you can enumerate.
A country KEY in any of four spellings: ISO 3166-1 alpha-3 (UKR), alpha-2 (UA), FIPS 10-4 (UP), or an English display name or alias (Ukraine). Comma-separate for OR. Two-letter input resolves as ISO-2 FIRST and FIPS second, so CN is China rather than Comoros. An unresolvable value returns 400 INVALID_COUNTRY. region and continent are separate params and ARE closed vocabularies — they expand to a country set. Resolve one with: GET /api/v2/events?group_by=country — returns the ISO-3 codes with display names Accepted by: actor_country, source_actor_country, target_actor_country On: /api/v2/events · /api/v2/events/summary