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.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.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./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./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.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.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.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.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.medium returns medium and large. The API spelling is ours; the World Port Index column it ranks is Titlecase (Very Small…Large). 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.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.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.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_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./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.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.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, 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.all · threats · acts · verbal · material
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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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.
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
