Using the API
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.
-
- On the Authorization tab, set the Type as “Bearer Token” and in the Token field enter the id_token obtained previously.
- On the Headers tab, provide the subscription key: Ocp-Apim-Subscription-Key and enter your subscription key in the value field.
-
- 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"}}},...
- Add the Subscription Key and ID Token to cURL command.
-
- Define an Ocp-Apim-Subscription-Key header and add your Subscription Key to this value.
- 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" } } } ] } }
-
- Define an Ocp-Apim-Subscription-Key header and add your Subscription Key to this value.
- 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" } } } ] } }
-
- Define an Ocp-Apim-Subscription-Key header and add your Subscription Key to this value.
- 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