API documentation

Følg

Vores første API-version er landet. Her vil man kunne 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 Public API sektion og genererer et new bearer token ved at klikke på knappen: generate token. For at tilgå siden, så skal man ind under Road Map, som man markerer og holder inde med fingeren i to sekunder. Siden er udelukkende tilgængelig i app-version 1.15.

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.

12 ud af 12 fandt dette nyttigt

Kommentarer

3 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

    0
    Kommentarhandlinger Permalink

Log ind for at kommentere.