spotprice

Get spot prices from Nordpool. Works in Node, Deno and Bun.

Note This works great, but it is in no way an official way of fetching data from Nordpool. See this as a proof of concept.

Node.js CI Deno CI Bun CI npm version NPM Downloads jsdelivr MIT License

  • Works in Node.js >=18.0 (both require and import)
  • Works in Deno >=1.16
  • Works in Bun >=0.2.2
  • Supports both CommonJS, UMD and ESM
  • Includes TypeScript typings

Installation

Node.js

npm install spotprice --save

JavaScript

// ESM Import ...
import spotprice from "spotprice";

// ... or CommonJS Require
const spotprice = require("spotprice");

TypeScript

Note Only default export is available in Node.js TypeScript, as the commonjs module is used internally.

import spotprice from "spotprice";

// ...

Bun

bun add spotprice

Note If you experience problems during install, try using bun add spotprice --backend=copyfile.

import spotprice from "spotprice";

// ...

Deno

JavaScript

import spotprice from "https://deno.land/x/spotprice@0.0.3/dist/spotprice.min.mjs";

// ...

TypeScript

import { spotprice } from "https://deno.land/x/spotprice@0.0.3/dist/spotprice.min.mjs";

// ...

Documentation

Full documentation available at hexagon.github.io/spotprice.

Examples

Assuming you have imported spotprice as described under 'Installation'.

// Import using the right method for your runtime
// according to the 'Installation'-section of the README
// This example is for Node/Bun using EMS import
import { spotprice } from "spotprice";

// Get spot prices today
const result = await spotprice("hourly", "SE2", "SEK", new Date());

/* 
  To get yesterday, today and tomorrow in one go:

  const
    oneDayMs = 24 * 3600 * 1000,
    result = [
        ...await spotprice("hourly", config.area, config.currency, new Date(new Date().getTime() - oneDayMs)),
        ...await spotprice("hourly", config.area, config.currency, new Date()),
        ...await spotprice("hourly", config.area, config.currency, new Date(new Date().getTime() + oneDayMs)),
    ];
*/

console.table(result);

/* 

Output (example data):

┌─────────┬──────────────────────────┬──────────────────────────┬──────────┬───────────┬───────────┐
│ (index) │        startTime         │         endTime          │ areaCode │ spotPrice │   unit    │
├─────────┼──────────────────────────┼──────────────────────────┼──────────┼───────────┼───────────┤
│    0    │ 2022-11-19T23:00:00.000Z │ 2022-11-21T00:00:00.000Z │  'SE4'   │  1394.85  │ 'SEK/MWh' │
│    1    │ 2022-11-20T00:00:00.000Z │ 2022-11-21T01:00:00.000Z │  'SE4'   │  1395.06  │ 'SEK/MWh' │
│    2    │ 2022-11-20T01:00:00.000Z │ 2022-11-21T02:00:00.000Z │  'SE4'   │  1492.11  │ 'SEK/MWh' │
│    3    │ 2022-11-20T02:00:00.000Z │ 2022-11-21T03:00:00.000Z │  'SE4'   │  1443.97  │ 'SEK/MWh' │
│    4    │ 2022-11-20T03:00:00.000Z │ 2022-11-21T04:00:00.000Z │  'SE4'   │  1548.6   │ 'SEK/MWh' │
│    5    │ 2022-11-20T04:00:00.000Z │ 2022-11-21T05:00:00.000Z │  'SE4'   │  1708.96  │ 'SEK/MWh' │
│    6    │ 2022-11-20T05:00:00.000Z │ 2022-11-21T06:00:00.000Z │  'SE4'   │  2871.89  │ 'SEK/MWh' │

[...]

Full API

Todo ...

Contributing

See Contribution Guide

License

MIT