API documentation

Følg

Vores første API-version er landet. Her kan man hente spotpris direkte fra elbørsen (Nord Pool). Man skal være Barry-kunde for at kunne få adgang. API'en er desværre ikke Plug & Play, men hvis du tidligere har leget med integrationer, så lover vi, at det nok skal spille.

Endpoint URL

API endpointet anvender JSON-RPC som protokol over HTTPS:

https://jsonrpc.barry.energy/json-rpc

Snippet

Vi anvender Curl som default for at vise et eksempel på vores API-snippet. Man kan kopiere dette og tage den i brug, selvom enkelte linjer kode skal tilpasses:

curl --request POST 'https://jsonrpc.barry.energy/json-rpc' \ 

--header 'Authorization: Bearer {{token}}’ \ 

--header 'Content-Type: application/json' \ 

--data-raw '{ 

       "jsonrpc": "2.0",

       "id": 0,

       "method": "co.getbarry.api.v1.OpenApiController.getPrice",

       "params": [

             "DK_NORDPOOL_SPOT_DK1",

             "2020-04-20T01:00:00Z",

             "2020-04-20T02:00:00Z"

      ]

}'

Request og code breakdown

Der er to specielle headers - en til autentificering og en til body content types - der skal anvendes:

Autentificering: --header 'Authorization: Bearer {{token}}’ \

Body content types: --header 'Content-Type: application/json' \

Autentificering

Autentificering kræver, at man tilgår app'ens Add-ons sektion og tilgår Barry API. Her genererer man et new bearer token ved at klikke på: generer nyt token. Siden er udelukkende tilgængelig i app-version 1.15 og frem.

Efterfølgende kan man enten kopiere sit token direkte fra app'en, eller man kan sende det til sig selv via email.

Authentication.jpg

Når man har genereret et bearer token i app'en, erstatter man {{token}} fra den første header med dette.

The Body

Dette er et JSON-objekt, som består af fire felter: jsonrpc, id, method og params. Det kan se således ud:

API_-_The_Body.jpg

De forskellige felter er en kombination af statiske og dynamiske, som bliver forklaret nærmere her:

"jsonrpc": dette felt definerer jsonrpc-versionen, hvor vi anvender v2.0.

"id": dette felt anvendes for at matche et svar med en forespørgsel. Det kan man selv ændre ved.

"method": dette felt definerer, hvilket endpoint der anvendes. getPrice er indtil videre det eneste tilgængelige endpoint, som vi har.

"params": denne sektion består af tre forskellige dele:

Priszone: Her vælger man: DK_NORDPOOL_SPOT_DK1 eller DK_NORDPOOL_SPOT_DK2.

DK1 er Vestdanmark (postnummer over 4999), mens DK2 er Østdanmark (postnummer under 5000).

Det skal med, at API-priser vises uden moms.

Start date/time: "YYYY-MM-DDThh:mm:ssZ"

End date/time: "YYYY-MM-DDThh:mm:ssZ”

Her indtaster man blot de tidspunkter, der passer med perioden, som man ønsker data for.

Tidsformatet er: ISO-8601 UTC.

13 ud af 13 fandt dette nyttigt

Kommentarer

6 kommentarer
  • Hej Barry.
    Det ser lovende ud.
    Kan i forklare hvad, hvis nogen, forskel der er på jeres API og det Nordpool selv udstiller?
    Find mere ind her: https://www.energidataservice.dk/tso-electricity/elspotprices

    0
    Kommentarhandlinger Permalink
  • Hej Søren,

    Jeg må indrømme, at jeg ikke selv er meget inde i den her slags ting, men som jeg forstår det, så er der ikke den store forskel på vores og Nord Pools API endnu.

    Vi har forsøgt at kommunikere ud, at det i første omgang blev en lidt rudimentær udgave, men at vi rigtigt gerne ville i gang - næste skridt bliver udvidelser med mængden af vedvarende energi, som er tilgængeligt i det fælles elnet, samt CO2-niveau, ligesom graferne på forsiden i app'en. Herefter ved jeg ikke, hvad planerne er, men lad os håbe, at kun fantasien sætter grænser.

    Mvh. Loke // Barry

    0
    Kommentarhandlinger Permalink
  • Hey this is awesome work.
    Any chance we’ll get an open API to retrieve some of our consumption data in the near future? I can see an opportunity to create some interesting visualizations from that.
    Cheers,
    Dan

    1
    Kommentarhandlinger Permalink
  • Hi Dan,

    Thank you for the feedback! 😊

    I can't say for sure, what's gonna happen in the future, because our technicians are focusing on quality control after our big system-update a couple of weeks ago, but I'll let them know about your inputs for sure, so they're aware. It might not be that difficult to implement, so hopefully it will end up on our road map.

    Best regards, Loke // Barry

    0
    Kommentarhandlinger Permalink
  • Hej Loke,

    Tak for at gøre API tilgængelig :-)

    Måske der er noget med tidsformatet jeg ikke har på plads, for når jeg forespørger på den sidste time (23-00):
    "params":["DK_NORDPOOL_SPOT_DK1","2020-12-09T23:00:00Z","2020-12-10T00:00:00Z"]
    ..så kommer resultatet tomt tilbage.

    Alle de øvrige kører glat.

    Hvordan får jeg fat i den sidste time af dayahead?
    Skulle det ikke bare være fra time 23 til 00 (dagen efter)

    Pft,
    Christian

    0
    Kommentarhandlinger Permalink
  • Hej Christian,

    Det hele er sat op med UTC, hvilket er en time efter, så mit bedste bud er, at den pågældende time, du nævner, faktisk hedder 00.00-01.00 dansk tid, hvor vi ikke har modtaget nogen priser fra elbørsen endnu. Disse udkommer normalt først omkring kl. 14.00 dagen før, selvom vi ikke kan give et helt præcist tidspunkt.

    Mvh. Loke // Barry

    0
    Kommentarhandlinger Permalink

Log ind for at kommentere.