Skip to main content
Deno 2 is finally here 🎉️
Learn more

entsoe-api-client

Unofficial ENTSO-e REST API Client for Deno and Node. Complete. Easy to use. Minimal.

Module type: CJS+ESM NPM Downloads MIT License

Features

  • Supports all requests listed in Entso-e REST API Documentation
  • Support zip-file endpoints, unzips documents transparently
  • Examples written to support both Node and Deno
  • Supports Deno and Node
  • Fully Typed, written in TypeScript
  • ESM (Deno, Node) and CommonJS (Node) support
  • Adds description to codes while parsing the documents

Installation

Make sure to use a recent version of your runtime, Node.js >=18 and Deno >=1.26 is supported.

Deno

import { QueryConfiguration } from "https://deno.land/x/entsoe_api_client/mod.ts";

Node

npm install entsoe-api-client --save

Documentation

Documents structure and parameters returned by this library closely resemble what you find in ENTSO-e REST API documentation, so have a look there too.

If you want a Publication_MarketDocument, the corresponding function in this library is QueryPublication. In the resulting document (object), the key receiver_MarketParticipant.mRID will become receiverMarketParticipantId. The same goes for parameters. We recommend have auto-completion enabled in your editor, the types will give great help in navigating the parameters and document objects.

Another difference compared to source documents is that most ids automatically get a complementary description, where applicable. As an example businessType=B33 in the raw xml will result in keys businessType: "B33" and businessTypeDescription: "Area Control Error" in the output.

Note Full library and method documentation can be found at deno.land/x/entsoe_api_client.

Methods

Method Interface Description
Query (securityToken, params)
=>
Promise
Fetch any document, and return a array of typed and
parsed JavaScript object(s). Primarily internal, but exported.
QueryPublication (securityToken, params)
=>
Promise
Request Publication_MarketDocument(s), and return
a array of typed and parsed JavaScript object(s)
QueryGL (securityToken, params)
=>
Promise
Same, for GL_MarketDocument
QueryUnavailability (securityToken, params)
=>
Promise
Same, for Unavailability_MarketDocument
QueryConfiguration (securityToken, params)
=>
Promise
Same, for Configuration_MarketDocument
QueryBalancing (securityToken, params)
=>
Promise
Same, for Balancing_MarketDocument(s)
QueryTransmissionNetwork (securityToken, params)
=>
Promise
Same, for Transmission_MarketDocument(s)
QueryCriticalNetworkElement (securityToken, params)
=>
Promise
Same, for CriticalNetworkElement_MarketDocument(s)
ParseDocument (xmlDocument)
=>
PublicationDocument|BalancingDoc…
Parses raw XML into a typed object.
Primarily internal, but exported and usable.
FirstAreaByIdentifier (identifier)
=>
string[] | undefined
Finds internal id (10YL-1001A00074) of all areas
having aspecific identier (CTA|SE, BZN|DE-LU etc…)
AllAreasByIdentifier (identifier)
=>
string | undefined
Same as above, but return first match

Parameters

All parameters that can be passes to Query(), QueryPublication() etc.

Parameter Name Type Name in ENSO-e REST API Note
documentType string DocumentType
processType (optional) string ProcessType
businessType (optional) string BusinessType
psrType (optional) string PsrType
inDomain (optional) string In_Domain
inBiddingZoneDomain (optional) string InBiddingZone_Domain
biddingZoneDomain (optional) string BiddingZone_Domain
outDomain (optional) string Out_Domain
outBiddingZoneDomain (optional) string OutBiddingZone_Domain
startDateTime(optional) Date TimeInterval ISO8601 string
endDateTime (optional) Date TimeInterval ISO8601 string
startDateTimeUpdate (optional) Date TimeIntervalUpdate ISO8601 string
endDateTimeUpdate (optional) Date TimeIntervalUpdate ISO8601 string
offset (optional) number Offset Enables fetching more than x documents by using pagination
implementationDateAndOrTime (optional) string Implementation_DateAndOrTime ISO8601 string
contractMarketAgreementType (optional) string Contract_MarketAgreement.Type
auctionType (optional) string Auction.Type
auctionCategory (optional) string Auction.Category
classificationSequenceAICPosition (optional) string ClassificationSequence_(…).Position
connectingDomain (optional) string connecting_Domain
standardMarketProduct (optional) string Standard_MarketProduct
originalMarketProduct(optional) string Original_MarketProduct
registeredResource (optional) string registeredResource
acquiringDomain (optional) string Acquiring_Domain
mRID (optional) string mRID
docStatus (optional) string DocStatus

Examples

Examples can be found in the /examples directory.

To run the examples, pass your ENTSO-e API key by environment variable API_TOKEN.

Deno

Powershell

$env:API_TOKEN="your-api-token"; deno run -A .\spot-prices-today.ts

Bash

API_TOKEN="your-api-token" deno run -A .\spot-prices-today.ts

Node

Powershell

$env:API_TOKEN="your-api-token"; node .\spot-prices-today.ts

Bash

API_TOKEN="your-api-token" node .\spot-prices-today.ts

Contributing

Deno CI Node CI

All contributions are welcome.

Module is developed in Deno. Node module is generated by dnt, using scripts/build_npm.ts.

See Contribution Guide

Note Please run deno task precommit before each commit, to make sure every file is tested/formatted/linted to standards.

Donations

Sponsor me on GitHub, or

Buy Me a Coffee at ko-fi.com

License

MIT