EIA · Agentic Access

EIA Agentic Access

x-agentic-access generated

EIA exposes 278 API operations that an AI agent could call, of which 0 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.

By consequence: 278 read.

Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.

EnergyUnited StatesEnergy MarketsElectricityNatural GasPetroleumCoalNuclearRenewablesGridEmissionsGovernmentOpen DataEnergy Statistics
Operations: 278 Acting: 0 Human-in-the-loop: 0 Method: generated

By consequence

read 278

Source

Agentic Access

Raw ↑
generated: '2026-07-27'
method: generated
source: openapi/eia-api-v2-openapi.yml + https://www.eia.gov/opendata/documentation.php
description: 'Recommended x-agentic-access execution contracts for EIA APIv2. Machine-classified from
  the OpenAPI, then CURATED: the heuristic pass raised the 53 POST /data operations to acting/write (and,
  on keyword matches such as shipments, sales, price and outages, to physical or safety-critical with
  human-in-the-loop). That is wrong for this API. EIA APIv2 is entirely read-only - the POST form of a
  /data route is a query whose parameters travel in a DataParams JSON body instead of the URL, and it
  returns the same DataResponse as the GET form. All 278 operations are therefore connected/read. Verified
  against the spec (components/requestBodies/dataParams) and EIA''s technical documentation.'
summary:
  operations: 278
  by_action_class:
    connected: 278
  by_consequence:
    read: 278
  human_in_the_loop_required: 0
  writes: 0
  note: No operation in EIA APIv2 creates, updates or deletes anything. The only real agent risks are
    throttle exhaustion (see rate-limits/) and API-key leakage, because the key travels in the query string.
operations:
- path: /v2/aeo/{route1}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/aeo/{route1}/facet
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/aeo/{route1}/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/aeo/{route1}/data
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/aeo/{route1}/data
  method: post
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    audience: null
    token:
      max-ttl: 3600
    audit: none
    note: POST on a /data route is a READ query - the request body is the DataParams schema (data, facets,
      frequency, start, end, sort, length, offset) used to avoid URL length limits. It creates nothing.
- path: /v2/ieo/{route1}
  method: get
  operationId: EIA\API\Controllers\Dataset\AeoIeo\IeoController::__construct
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/ieo/{route1}/facet
  method: get
  operationId: EIA\API\Controllers\Dataset\AeoIeo\IeoController::route_facet
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/ieo/{route1}/facet/{facet_id}
  method: get
  operationId: EIA\API\Controllers\Dataset\AeoIeo\IeoController::route_facetId
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/ieo/{route1}/data
  method: get
  operationId: EIA\API\Controllers\Dataset\AeoIeo\IeoController::get_data
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/ieo/{route1}/data
  method: post
  operationId: EIA\API\Controllers\Dataset\AeoIeo\IeoController::post_data
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    audience: null
    token:
      max-ttl: 3600
    audit: none
    note: POST on a /data route is a READ query - the request body is the DataParams schema (data, facets,
      frequency, start, end, sort, length, offset) used to avoid URL length limits. It creates nothing.
- path: /v2/co2-emissions/co2-emissions-aggregates/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/co2-emissions/co2-emissions-and-carbon-coefficients/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/aggregate-production/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/consumption-and-quality/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/exports-imports-quantity-price/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/market-sales-price/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/mine-production/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/price-by-rank/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/reserves-capacity/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/shipments/by-mine-by-plant/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/shipments/mine-aggregates/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/shipments/mine-state-aggregates/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/shipments/plant-aggregates/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/shipments/plant-state-aggregates/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/shipments/receipts/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/crude-oil-imports/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/densified-biomass/capacity-by-region/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/densified-biomass/characteristics-by-region/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/densified-biomass/export-sales-and-price/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/densified-biomass/feedstocks-and-cost/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/densified-biomass/inventories-by-region/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/densified-biomass/production-by-region/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/densified-biomass/sales-and-price-by-region/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/densified-biomass/wood-pellet-plants/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/electricity/facility-fuel/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/electricity/electric-power-operational-data/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/electricity/operating-generator-capacity/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/electricity/retail-sales/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/electricity/state-electricity-profiles/capability/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/electricity/state-electricity-profiles/emissions-by-state-by-fuel/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/electricity/state-electricity-profiles/energy-efficiency/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/electricity/state-electricity-profiles/meters/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/electricity/state-electricity-profiles/net-metering/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/electricity/state-electricity-profiles/source-disposition/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/electricity/state-electricity-profiles/summary/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/electricity/rto/daily-interchange-data/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/electricity/rto/daily-fuel-type-data/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/electricity/rto/daily-region-sub-ba-data/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/electricity/rto/daily-region-data/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/electricity/rto/interchange-data/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/electricity/rto/fuel-type-data/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/electricity/rto/region-sub-ba-data/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/electricity/rto/region-data/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/international/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/nuclear-outages/facility-nuclear-outages/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/nuclear-outages/generator-nuclear-outages/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/nuclear-outages/us-nuclear-outages/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/natural-gas/{route1}/{route2}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/natural-gas/{route1}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/natural-gas/{route1}/{route2}/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/natural-gas/{route1}/{route2}/facet
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/natural-gas/{route1}/{route2}/data
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/natural-gas/{route1}/{route2}/data
  method: post
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    audience: null
    token:
      max-ttl: 3600
    audit: none
    note: POST on a /data route is a READ query - the request body is the DataParams schema (data, facets,
      frequency, start, end, sort, length, offset) used to avoid URL length limits. It creates nothing.
- path: /v2/total-energy/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/seds
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/seds/facet
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/seds/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/seds/data
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/seds/data
  method: post
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    audience: null
    token:
      max-ttl: 3600
    audit: none
    note: POST on a /data route is a READ query - the request body is the DataParams schema (data, facets,
      frequency, start, end, sort, length, offset) used to avoid URL length limits. It creates nothing.
- path: /v2/steo
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/steo/facet
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/steo/facet/{facet_id}
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/steo/data
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/steo/data
  method: post
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    audience: null
    token:
      max-ttl: 3600
    audit: none
    note: POST on a /data route is a READ query - the request body is the DataParams schema (data, facets,
      frequency, start, end, sort, length, offset) used to avoid URL length limits. It creates nothing.
- path: /v2/aeo
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/ieo
  method: get
  operationId: EIA\API\Controllers\Dataset\AeoIeo\IeoController::ieo
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/co2-emissions/co2-emissions-aggregates
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/co2-emissions/co2-emissions-aggregates/facet
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/co2-emissions/co2-emissions-aggregates/data
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/co2-emissions/co2-emissions-aggregates/data
  method: post
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    audience: null
    token:
      max-ttl: 3600
    audit: none
    note: POST on a /data route is a READ query - the request body is the DataParams schema (data, facets,
      frequency, start, end, sort, length, offset) used to avoid URL length limits. It creates nothing.
- path: /v2/co2-emissions/co2-emissions-and-carbon-coefficients
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/co2-emissions/co2-emissions-and-carbon-coefficients/facet
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/co2-emissions/co2-emissions-and-carbon-coefficients/data
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/co2-emissions/co2-emissions-and-carbon-coefficients/data
  method: post
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    audience: null
    token:
      max-ttl: 3600
    audit: none
    note: POST on a /data route is a READ query - the request body is the DataParams schema (data, facets,
      frequency, start, end, sort, length, offset) used to avoid URL length limits. It creates nothing.
- path: /v2/co2-emissions
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/aggregate-production
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/aggregate-production/facet
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/aggregate-production/data
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/aggregate-production/data
  method: post
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    audience: null
    token:
      max-ttl: 3600
    audit: none
    note: POST on a /data route is a READ query - the request body is the DataParams schema (data, facets,
      frequency, start, end, sort, length, offset) used to avoid URL length limits. It creates nothing.
- path: /v2/coal
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/consumption-and-quality
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/consumption-and-quality/facet
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/consumption-and-quality/data
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/consumption-and-quality/data
  method: post
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    audience: null
    token:
      max-ttl: 3600
    audit: none
    note: POST on a /data route is a READ query - the request body is the DataParams schema (data, facets,
      frequency, start, end, sort, length, offset) used to avoid URL length limits. It creates nothing.
- path: /v2/coal/exports-imports-quantity-price
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/exports-imports-quantity-price/facet
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/exports-imports-quantity-price/data
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/exports-imports-quantity-price/data
  method: post
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    audience: null
    token:
      max-ttl: 3600
    audit: none
    note: POST on a /data route is a READ query - the request body is the DataParams schema (data, facets,
      frequency, start, end, sort, length, offset) used to avoid URL length limits. It creates nothing.
- path: /v2/coal/market-sales-price
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/market-sales-price/facet
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/market-sales-price/data
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/market-sales-price/data
  method: post
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    audience: null
    token:
      max-ttl: 3600
    audit: none
    note: POST on a /data route is a READ query - the request body is the DataParams schema (data, facets,
      frequency, start, end, sort, length, offset) used to avoid URL length limits. It creates nothing.
- path: /v2/coal/mine-production
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/mine-production/facet
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/mine-production/data
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/mine-production/data
  method: post
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    audience: null
    token:
      max-ttl: 3600
    audit: none
    note: POST on a /data route is a READ query - the request body is the DataParams schema (data, facets,
      frequency, start, end, sort, length, offset) used to avoid URL length limits. It creates nothing.
- path: /v2/coal/price-by-rank
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/price-by-rank/facet
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/price-by-rank/data
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/price-by-rank/data
  method: post
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    audience: null
    token:
      max-ttl: 3600
    audit: none
    note: POST on a /data route is a READ query - the request body is the DataParams schema (data, facets,
      frequency, start, end, sort, length, offset) used to avoid URL length limits. It creates nothing.
- path: /v2/coal/reserves-capacity
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/reserves-capacity/facet
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/reserves-capacity/data
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/reserves-capacity/data
  method: post
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    audience: null
    token:
      max-ttl: 3600
    audit: none
    note: POST on a /data route is a READ query - the request body is the DataParams schema (data, facets,
      frequency, start, end, sort, length, offset) used to avoid URL length limits. It creates nothing.
- path: /v2/coal/shipments/by-mine-by-plant
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/shipments/by-mine-by-plant/facet
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/shipments/by-mine-by-plant/data
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/shipments/by-mine-by-plant/data
  method: post
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    audience: null
    token:
      max-ttl: 3600
    audit: none
    note: POST on a /data route is a READ query - the request body is the DataParams schema (data, facets,
      frequency, start, end, sort, length, offset) used to avoid URL length limits. It creates nothing.
- path: /v2/coal/shipments/mine-aggregates
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/shipments/mine-aggregates/facet
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/shipments/mine-aggregates/data
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/shipments/mine-aggregates/data
  method: post
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    audience: null
    token:
      max-ttl: 3600
    audit: none
    note: POST on a /data route is a READ query - the request body is the DataParams schema (data, facets,
      frequency, start, end, sort, length, offset) used to avoid URL length limits. It creates nothing.
- path: /v2/coal/shipments/mine-state-aggregates
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/shipments/mine-state-aggregates/facet
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/shipments/mine-state-aggregates/data
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/shipments/mine-state-aggregates/data
  method: post
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    audience: null
    token:
      max-ttl: 3600
    audit: none
    note: POST on a /data route is a READ query - the request body is the DataParams schema (data, facets,
      frequency, start, end, sort, length, offset) used to avoid URL length limits. It creates nothing.
- path: /v2/coal/shipments/plant-aggregates
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/shipments/plant-aggregates/facet
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/shipments/plant-aggregates/data
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/shipments/plant-aggregates/data
  method: post
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    audience: null
    token:
      max-ttl: 3600
    audit: none
    note: POST on a /data route is a READ query - the request body is the DataParams schema (data, facets,
      frequency, start, end, sort, length, offset) used to avoid URL length limits. It creates nothing.
- path: /v2/coal/shipments/plant-state-aggregates
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/shipments/plant-state-aggregates/facet
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v2/coal/shipments/plant-state-aggregates/data
  method: get
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      ma

# --- truncated at 32 KB (69 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/eia/refs/heads/main/agentic-access/eia-agentic-access.yml

Work with this as data

Every access contract here is available over the APIs.io API and to AI agents over MCP. Agentic Access is not yet its own endpoint on the v1 API. Reach it through catalog search and the tag graph, or the MCP server.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for agentic access

3 MCP tools reach this
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
Search the catalog
curl "https://apis.io/api/v1/search?q=eia-agentic-access&limit=10"
Everything under a tag
curl "https://apis.io/api/v1/tags/eia-agentic-access"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.