FERC · Authentication Profile

Ferc Authentication

Authentication

FERC secures its APIs with apiKey, oauth2, and http across 4 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the password flow(s).

EnergyUnited StatesEnergy MarketsElectricityNatural GasGridRegulatorGovernmentOpen DataWholesale Power MarketsHydropowerOil Pipelines
Methods: apiKey, oauth2, http Schemes: 4 OAuth flows: password API key in: header, query

Security Schemes

ApiKeyHeaderAuth apiKey
· in: header (X-Api-Key)
ApiKeyQueryAuth apiKey
· in: query (api_key)
FilerPasswordGrant oauth2
filerBearer http
scheme: bearer

Source

Authentication Profile

Raw ↑
generated: '2026-07-27'
method: searched
source: openapi/ferc-data-api-openapi.json
docs: https://data.ferc.gov/developer/gettingstarted/api-key-usage/
summary:
  types:
    - apiKey
    - oauth2
    - http
  api_key_in:
    - header
    - query
  oauth2_flows:
    - password
  note: >-
    Two independent auth models. The public Open Data API uses a free 40-character API key issued by
    email from a self-serve sign-up form; the eForms XBRL API uses an OAuth 2.0 password grant that
    exchanges FERC eRegistration / Company Registration credentials for a bearer token. Neither API
    issues scopes. Note that a subset of the eForms API answers with NO authentication at all — see
    openapi/ferc-eforms-api-openapi-derived.yml.
schemes:
  - name: ApiKeyHeaderAuth
    api: ferc:ferc-open-data-api
    type: apiKey
    in: header
    parameter: X-Api-Key
    recommended: true
    description: >-
      Recommended method per FERC's API Key Usage page — keeps the key out of the URL and out of
      logs. NOT declared in FERC's published OpenAPI, which only describes the query parameter; added
      here from the documentation.
    sources:
      - https://data.ferc.gov/developer/gettingstarted/api-key-usage/
  - name: ApiKeyQueryAuth
    api: ferc:ferc-open-data-api
    type: apiKey
    in: query
    parameter: api_key
    recommended: false
    description: >-
      Alternative method. FERC documents it as "useful for quick testing but less secure as the key
      becomes visible in URLs and logs."
    sources:
      - openapi/ferc-data-api-openapi.json
      - https://data.ferc.gov/developer/gettingstarted/api-key-usage/
  - name: FilerPasswordGrant
    api: ferc:ferc-eforms-xbrl-submission-api
    type: oauth2
    flow: password
    tokenUrl: https://ecollection.ferc.gov/api/token
    grant_parameters:
      grant_type: password
      role: filer
    scopes: []
    description: >-
      OAuth 2.0 Resource Owner Password Credentials grant (RFC 6749 section 4.3). Credentials are the
      filer's FERC eRegistration username (email) and password; the filer must be registered to file
      for the company. No scopes are issued.
    sources:
      - collections/ferc-xbrl-submission-api.postman_collection.json
      - https://www.ferc.gov/media/ferc-submission-api-step-step-guide
  - name: filerBearer
    api: ferc:ferc-eforms-xbrl-submission-api
    type: http
    scheme: bearer
    description: Bearer token returned by the password grant, presented on the filing endpoints.
    sources:
      - openapi/ferc-eforms-api-openapi-derived.yml
credential_issuance:
  - api: ferc:ferc-open-data-api
    method: self-serve web form
    url: https://data.ferc.gov/developer/gettingstarted/sign-up-form/
    cost: free
    key_format: 40-character key delivered by email
    delivery: >-
      Usually instant; FERC documents delivery may take up to 24 hours. Lost keys are replaced by
      re-submitting the sign-up form; old keys are deactivated on request via support.
  - api: ferc:ferc-eforms-xbrl-submission-api
    method: FERC eRegistration + Company Registration
    url: https://www.ferc.gov/company-registration
    cost: free
    note: >-
      Not a developer credential. The filer must be an individual registered with FERC and authorized
      to file for a specific company CID.
anonymous_access:
  - api: ferc:ferc-eforms-xbrl-submission-api
    note: >-
      Verified 2026-07-27 — GET /PublicSubmissionHistory, /SubmissionDetail/{filingID},
      /SubmissionHistory/forms, /getTestStatus, /TaxonomyHistory (and its file/sample/release-notes
      children) and /faq all return HTTP 200 with no credential of any kind. FERC does not document
      these as a public API.
evidence:
  - probe: GET https://api.data.ferc.gov/v1/data-assets/ with no key
    date: '2026-07-27'
    status: 403
    body: '{"error":{"code":"API_KEY_MISSING"}}'
  - probe: GET https://api.data.ferc.gov/v1/data-assets/?api_key=<invalid>
    date: '2026-07-27'
    status: 403
    body: '{"error":{"code":"API_KEY_INVALID"}}'
  - probe: GET https://ecollection.ferc.gov/api/token
    date: '2026-07-27'
    status: 400
    body: '{"error":"unsupported_grant_type"}'
  - probe: GET https://ecollection.ferc.gov/api/claims
    date: '2026-07-27'
    status: 401
    body: '{"message":"Authorization has been denied for this request."}'