EIA · Authentication Profile

Eia Authentication

Authentication

EIA secures its APIs with apiKey across 1 declared security scheme, as derived from its OpenAPI definitions.

EnergyUnited StatesEnergy MarketsElectricityNatural GasPetroleumCoalNuclearRenewablesGridEmissionsGovernmentOpen DataEnergy Statistics
Methods: apiKey Schemes: 1 OAuth flows: API key in: query

Security Schemes

api_key apiKey
· in: query (api_key)

Source

Authentication Profile

Raw ↑
generated: '2026-07-27'
method: searched
source: openapi/eia-api-v2-openapi.yml
docs: https://www.eia.gov/opendata/documentation.php
registration: https://www.eia.gov/opendata/register.php
summary:
  types:
  - apiKey
  api_key_in:
  - query
  oauth2_flows: []
  free: true
  self_serve: true
  approval_required: false
schemes:
- name: api_key
  type: apiKey
  in: query
  parameter: api_key
  applied: globally, via the root-level security requirement in the spec
  sources:
  - openapi/eia-api-v2-openapi.yml
model: |
  A single free API key, passed as the api_key query parameter on every APIv2 request. EIA
  states explicitly that the key must appear in the URL and will NOT be detected in HTTP
  headers, even though other query parameters MAY be sent in the request body
  (application/x-www-form-urlencoded on GET, or a JSON DataParams body on the POST form of a
  /data route) to work around URL length limits. There is no OAuth, no OIDC, no bearer token,
  no mutual TLS, no scopes and no per-resource authorization - every key sees the same public
  statistical data.
issuance:
  form: https://www.eia.gov/opendata/register.php
  fields:
  - First Name (required)
  - Last Name (required)
  - Email (required)
  - Category that best describes you/your organization (required)
  - Reason to use this API
  - Agreement to the API Terms of Service (required)
  - Optional opt-in for email notification of API changes
  delivery: Emailed automatically to the address supplied; no human review, no accreditation,
    no licence to sign.
  sender: developer@eia.gov - EIA asks that this address be whitelisted in spam filters.
  recovery: '"Forgot API Key" flow linked from https://www.eia.gov/opendata/'
  cost: free
unauthenticated_surface:
  bulk_download: https://api.eia.gov/bulk/manifest.txt and every /bulk/*.zip dataset are
    retrievable with NO key at all.
  spec_download: https://www.eia.gov/opendata/eia-api-swagger.zip is anonymous.
  console: https://www.eia.gov/opendata/browser/ is anonymous.
enforcement:
  missing_key: HTTP 403 with {"error":{"code":"API_KEY_MISSING","message":"No api_key was
    supplied.  Please register for one at https://www.eia.gov/opendata/register.php"}} -
    verified live 2026-07-27.
  invalid_key: HTTP 403 with {"error":{"code":"API_KEY_INVALID", ...}} - verified live
    2026-07-27 with a 40-character bogus key.
  throttled_key: The key is automatically and temporarily suspended above the published
    thresholds and automatically reactivated. See rate-limits/eia-rate-limits.yml.
  embeds: The chart-widget embed now also requires a key; unkeyed embeds render
    API_KEY_MISSING.
transport:
  https_only: true
  note: APIv2 is HTTPS-only. APIv1 also served plain http; EIA flagged that http would "end
    soon" as part of the v2 migration.
key_handling_risk: Because the key travels in the query string it is exposed in browser
  history, referrer headers, proxy logs and server access logs, and the documented embed
  pattern places a live key in public page HTML. There is no key rotation UI - recovery is via
  the Forgot API Key flow.
terms_of_service: https://www.eia.gov/opendata/register.php
scopes: none
scopes_note: No OAuth scopes exist; scopes/ is deliberately absent for this provider.
related:
  conventions: conventions/eia-conventions.yml
  errors: errors/eia-problem-types.yml
  rate_limits: rate-limits/eia-rate-limits.yml