Discover/FERC API
live

FERC APIelibrary.ferc.gov

Search FERC eLibrary dockets and documents. Access filings, applicant details, CP dockets, and document metadata by accession number via 4 endpoints.

Endpoint health
verified 3d ago
get_cp_dockets
get_docket_details
get_document_details
general_search
4/4 passing latest checkself-healing
Endpoints
4
Updated
21d ago

What is the FERC API?

The FERC eLibrary API provides access to Federal Energy Regulatory Commission regulatory filings and docket records across 4 endpoints. Use general_search to query documents by text, docket-number prefix, or filed-date range; use get_docket_details to retrieve applicant names, sub-docket numbers, and a full list of filings for any specific docket; or look up a single document directly by accession number with get_document_details.

Try it
Page number (0-based).
Maximum results per page.
Search query text matched against document descriptions. Omitting or leaving blank searches all documents.
End of filed-date range in YYYY-MM-DD format.
Start of filed-date range in YYYY-MM-DD format.
Docket number or prefix to filter by. Short prefixes (4 chars or fewer) are automatically wildcarded (e.g. 'CP' becomes 'CP*'). Full docket numbers like 'CP21-470' search exactly.
api.parse.bot/scraper/8c295ce3-9094-4a7e-8fac-e15d4afa5636/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X POST 'https://api.parse.bot/scraper/8c295ce3-9094-4a7e-8fac-e15d4afa5636/general_search' \
  -H 'X-API-Key: $PARSE_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "page": "0",
  "limit": "5",
  "query": "natural gas",
  "end_date": "2026-07-06",
  "start_date": "2025-07-06",
  "docket_number": "CP"
}'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace elibrary-ferc-gov-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: FERC eLibrary API — search filings, inspect dockets, look up documents."""
from parse_apis.ferc_elibrary_api import FERCLibrary, DocketNotFound

client = FERCLibrary()

# Search for recent natural gas documents with a docket prefix filter
for doc in client.documents.search(query="natural gas", docket_number="CP", limit=3):
    print(doc.description, doc.filed_date, doc.score)

# Drill into a specific docket's full details
docket = client.dockets.get(docket_number="CP21-470")
print(docket.docket_number, docket.description)
for filing in docket.filings[:3]:
    print(filing.category, filing.filed_date, filing.accession_number)

# Look up a single document by accession number
document = client.documents.get(accession_number="20210629-5262")
print(document.description, document.category)
for t in document.transmittals[:2]:
    print(t.file_name, t.file_type, t.file_size)

# Typed error handling for a non-existent docket
try:
    client.dockets.get(docket_number="ZZ99-999")
except DocketNotFound as exc:
    print(f"Docket not found: {exc.docket_number}")

# Browse CP certificate dockets (paginated)
for doc in client.dockets.list_cp(limit=3):
    print(doc.accession_number, doc.docket_numbers, doc.category)

print("exercised: documents.search / dockets.get / documents.get / dockets.list_cp")
All endpoints · 4 totalmissing one? ·

Full-text and filtered search across the entire FERC eLibrary. Supports query text (matched against document descriptions), docket-number prefix filtering (short prefixes like 'CP' are auto-wildcarded), and filed-date range. Returns paginated results ordered by relevance score. Each hit includes description, category, accession number, filed date, docket numbers, transmittals (attached files metadata), and author/recipient affiliations.

Input
ParamTypeDescription
pageintegerPage number (0-based).
limitintegerMaximum results per page.
querystringSearch query text matched against document descriptions. Omitting or leaving blank searches all documents.
end_datestringEnd of filed-date range in YYYY-MM-DD format.
start_datestringStart of filed-date range in YYYY-MM-DD format.
docket_numberstringDocket number or prefix to filter by. Short prefixes (4 chars or fewer) are automatically wildcarded (e.g. 'CP' becomes 'CP*'). Full docket numbers like 'CP21-470' search exactly.
Response
{
  "type": "object",
  "fields": {
    "numHits": "integer number of results returned on this page",
    "totalHits": "integer total number of matching documents across all pages",
    "searchHits": "array of document objects with description, category, acesssionNumber, filedDate, docketNumbers, transmittals, affiliations, and score"
  },
  "sample": {
    "data": {
      "numHits": 5,
      "success": true,
      "totalHits": 332267,
      "searchHits": [
        {
          "score": 81.68,
          "category": "Submittal",
          "filedDate": "10/21/1982",
          "documentId": "62C752AA-C489-C48E-A6D2-773671F00000",
          "description": "Fwds joint reply brief of Cascade Natural Gas",
          "affiliations": [
            {
              "afType": "AUTHOR",
              "lastName": "GALLOWAY",
              "affiliation": "CASCADE NATURAL GAS CORP"
            }
          ],
          "transmittals": [
            {
              "fileId": "0",
              "fileName": "",
              "fileType": "",
              "fileFormat": "Microfilm"
            }
          ],
          "docketNumbers": [
            "RP81-47-000"
          ],
          "acesssionNumber": "19821022-0131"
        }
      ],
      "errorMessage": null,
      "searchResultId": null
    },
    "status": "success"
  }
}

About the FERC API

Search and Filter FERC Filings

The general_search endpoint accepts a free-text query matched against document descriptions, an optional docket_number prefix (prefixes of 4 characters or fewer are automatically wildcarded — entering CP returns all CP-prefixed dockets), and a start_date/end_date range in YYYY-MM-DD format. Results are paginated via 0-based page and limit parameters. Each result in searchHits carries a description, category, accessionNumber, filedDate, docketNumbers, transmittals, affiliations, and a relevance score. totalHits tells you how many documents match across all pages.

CP Docket Convenience Endpoint

get_cp_dockets is a pre-filtered variant scoped to Certificate of Public Convenience and Necessity filings. It returns the same paginated searchHits shape as general_search without requiring you to supply the docket prefix manually — useful when you only care about pipeline and LNG terminal certificate proceedings.

Docket Sheets and Document Lookup

get_docket_details takes an exact docket_number (for example, CP21-470) and returns five top-level fields: filings (a DataList of filing objects each containing DocumentsItem, AuthorsItem, and FedCitesItem), applicants (a DataList of applicant records), description (docket description text), sub_dockets (an array of related docket number strings), and an echo of the requested docket_number. get_document_details accepts an accession_number in YYYYMMDD-NNNN format and returns the matching document's full metadata including transmittals (file names, types, and sizes), author/recipient affiliations, and associated docketNumbers. It typically returns exactly one hit.

Reliability & maintenanceVerified

The FERC API is a managed, monitored endpoint for elibrary.ferc.gov — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when elibrary.ferc.gov changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official elibrary.ferc.gov API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3d ago
Latest check
4/4 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Monitor new filings on a specific docket number by polling get_docket_details and diffing the filings.DataList array.
  • Track all CP-prefix certificate proceedings over a date range using get_cp_dockets with start_date and end_date.
  • Resolve an accession number found in a filing index to its full document metadata using get_document_details.
  • Identify all applicants associated with a gas pipeline docket via the applicants.DataList returned by get_docket_details.
  • Build a text-search interface over FERC regulatory documents using the query parameter in general_search.
  • Enumerate sub-dockets for a complex multi-phase proceeding via the sub_dockets array in get_docket_details.
  • Audit document file types and sizes by inspecting the transmittals field returned in search results or document detail responses.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does FERC eLibrary have an official developer API?+
FERC does not publish a documented public developer API for eLibrary. The eLibrary site at https://elibrary.ferc.gov is intended for browser-based search and document retrieval.
What does `get_docket_details` return beyond a list of filings?+
In addition to the filings object (which contains a DataList of documents with author and federal-citation data), the endpoint returns applicants (names of parties to the proceeding), description (the official docket description text), and sub_dockets (an array of related docket number strings for multi-phase proceedings).
How does docket-number prefix wildcarding work in `general_search`?+
If you supply a docket_number value of 4 characters or fewer — such as CP or ER — the endpoint automatically appends a wildcard so it matches all dockets with that prefix. Longer, more specific values like CP21-470 are treated as exact matches.
Does the API return the actual document files or only metadata?+
The API returns document metadata only: descriptions, categories, filed dates, accession numbers, and transmittal information (file names, types, sizes). It does not return binary document content or direct download URLs for PDFs. The transmittals field tells you what files are attached, but retrieving those files is not currently covered. You can fork this API on Parse and revise it to add a download-link or file-retrieval endpoint.
Are there any docket types not covered by the current endpoints?+
The API covers general filings across all FERC docket types, with a dedicated convenience endpoint for CP dockets. Docket-type-specific convenience wrappers for other common prefixes — such as ER (electric rates), EL (electric), or RP (gas rate) — are not currently included. You can fork this API on Parse and revise it to add pre-filtered endpoints for those docket types.
Page content last updated . Spec covers 4 endpoints from elibrary.ferc.gov.
Related APIs in Government PublicSee all →
puc.texas.gov API
Search Texas Public Utility Commission dockets and filings to find case information, retrieve documents, and track utility regulatory submissions by control number or filing date. Access details about utility types, item classifications, and specific document links for PUCT Interchange proceedings.
sec.gov API
Search for publicly traded companies and instantly access their SEC filings with details like filing type, date, description, and accession numbers. Find the regulatory documents you need to research company financial information and compliance records.
puc.ny.gov API
Search and retrieve documents and case details from New York's Public Service Commission proceedings to find regulatory filings, case information, and official documents. Quickly locate specific cases and access their associated documents through full-text search capabilities.
sedarplus.ca API
sedarplus.ca API
ccee.org.br API
Access real-time electricity spot prices (PLD) and search CCEE documents and board meeting minutes to stay informed on Brazil's energy market. Filter and retrieve current pricing data and historical meeting records to track energy market developments.
justice.gov API
Search and retrieve official U.S. Department of Justice press releases. Find information on DOJ announcements, enforcement actions, settlements, and legal proceedings across all topic areas. Access full press release details including case summaries, entities involved, and filing dates.
graybar.com API
Search and discover electrical products on Graybar by name, SKU, or manufacturer part number, and view detailed specifications including pricing and availability.
13f.info API
13f.info API