EIA

EIA COAL API

Access to Coal Data

Operations 67

GET /v2/coal/aggregate-production/facet/{facet_id}
GET /v2/coal/consumption-and-quality/facet/{facet_id}
GET /v2/coal/exports-imports-quantity-price/facet/{facet_id}
GET /v2/coal/market-sales-price/facet/{facet_id}
GET /v2/coal/mine-production/facet/{facet_id}
GET /v2/coal/price-by-rank/facet/{facet_id}
GET /v2/coal/reserves-capacity/facet/{facet_id}
GET /v2/coal/shipments/by-mine-by-plant/facet/{facet_id}
GET /v2/coal/shipments/mine-aggregates/facet/{facet_id}
GET /v2/coal/shipments/mine-state-aggregates/facet/{facet_id}
GET /v2/coal/shipments/plant-aggregates/facet/{facet_id}
GET /v2/coal/shipments/plant-state-aggregates/facet/{facet_id}
GET /v2/coal/shipments/receipts/facet/{facet_id}
GET /v2/coal/aggregate-production
GET /v2/coal/aggregate-production/facet
GET /v2/coal/aggregate-production/data
POST /v2/coal/aggregate-production/data Return aggregate-production Data
GET /v2/coal Class CoalController
GET /v2/coal/consumption-and-quality
GET /v2/coal/consumption-and-quality/facet
GET /v2/coal/consumption-and-quality/data
POST /v2/coal/consumption-and-quality/data Return consumption-and-quality Data
GET /v2/coal/exports-imports-quantity-price
GET /v2/coal/exports-imports-quantity-price/facet
GET /v2/coal/exports-imports-quantity-price/data
POST /v2/coal/exports-imports-quantity-price/data Return exports-imports-quantity-price Data
GET /v2/coal/market-sales-price
GET /v2/coal/market-sales-price/facet
GET /v2/coal/market-sales-price/data
POST /v2/coal/market-sales-price/data Return market-sales-price Data
GET /v2/coal/mine-production
GET /v2/coal/mine-production/facet
GET /v2/coal/mine-production/data
POST /v2/coal/mine-production/data Return mine-production Data
GET /v2/coal/price-by-rank
GET /v2/coal/price-by-rank/facet
GET /v2/coal/price-by-rank/data
POST /v2/coal/price-by-rank/data Return price-by-rank Data
GET /v2/coal/reserves-capacity
GET /v2/coal/reserves-capacity/facet
GET /v2/coal/reserves-capacity/data
POST /v2/coal/reserves-capacity/data Return reserves-capacity data
GET /v2/coal/shipments/by-mine-by-plant
GET /v2/coal/shipments/by-mine-by-plant/facet
GET /v2/coal/shipments/by-mine-by-plant/data
POST /v2/coal/shipments/by-mine-by-plant/data Return shipments by-mine-by-plant data
GET /v2/coal/shipments/mine-aggregates
GET /v2/coal/shipments/mine-aggregates/facet
GET /v2/coal/shipments/mine-aggregates/data
POST /v2/coal/shipments/mine-aggregates/data Return shipments mine-aggregates data
GET /v2/coal/shipments/mine-state-aggregates
GET /v2/coal/shipments/mine-state-aggregates/facet
GET /v2/coal/shipments/mine-state-aggregates/data
POST /v2/coal/shipments/mine-state-aggregates/data Return shipments mine-state-aggregates data
GET /v2/coal/shipments/plant-aggregates
GET /v2/coal/shipments/plant-aggregates/facet
GET /v2/coal/shipments/plant-aggregates/data
POST /v2/coal/shipments/plant-aggregates/data Return shipments plant-aggregates data
GET /v2/coal/shipments/plant-state-aggregates
GET /v2/coal/shipments/plant-state-aggregates/facet
GET /v2/coal/shipments/plant-state-aggregates/data
POST /v2/coal/shipments/plant-state-aggregates/data Return shipments plant-state-aggregates data
GET /v2/coal/shipments/receipts
GET /v2/coal/shipments/receipts/facet
GET /v2/coal/shipments/receipts/data
POST /v2/coal/shipments/receipts/data Return shipments receipts data
GET /v2/coal/shipments Class CoalController

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/eia-coal-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

eia-coal-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: EIA APIv2 COAL API
  description: Swagger UI interface for EIA's APIv2.  You can also explore EIA's API using the [Opendata Query Browser](https://www.eia.gov/opendata/browser/).  For this UI, you must use your EIA `api key` to apply filters and return data. You can register for an API Key at [https://www.eia.gov/opendata/](https://www.eia.gov/opendata/)
  version: 2.1.0
servers:
- url: https://api.eia.gov
security:
- api_key: []
tags:
- name: COAL
  description: Access to Coal Data
paths:
  /v2/coal/aggregate-production/facet/{facet_id}:
    parameters:
    - $ref: '#/components/parameters/facetId'
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
  /v2/coal/consumption-and-quality/facet/{facet_id}:
    parameters:
    - $ref: '#/components/parameters/facetId'
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
  /v2/coal/exports-imports-quantity-price/facet/{facet_id}:
    parameters:
    - $ref: '#/components/parameters/facetId'
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
  /v2/coal/market-sales-price/facet/{facet_id}:
    parameters:
    - $ref: '#/components/parameters/facetId'
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
  /v2/coal/mine-production/facet/{facet_id}:
    parameters:
    - $ref: '#/components/parameters/facetId'
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
  /v2/coal/price-by-rank/facet/{facet_id}:
    parameters:
    - $ref: '#/components/parameters/facetId'
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
  /v2/coal/reserves-capacity/facet/{facet_id}:
    parameters:
    - $ref: '#/components/parameters/facetId'
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
  /v2/coal/shipments/by-mine-by-plant/facet/{facet_id}:
    parameters:
    - $ref: '#/components/parameters/facetId'
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
  /v2/coal/shipments/mine-aggregates/facet/{facet_id}:
    parameters:
    - $ref: '#/components/parameters/facetId'
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
  /v2/coal/shipments/mine-state-aggregates/facet/{facet_id}:
    parameters:
    - $ref: '#/components/parameters/facetId'
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
  /v2/coal/shipments/plant-aggregates/facet/{facet_id}:
    parameters:
    - $ref: '#/components/parameters/facetId'
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
  /v2/coal/shipments/plant-state-aggregates/facet/{facet_id}:
    parameters:
    - $ref: '#/components/parameters/facetId'
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
  /v2/coal/shipments/receipts/facet/{facet_id}:
    parameters:
    - $ref: '#/components/parameters/facetId'
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facet'
  /v2/coal/aggregate-production:
    get:
      tags:
      - COAL
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/final-route'
  /v2/coal/aggregate-production/facet:
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facets'
  /v2/coal/aggregate-production/data:
    get:
      tags:
      - COAL
      description: API data with query params
      parameters:
      - $ref: '#/components/parameters/data'
      - $ref: '#/components/parameters/facets'
      - $ref: '#/components/parameters/frequency'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/length'
      - $ref: '#/components/parameters/offset'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
    post:
      tags:
      - COAL
      summary: Return aggregate-production Data
      description: 'Class AggregateProductionController


        Aggregate Production data set top-level controller.'
      requestBody:
        $ref: '#/components/requestBodies/dataParams'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
  /v2/coal:
    get:
      tags:
      - COAL
      summary: Class CoalController
      description: Coal data set top-level controller.
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/route'
  /v2/coal/consumption-and-quality:
    get:
      tags:
      - COAL
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/final-route'
  /v2/coal/consumption-and-quality/facet:
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facets'
  /v2/coal/consumption-and-quality/data:
    get:
      tags:
      - COAL
      description: API data with query params
      parameters:
      - $ref: '#/components/parameters/data'
      - $ref: '#/components/parameters/facets'
      - $ref: '#/components/parameters/frequency'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/length'
      - $ref: '#/components/parameters/offset'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
    post:
      tags:
      - COAL
      summary: Return consumption-and-quality Data
      requestBody:
        $ref: '#/components/requestBodies/dataParams'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
  /v2/coal/exports-imports-quantity-price:
    get:
      tags:
      - COAL
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/final-route'
  /v2/coal/exports-imports-quantity-price/facet:
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facets'
  /v2/coal/exports-imports-quantity-price/data:
    get:
      tags:
      - COAL
      description: API data with query params
      parameters:
      - $ref: '#/components/parameters/data'
      - $ref: '#/components/parameters/facets'
      - $ref: '#/components/parameters/frequency'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/length'
      - $ref: '#/components/parameters/offset'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
    post:
      tags:
      - COAL
      summary: Return exports-imports-quantity-price Data
      description: 'Class ExportsImportsQuantityPriceController


        Exports\Imports Quantity\Price data set top-level controller.'
      requestBody:
        $ref: '#/components/requestBodies/dataParams'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
  /v2/coal/market-sales-price:
    get:
      tags:
      - COAL
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/final-route'
  /v2/coal/market-sales-price/facet:
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facets'
  /v2/coal/market-sales-price/data:
    get:
      tags:
      - COAL
      description: API data with query params
      parameters:
      - $ref: '#/components/parameters/data'
      - $ref: '#/components/parameters/facets'
      - $ref: '#/components/parameters/frequency'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/length'
      - $ref: '#/components/parameters/offset'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
    post:
      tags:
      - COAL
      summary: Return market-sales-price Data
      description: 'Class MarketSalesPriceController


        Market Sales Price data set top-level controller.'
      requestBody:
        $ref: '#/components/requestBodies/dataParams'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
  /v2/coal/mine-production:
    get:
      tags:
      - COAL
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/final-route'
  /v2/coal/mine-production/facet:
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facets'
  /v2/coal/mine-production/data:
    get:
      tags:
      - COAL
      description: API data with query params
      parameters:
      - $ref: '#/components/parameters/data'
      - $ref: '#/components/parameters/facets'
      - $ref: '#/components/parameters/frequency'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/length'
      - $ref: '#/components/parameters/offset'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
    post:
      tags:
      - COAL
      summary: Return mine-production Data
      description: 'Class MinProductionController


        Mine Production data set top-level controller.'
      requestBody:
        $ref: '#/components/requestBodies/dataParams'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
  /v2/coal/price-by-rank:
    get:
      tags:
      - COAL
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/final-route'
  /v2/coal/price-by-rank/facet:
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facets'
  /v2/coal/price-by-rank/data:
    get:
      tags:
      - COAL
      description: API data with query params
      parameters:
      - $ref: '#/components/parameters/data'
      - $ref: '#/components/parameters/facets'
      - $ref: '#/components/parameters/frequency'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/length'
      - $ref: '#/components/parameters/offset'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
    post:
      tags:
      - COAL
      summary: Return price-by-rank Data
      description: 'Class PriceByRankController


        Price By Rank data set top-level controller.'
      requestBody:
        $ref: '#/components/requestBodies/dataParams'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
  /v2/coal/reserves-capacity:
    get:
      tags:
      - COAL
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/final-route'
  /v2/coal/reserves-capacity/facet:
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facets'
  /v2/coal/reserves-capacity/data:
    get:
      tags:
      - COAL
      description: API data with query params
      parameters:
      - $ref: '#/components/parameters/data'
      - $ref: '#/components/parameters/facets'
      - $ref: '#/components/parameters/frequency'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/length'
      - $ref: '#/components/parameters/offset'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
    post:
      tags:
      - COAL
      summary: Return reserves-capacity data
      description: 'Class ReservesCapacityController


        Reserves Capacity data set top-level controller.'
      requestBody:
        $ref: '#/components/requestBodies/dataParams'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
  /v2/coal/shipments/by-mine-by-plant:
    get:
      tags:
      - COAL
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/final-route'
  /v2/coal/shipments/by-mine-by-plant/facet:
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facets'
  /v2/coal/shipments/by-mine-by-plant/data:
    get:
      tags:
      - COAL
      description: API data with query params
      parameters:
      - $ref: '#/components/parameters/data'
      - $ref: '#/components/parameters/facets'
      - $ref: '#/components/parameters/frequency'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/length'
      - $ref: '#/components/parameters/offset'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
    post:
      tags:
      - COAL
      summary: Return shipments by-mine-by-plant data
      requestBody:
        $ref: '#/components/requestBodies/dataParams'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
  /v2/coal/shipments/mine-aggregates:
    get:
      tags:
      - COAL
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/final-route'
  /v2/coal/shipments/mine-aggregates/facet:
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facets'
  /v2/coal/shipments/mine-aggregates/data:
    get:
      tags:
      - COAL
      description: API data with query params
      parameters:
      - $ref: '#/components/parameters/data'
      - $ref: '#/components/parameters/facets'
      - $ref: '#/components/parameters/frequency'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/length'
      - $ref: '#/components/parameters/offset'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
    post:
      tags:
      - COAL
      summary: Return shipments mine-aggregates data
      requestBody:
        $ref: '#/components/requestBodies/dataParams'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
  /v2/coal/shipments/mine-state-aggregates:
    get:
      tags:
      - COAL
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/final-route'
  /v2/coal/shipments/mine-state-aggregates/facet:
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facets'
  /v2/coal/shipments/mine-state-aggregates/data:
    get:
      tags:
      - COAL
      description: API data with query params
      parameters:
      - $ref: '#/components/parameters/data'
      - $ref: '#/components/parameters/facets'
      - $ref: '#/components/parameters/frequency'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/length'
      - $ref: '#/components/parameters/offset'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
    post:
      tags:
      - COAL
      summary: Return shipments mine-state-aggregates data
      requestBody:
        $ref: '#/components/requestBodies/dataParams'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
  /v2/coal/shipments/plant-aggregates:
    get:
      tags:
      - COAL
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/final-route'
  /v2/coal/shipments/plant-aggregates/facet:
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facets'
  /v2/coal/shipments/plant-aggregates/data:
    get:
      tags:
      - COAL
      description: API data with query params
      parameters:
      - $ref: '#/components/parameters/data'
      - $ref: '#/components/parameters/facets'
      - $ref: '#/components/parameters/frequency'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/length'
      - $ref: '#/components/parameters/offset'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
    post:
      tags:
      - COAL
      summary: Return shipments plant-aggregates data
      description: 'Class PlantAggregateController


        Coal\Shipments dataset controller.'
      requestBody:
        $ref: '#/components/requestBodies/dataParams'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
  /v2/coal/shipments/plant-state-aggregates:
    get:
      tags:
      - COAL
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/final-route'
  /v2/coal/shipments/plant-state-aggregates/facet:
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facets'
  /v2/coal/shipments/plant-state-aggregates/data:
    get:
      tags:
      - COAL
      description: API data with query params
      parameters:
      - $ref: '#/components/parameters/data'
      - $ref: '#/components/parameters/facets'
      - $ref: '#/components/parameters/frequency'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/length'
      - $ref: '#/components/parameters/offset'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
    post:
      tags:
      - COAL
      summary: Return shipments plant-state-aggregates data
      description: 'Class PlantStateAggregateController


        Coal\Shipments dataset controller.'
      requestBody:
        $ref: '#/components/requestBodies/dataParams'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
  /v2/coal/shipments/receipts:
    get:
      tags:
      - COAL
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/final-route'
  /v2/coal/shipments/receipts/facet:
    get:
      tags:
      - COAL
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/facets'
  /v2/coal/shipments/receipts/data:
    get:
      tags:
      - COAL
      description: API data with query params
      parameters:
      - $ref: '#/components/parameters/data'
      - $ref: '#/components/parameters/facets'
      - $ref: '#/components/parameters/frequency'
      - $ref: '#/components/parameters/start'
      - $ref: '#/components/parameters/end'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/length'
      - $ref: '#/components/parameters/offset'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
    post:
      tags:
      - COAL
      summary: Return shipments receipts data
      description: 'Class ReceiptsController


        Coal\Shipments dataset controller.'
      requestBody:
        $ref: '#/components/requestBodies/dataParams'
      responses:
        '400':
          description: Invalid input
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/data'
  /v2/coal/shipments:
    get:
      tags:
      - COAL
      summary: Class CoalController
      description: Coal data set top-level controller.
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/responses/route'
components:
  responses:
    route:
      description: List of API data sets
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RouteResponseContainer'
    facets:
      description: List of facet options
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FacetOptionListContainer'
    final-route:
      description: List of API data sets
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FinalRouteResponseContainer'
    facet:
      description: Facet details
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FacetDetailsContainer'
    data:
      description: API Data
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DataResponseContainer'
  schemas:
    DataResponseContainer:
      properties:
        apiVersion:
          type: string
        request:
          $ref: '#/components/schemas/RouteRequest'
        response:
          $ref: '#/components/schemas/DataResponse'
      type: object
    FacetDetails:
      properties:
        totalFacets:
          type: integer
        facets:
          type: array
          items:
            $ref: '#/components/schemas/Facet'
      type: object
    FacetDetailsContainer:
      properties:
        apiVersion:
          type: string
        request:
          $ref: '#/components/schemas/RouteRequest'
        response:
          $ref: '#/components/schemas/FacetDetails'
      type: object
    Frequency:
      properties:
        id:
          type: string
        description:
          type: string
        format:
          type: string
        query:
          type: string
      type: object
    RouteResponseContainer:
      properties:
        apiVersion:
          type: string
        request:
          $ref: '#/components/schemas/RouteRequest'
        response:
          $ref: '#/components/schemas/RouteResponse'
      type: object
    DataParams:
      properties:
        data:
          type: array
          items:
            type: string
        facets:
          type: object
        frequency:
          type: string
        start:
          type: string
        end:
   

# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/eia/refs/heads/main/openapi/eia-coal-api-openapi.yml