FERC · Agentic Access

FERC Agentic Access

x-agentic-access generated

FERC exposes 18 API operations that an AI agent could call, of which 2 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: 16 read, 1 write, and 1 safety-critical.

1 operation are classed safety-critical and should require human-in-the-loop approval at runtime.

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 GasGridRegulatorGovernmentOpen DataWholesale Power MarketsHydropowerOil Pipelines
Operations: 18 Acting: 2 Human-in-the-loop: 1 Method: generated

By consequence

read 16 write 1 safety-critical 1

Highest-consequence actions

The physical and safety-critical operations an agent could invoke — the ones that most warrant scoped tokens, tight TTLs, and escalation. Full per-operation contracts are in the source below.

MethodPathConsequenceHuman-in-loop
POST /SubmissionHistory/ExternalFiling safety-critical required

Source

Agentic Access

Raw ↑
generated: '2026-07-27'
method: generated
source: openapi/ferc-data-api-openapi.json, openapi/ferc-eforms-api-openapi-derived.yml
description: Recommended x-agentic-access execution contracts, classified heuristically from
  the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind
  audience per deployment. See research/curity/agentic-governance/.
curated: partial
curation_note: >-
  Two operations were raised by hand above the heuristic default and are marked `curated: true` —
  postExternalFiling (mandated, irreversible regulatory filing → safety-critical, human-in-the-loop
  required) and listPublicSubmissionHistory (anonymous but returns personal data → subject and audit
  required). The summary counts below reflect those corrections.
summary:
  operations: 18
  by_action_class:
    connected: 16
    acting: 2
  by_consequence:
    read: 16
    write: 1
    safety-critical: 1
  human_in_the_loop_required: 1
  personal_data_operations: 1
operations:
- path: /data-assets/
  method: get
  operationId: data-asset-id
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dataset/{id}/details/
  method: get
  operationId: detail-id
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dataset/{id}/data/
  method: get
  operationId: data-id
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /dataset/{id}/dictionary/
  method: get
  operationId: dictionary-id
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /token
  method: post
  operationId: getFilerToken
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /SubmissionHistory/ExternalFiling
  method: post
  operationId: postExternalFiling
  curated: true
  curation_note: >-
    Raised by hand from the heuristic default (write / conditional). This operation submits a
    MANDATED regulatory filing to FERC production on behalf of a named credentialed filer. It is
    irreversible, legally consequential, carries no idempotency key, and a repeat call creates a
    second filing. Human-in-the-loop is required, not conditional.
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: required
      proof-of-possession: required
      purpose-required: true
    escalation:
      human-in-the-loop: required
      triggers:
      - always
    audit: required
- path: /PublicSubmissionHistory
  method: get
  operationId: listPublicSubmissionHistory
  curated: true
  curation_note: >-
    Read-only and anonymous, but the response carries filerEmail — a named individual's work email
    address — for ~37,600 filings. Treated as personal data: subject required, audit required, and
    excluded from the agent skills and the candidate MCP tool set. See
    security/ferc-vulnerability-disclosure.yml.
  personal_data: true
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: required
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - bulk-export
      - personal-data
    audit: required
- path: /SubmissionDetail/{filingID}
  method: get
  operationId: getSubmissionDetail
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /SubmissionHistory/forms
  method: get
  operationId: listForms
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /getTestStatus
  method: get
  operationId: getTestStatus
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /TaxonomyHistory
  method: get
  operationId: listTaxonomyHistory
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /TaxonomyHistory/TaxonomyFile/{versionID}
  method: get
  operationId: getTaxonomyFile
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /TaxonomyHistory/SampleForm/{versionID}
  method: get
  operationId: getTaxonomySampleForm
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /TaxonomyHistory/getReleaseFiles
  method: get
  operationId: getTaxonomyReleaseFiles
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /faq
  method: get
  operationId: listFaq
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /claims
  method: get
  operationId: getFilerClaims
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /SubmissionHistory
  method: get
  operationId: listFilerSubmissionHistory
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /TaxonomyRevision
  method: get
  operationId: listTaxonomyRevisions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none