{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"16690776-e4ee-40bc-8dc3-5fd53cf83fa5","name":"E&C eCore API Documentation","description":"# API Reference\n\nThe E&C eCore API provides access to ePoint data in a secure and agile way. Our REST API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.\n\nThrough our API, you can access:\n\n- **Risk Management information**, such as contract data, executed clicks, volumes, or portfolio data.\n    \n- **Structure information**, such as meters, business units, legal entities, and their relationships.\n    \n- **Invoice information**, such as invoiced consumption and costs.\n    \n\n## What is a REST API?\n\nAn [API](https://www.twilio.com/docs/glossary/what-is-an-api) (Application Programming Interface) is a set of rules that enables programs to communicate with each other, exposing data and functionality over the Internet in a consistent format.\n\nREST stands for '[Representational State Transfer](http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm)', an architectural pattern for distributed systems that defines a consistent interface. When people refer to a 'REST API', they typically mean an API accessed using the HTTP protocol at predefined URLs.\n\nThese URLs represent resources—any information or content accessed at that location, returned as JSON, HTML, audio, or images. Resources often have methods available over HTTP, such as `GET`, `POST`, `PUT`, and `DELETE`. The current E&C eCore API only uses `POST` to obtain an access token; all other endpoints use `GET`.\n\n# Accessing the eCore API\n\n## Sign Up & Sign In\n\n1. Go to the [Developer Portal](https://developers.eecc.energy/quick-start#).\n    \n2. If you don't have an ePoint Web App (`portal.eecc.energy`) account:\n    \n    1. Click \"Sign Up\".\n        \n    2. Follow the instructions to complete registration.\n        \n    3. Sign in using your email and password.\n        \n3. If you have a `portal.eecc.energy` account, you can sign in using Azure AD B2C.\n    \n\n## Request API Credentials (Authentication)\n\n1. The public API follows the industry-standard protocol [OAuth 2.0](https://tools.ietf.org/html/rfc6749).\n    \n2. Upon request, E&C's [IT support team](https://mailto:support@eecc.energy) will generate and share your `client_id` and `client_secret` pair securely via a one-time share solution.\n    \n\n> **NOTE:**  \nYour API keys carry many privileges—keep them secure! Do not share your secret API keys in publicly accessible areas such as GitHub or client-side code. \n  \n\n## Activate Subscription (Authorization)\n\n1. API endpoints are accessible via \"Products,\" which define access levels and quota limits. Same as with credentials E&C's [IT support team](https://mailto:support@eecc.energy) will generate first pair of keys for you.\n    \n2. Once your subscription is activated, you will see the Primary and Secondary keys in the [Developer Portal ](https://developers.eecc.energy) `Profile` page. There you will be able to also rotate those keys.\n    \n\n> **NOTE:**  \nRegularly regenerating keys is a common security practice. Applications using the service should alternate between _key A_ and _key B_ while regenerating keys with minimal disruption. \n  \n\n# Extract Your First Risk Management Data\n\nWe recommend using Postman to interact with our API. You can use the Postman Desktop App or Web Application. If you want to use our collection, you can fork it using the button below.\n\n## Fork eCore API Public Collection and Environment\n\nFollow the official [Postman documentation on forking collections](https://learning.postman.com/docs/collaborating-in-postman/using-version-control/forking-elements/).\n\n> **NOTE:**  \nUse Postman's Environment Variables to store sensitive parameters, especially your subscription keys and credentials. \n  \n\n## Populate Environment with Secrets\n\nOnce the collection has been forked and is in your private workspace, populate the environment placeholders with values provided by E&C. These values will be automatically added to all your requests.\n\nNext, activate the environment.\n\n> **Tip:** Ensure your environment is activated. If you hover over a variable, you should see its value filled in. If not, select the correct environment from the top right. \n  \n\n## Call the `POST` Authentication Token Endpoint\n\nNow you should be able to use the `POST` Authentication Token endpoint to request an access token. The `grant_type` is `client_credentials`, and it uses the `auth_client_id`, `auth_client_secret`, `auth_scope`, and `auth_access_token_url` environment variables to authenticate against our B2C tenant.\n\nIf successful, you will receive an `access_token` and information about its expiration. Use this information to request a new token before the current one expires.\n\n> **NOTE:**  \nA post-response script in Postman will store your `access_token` in an environment variable for future use. \n  \n\n## Call the `GET` Contracts Endpoint\n\n- The `BaseURL` (`https://api.eecc.energy/v1`) is stored as an environment variable.\n    \n- The `access_token` should already be set as an environment variable.\n    \n- All endpoints require a `subscription-key` and `access_token` in the request headers.\n    \n- Additional parameters are optional.\n    \n- A `200 OK` status code means the request was successful, and a JSON response should be returned.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":true,"owner":"23806507","team":5293214,"collectionId":"16690776-e4ee-40bc-8dc3-5fd53cf83fa5","publishedId":"2sB34Zq4Dm","public":true,"publicUrl":"https://docs.eecc.energy","privateUrl":"https://go.postman.co/documentation/23806507-16690776-e4ee-40bc-8dc3-5fd53cf83fa5","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.1","publishDate":"2025-06-30T13:54:44.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[{"name":"ecore_api_env","id":"8b5ea386-ef28-45df-ad49-dd7c1454b269","owner":"23806507","values":[{"key":"subscription_key","value":"","enabled":true,"type":"secret"},{"key":"auth_client_id","value":"","enabled":true,"type":"secret"},{"key":"auth_client_secret","value":"","enabled":true,"type":"secret"},{"key":"auth_access_token_url","value":"","enabled":true,"type":"secret"},{"key":"auth_scope","value":"","enabled":true,"type":"secret"},{"key":"baseUrl","value":"https://api.eecc.energy/v1","enabled":true,"type":"default"},{"key":"access_token","value":"","enabled":true,"type":"secret"}],"published":true}],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/d1ddc39023adbd57af7805a02ed9c71ca96a6d99b4b61d3c180b64fae74460d0","favicon":"https://eecc.energy/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"},{"label":"ecore_api_env","value":"23806507-8b5ea386-ef28-45df-ad49-dd7c1454b269"}],"canonicalUrl":"https://docs.eecc.energy/view/metadata/2sB34Zq4Dm"}