Skip to content

Using the API


API Rate Limits

The API limits the number of requests you can send to ensure API performance, stability, and to prevent abuse. The API request rate limit is 30 requests per minute (approximately 1 request every 2 seconds). All requests that exceed the rate limit return a 429 “Too Many Requests” error code with the response body:

{
    "error_key": "throttled",
    "error_message": "Too Many Requests"
}

Additional API Limits

  • API data downloads are limited to the first loading date of the product into the API system. This is 12/11/2023 or more recent for newer products.

  • API downloads of historic files are limited to 1000 files at a time.

Web UI Limits

  • Web UI data downloads from the "View data" page are limited to the first loading date of the product being downloaded. This is 12/11/2023 or more recent for newer products.

  • Web UI downloads of historic files are limited to the number of files displayed on each page (ie. 500).


Retrieving a list of available EMIL Products

Users must provide a valid Subscription Key and your Authentication (ID) Token in all HTTP requests to the API. Without these credentials all calls will be rejected. See Registration and Authentication for further details.

List of available EMIL Products

Below are some examples for accessing the API using the with either Postman, Curl, JavaScript, Java, or Python.

    1. On the Authorization tab, set the Type as “Bearer Token” and in the Token field enter the id_token obtained previously.
    2. On the Headers tab, provide the subscription key: Ocp-Apim-Subscription-Key and enter your subscription key in the value field.

    1. Add the Subscription Key and ID Token to cURL command.
      curl
      1
      2
      3
      curl --location --request GET 'https://api.ercot.com/api/public-reports' \
      --header 'Ocp-Apim-Subscription-Key: 4ce1f2...' \
      --header 'Authorization: Bearer eyJhbGc...'
      
      response
      1
      {"_embedded":{"products":[{"emilId":"NP3-233-CD","name":"Hourly Resource Outage Capacity","description":"This report includes all approved and accepted Planned, Forced and Maintenance Resource outages EXCEPT Resource outages for retirement of old equipment, seasonal mothballed (during the outaged season), and mothballed. The outage capacity in this report reflects aggregated ACTIVE resource outaged capacity by Load Zone sourced from the Outage Scheduler (OS) for the next 168 hours and is published every hour. Columns 'C\\' - 'F' consists of the aggregated outaged capacity of ALL the ACTIVE resource outages by Load Zone in the OS for each hour excluding the outages stated above, IRR resource outages, and new equipment outages. Columns 'G' - 'J' consists of the aggregated outaged capacity of ALL the ACTIVE IRR resource outages by Load Zone in the OS for each hour excluding the outages stated above, outages in columns 'C' - 'F' and new equipment outages. Columns 'K' - 'N' consists of the aggregated outaged capacity of ALL the ACTIVE New Equipment Energization resource outages by Load Zone. Note that this report contains OS data only and does not look at telemetry. It includes both entire resource outage and de-rates.","status":"Active","reportTypeId":13103,"audience":"Public","generationFrequency":"Chron - Hourly","securityClassification":"Public","lastUpdated":"2021-06-04","firstRun":"2013-10-20","eceii":null,"channel":"Public, EWS","userGuide":null,"postingType":"Report","market":"Nodal","extractSubscriber":null,"xsdName":"Current Day Reports XSD","misPostingLocation":null,"certificateRole":null,"fileType":"zip, csv, xml","ddlName":null,"misDisplayDuration":31,"archiveDuration":2555,"notificationType":null,"contentType":"DATA","downloadLimit":1000,"lastPostDatetime":"2024-06-12T23:01:25","protocolRules":{"NP3.2.3(1)(b)":"https://www.ercot.com/mp/data-products?protocolRules=NP3.2.3(1)(b)"},"artifacts":[{"reportTypeId":13103,"displayName":"Hourly Resource Outage Capacity","_links":{"endpoint":{"href":"https://api.ercot.com/api/public-reports/np3-233-cd/hourly_res_outage_cap"}}}],"_links":{"self":{"href":"https://api.ercot.com/api/public-reports/np3-233-cd"},"parent":{"href":"https://api.ercot.com/api/public-reports"},"archive":{"href":"https://api.ercot.com/api/public-reports/archive/np3-233-cd"}}},...
      
    1. Define an Ocp-Apim-Subscription-Key header and add your Subscription Key to this value.
    2. Add the ID Token to the "authorization": "Bearer" header of your API requests.
      javascript
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      const SUBSCRIPTION_KEY = "your_subscription_key";
      const ID_TOKEN = "acquired_id_token";
      fetch("https://api.ercot.com/api/public-report/", {
          "headers": {
              "authorization": "Bearer " + ID_TOKEN,
              "Ocp-Apim-Subscription-Key”: SUBSCRIPTION_KEY,
          },
          "method": "GET",
      }).then(response => response.json())
      .then(data => console.log(data));
      
      response
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      53
      54
      55
      56
      57
      58
      59
      60
      {
          "_embedded": {
              "products": [
                  {
                      "emilId": "NP3-233-CD",
                      "name": "Hourly Resource Outage Capacity",
                      "description": "This report includes all approved and accepted Planned, Forced and Maintenance Resource outages...",
                      "status": "Active",
                      "reportTypeId": 13103,
                      "audience": "Public",
                      "generationFrequency": "Chron - Hourly",
                      "securityClassification": "Public",
                      "lastUpdated": "2021-06-04",
                      "firstRun": "2013-10-20",
                      "eceii": null,
                      "channel": "Public, EWS",
                      "userGuide": null,
                      "postingType": "Report",
                      "market": "Nodal",
                      "extractSubscriber": null,
                      "xsdName": "Current Day Reports XSD",
                      "misPostingLocation": null,
                      "certificateRole": null,
                      "fileType": "zip, csv, xml",
                      "ddlName": null,
                      "misDisplayDuration": 31,
                      "archiveDuration": 2555,
                      "notificationType": null,
                      "contentType": "DATA",
                      "downloadLimit": 1000,
                      "lastPostDatetime": "2024-06-13T17:01:41",
                      "protocolRules": {
                          "NP3.2.3(1)(b)": "https://www.ercot.com/mp/data-products?protocolRules=NP3.2.3(1)(b)"
                      },
                      "artifacts": [
                          {
                              "reportTypeId": 13103,
                              "displayName": "Hourly Resource Outage Capacity",
                              "_links": {
                                  "endpoint": {
                                      "href": "https://api.ercot.com/api/public-reports/np3-233-cd/hourly_res_outage_cap"
                                  }
                              }
                          }
                      ],
                      "_links": {
                          "self": {
                              "href": "https://api.ercot.com/api/public-reports/np3-233-cd"
                          },
                          "parent": {
                              "href": "https://api.ercot.com/api/public-reports"
                          },
                          "archive": {
                              "href": "https://api.ercot.com/api/public-reports/archive/np3-233-cd"
                          }
                      }
                  }
              ]
          }
      }
      
    1. Define an Ocp-Apim-Subscription-Key header and add your Subscription Key to this value.
    2. Add the ID Token to the "authorization": "Bearer" header of your API requests.
      java
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      final String PRODUCT_URI = "https://api.ercot.com/api/public-reports";
      HttpRequest productRequest = HttpRequest.newBuilder()
          .uri(URI.create(PRODUCT_URI))
          .GET()
          .header("Authorization", "Bearer " + bearerToken)
          .header("Ocp-Apim-Subscription-Key", SUBSCRIPTION_KEY)
          .build();
      
      HttpResponse<String> productResponse = httpClient.send(productRequest, HttpResponse.BodyHandlers.ofString());
      System.out.println(productResponse.body());
      
      response
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      53
      54
      55
      56
      57
      58
      59
      60
      {
          "_embedded": {
              "products": [
                  {
                      "emilId": "NP3-233-CD",
                      "name": "Hourly Resource Outage Capacity",
                      "description": "This report includes all approved and accepted Planned, Forced and Maintenance Resource outages...",
                      "status": "Active",
                      "reportTypeId": 13103,
                      "audience": "Public",
                      "generationFrequency": "Chron - Hourly",
                      "securityClassification": "Public",
                      "lastUpdated": "2021-06-04",
                      "firstRun": "2013-10-20",
                      "eceii": null,
                      "channel": "Public, EWS",
                      "userGuide": null,
                      "postingType": "Report",
                      "market": "Nodal",
                      "extractSubscriber": null,
                      "xsdName": "Current Day Reports XSD",
                      "misPostingLocation": null,
                      "certificateRole": null,
                      "fileType": "zip, csv, xml",
                      "ddlName": null,
                      "misDisplayDuration": 31,
                      "archiveDuration": 2555,
                      "notificationType": null,
                      "contentType": "DATA",
                      "downloadLimit": 1000,
                      "lastPostDatetime": "2024-06-13T17:01:41",
                      "protocolRules": {
                          "NP3.2.3(1)(b)": "https://www.ercot.com/mp/data-products?protocolRules=NP3.2.3(1)(b)"
                      },
                      "artifacts": [
                          {
                              "reportTypeId": 13103,
                              "displayName": "Hourly Resource Outage Capacity",
                              "_links": {
                                  "endpoint": {
                                      "href": "https://api.ercot.com/api/public-reports/np3-233-cd/hourly_res_outage_cap"
                                  }
                              }
                          }
                      ],
                      "_links": {
                          "self": {
                              "href": "https://api.ercot.com/api/public-reports/np3-233-cd"
                          },
                          "parent": {
                              "href": "https://api.ercot.com/api/public-reports"
                          },
                          "archive": {
                              "href": "https://api.ercot.com/api/public-reports/archive/np3-233-cd"
                          }
                      }
                  }
              ]
          }
      }
      
    1. Define an Ocp-Apim-Subscription-Key header and add your Subscription Key to this value.
    2. Add the ID Token to the "authorization": "Bearer" header of your API requests.
      python
      1
      2
      3
      4
      5
      PRODUCTS_URL = "https://api.ercot.com/api/public-reports"
      headers = {"Authorization": "Bearer " + access_token, "Ocp-Apim-Subscription-Key": SUBSCRIPTION_KEY}
      product_response = requests.get(PRODUCTS_URL, headers=headers)
      
      print (product_response.text)
      
      response
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      53
      54
      55
      56
      57
      58
      59
      60
      {
          "_embedded": {
              "products": [
                  {
                      "emilId": "NP3-233-CD",
                      "name": "Hourly Resource Outage Capacity",
                      "description": "This report includes all approved and accepted Planned, Forced and Maintenance Resource outages...",
                      "status": "Active",
                      "reportTypeId": 13103,
                      "audience": "Public",
                      "generationFrequency": "Chron - Hourly",
                      "securityClassification": "Public",
                      "lastUpdated": "2021-06-04",
                      "firstRun": "2013-10-20",
                      "eceii": null,
                      "channel": "Public, EWS",
                      "userGuide": null,
                      "postingType": "Report",
                      "market": "Nodal",
                      "extractSubscriber": null,
                      "xsdName": "Current Day Reports XSD",
                      "misPostingLocation": null,
                      "certificateRole": null,
                      "fileType": "zip, csv, xml",
                      "ddlName": null,
                      "misDisplayDuration": 31,
                      "archiveDuration": 2555,
                      "notificationType": null,
                      "contentType": "DATA",
                      "downloadLimit": 1000,
                      "lastPostDatetime": "2024-06-13T17:01:41",
                      "protocolRules": {
                          "NP3.2.3(1)(b)": "https://www.ercot.com/mp/data-products?protocolRules=NP3.2.3(1)(b)"
                      },
                      "artifacts": [
                          {
                              "reportTypeId": 13103,
                              "displayName": "Hourly Resource Outage Capacity",
                              "_links": {
                                  "endpoint": {
                                      "href": "https://api.ercot.com/api/public-reports/np3-233-cd/hourly_res_outage_cap"
                                  }
                              }
                          }
                      ],
                      "_links": {
                          "self": {
                              "href": "https://api.ercot.com/api/public-reports/np3-233-cd"
                          },
                          "parent": {
                              "href": "https://api.ercot.com/api/public-reports"
                          },
                          "archive": {
                              "href": "https://api.ercot.com/api/public-reports/archive/np3-233-cd"
                          }
                      }
                  }
              ]
          }
      }
      



Retrieving a list of reports within an EMIL Product

Coming Soon


Retrieving data from a EMIL Product Artifact

Coming Soon


Getting history archives for an EMIL Product

Coming Soon