puc.texas.gov APIpuc.texas.gov ↗
Access Texas Public Utility Commission dockets, filings, and document links via 7 endpoints. Search cases by control number, utility type, date, and document type.
curl -X GET 'https://api.parse.bot/scraper/d02e185d-5b07-44e6-a934-f03130fa799a/search_dockets?page=1&case_style=electric&utility_type=E&date_filed_to=03%2F01%2F2025&date_filed_from=01%2F01%2F2025' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for dockets/cases in the PUCT Interchange system. Returns paginated results sorted descending by default.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for paginated results. |
| case_style | string | Case style or description keywords to filter by. |
| utility_type | string | Utility type filter. Accepted values: A (All), E (Electric), W (Water), T (Telephone), O (Others). |
| date_filed_to | string | End date in MM/DD/YYYY format. |
| document_type | string | Filter by document type code. Use get_item_types endpoint for the full list of accepted values. |
| control_number | string | Docket control number to search for. |
| date_filed_from | string | Start date in MM/DD/YYYY format. |
| filing_description | string | Filing description keywords to filter by. |
{
"type": "object",
"fields": {
"page": "string - current page number",
"dockets": "array of docket objects with Control, Control_url, Filings, Utility, and Description (Case Style) fields",
"total_records": "string - total records found message"
},
"sample": {
"data": {
"page": "1",
"dockets": [
{
"Control": "18688",
"Filings": "6",
"Utility": "PUC-ELEC",
"Control_url": "https://interchange.puc.texas.gov/search/filings/?ControlNumber=18688&UtilityType=E&ItemMatch=Equal&DocumentType=ALL&DateFiledFrom=01%2F01%2F2025%2000%3A00%3A00&DateFiledTo=03%2F01%2F2025%2000%3A00%3A00",
"Description (Case Style)": "ELECTRIC SECURITIES AND EXCHANGE (SEC) FORM 10-K PURSUANT TO SUBST. R. 25.73(c) & 25.71"
}
],
"total_records": "490 record(s) found."
},
"status": "success"
}
}About the puc.texas.gov API
The puc.texas.gov API provides structured access to the Texas Public Utility Commission Interchange system across 7 endpoints, covering docket search, filing retrieval, and document-level metadata. search_dockets lets you filter PUCT cases by utility type, date range, and keywords, while get_document_details returns downloadable document URLs alongside filing party and case style metadata — giving developers a direct path into Texas utility regulatory records.
Docket and Filing Search
The search_dockets endpoint accepts filters for case_style, control_number, utility_type (E for Electric, W for Water, T for Telephone, O for Others, or A for All), date_filed_from/date_filed_to in MM/DD/YYYY format, and document_type codes sourced from get_item_types. Results are paginated and return each docket's control number with a URL, filing count, utility type, and case description. The daily_filing_search endpoint narrows results to a specific date or date range, returning item number, item type, date filed, and utility type per filing.
Case-Level Filing and Document Retrieval
get_case_filings takes a required control_number and returns every filing under that case: item number with URL, file stamp, party name, item type, and filing description. An optional document_type filter reduces the result set. To drill further, get_document_details accepts both control_number and item_number and returns file-level metadata — file stamp, filing party, case style, filing description — plus an array of documents each with a name, URL, description, and type classification.
Reference and Discovery Endpoints
get_recently_issued_control_numbers returns the last 15 days of new dockets with control number, date filed, and description — useful for change-detection workflows without querying by date manually. get_utility_types and get_item_types return the accepted filter codes and their human-readable labels, so applications can build dropdowns or validate inputs without hardcoding values that may change.
Coverage and Scope
All data reflects proceedings filed with the PUCT through the Interchange portal. Dockets span electric, water, and telephone utility sectors in Texas. Document URLs returned by get_document_details point to filings within the PUCT system; the API does not fetch or proxy the document content itself.
- Monitor new Texas utility regulatory filings by polling
get_recently_issued_control_numbersdaily - Build a docket alert system that watches specific
control_numbervalues for new filings viaget_case_filings - Aggregate all PUCT electric utility cases by passing
utility_type=Eintosearch_dockets - Retrieve document download links for a specific filing using
get_document_detailswith control and item numbers - Track filings submitted within a custom date window using
daily_filing_searchwithdate_filed_fromanddate_filed_to - Populate a regulatory research tool with case styles, filing parties, and document types from PUCT dockets
- Validate document type filter codes dynamically by calling
get_item_typesbefore constructing search queries
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 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.
Does the Texas PUC have an official developer API for Interchange data?+
What does `get_document_details` return versus `get_case_filings`?+
get_case_filings lists all filings under a docket — item numbers, file stamps, parties, and item types — but does not go below the filing level. get_document_details takes a specific item_number and control_number and returns the individual documents within that filing, including each document's name, URL, description, and type. Use get_case_filings to enumerate items, then get_document_details to retrieve the actual document links.Does the API expose full document text or PDF content from PUCT filings?+
get_document_details returns document names, URLs, descriptions, and type classifications, but the document content itself is not fetched or returned. The URLs point to the PUCT system where the files are hosted. You can fork this API on Parse and revise it to add an endpoint that fetches and parses content from those document URLs.How does pagination work in `search_dockets` and `daily_filing_search`?+
page parameter. search_dockets returns a total_records string indicating the total match count alongside the current page value in the response. daily_filing_search similarly accepts a page input. Neither endpoint documents a fixed page size, so iterate page incrementally until the returned filings array is empty or smaller than a full page.