Skip to content

API Developer Guide

Matt Magoffin edited this page Jul 24, 2026 · 12 revisions

SolarNetwork exposes some web service methods for use by developers wishing to create applications that integrate with SolarNetwork.

API Explorer

Use the API Explorer to try out the SolarNetwork API, which has API templates to help you form appropriate API calls.

s10k command line tool

The s10k tool provides many handy commands you can run from your command line, such as discovering the data structure of datum streams or downloading sets of datum. For example:

# discover the available datum streams for a given node
s10k datum stream list --node-id 101

+--------------------------------------+------+-----+---------------+------------------+---------------------------------+--------------+--------+
| Stream ID                            | Kind | ID  | Source ID     | Time Zone        | Instantaneous                   | Accumulating | Status |
+--------------------------------------+------+-----+---------------+------------------+---------------------------------+--------------+--------+
| f68e81cd-2ac3-4760-b449-16ebce64c15a | Node | 101 | switch/1      | Pacific/Auckland |                                 |              | val    |
+--------------------------------------+------+-----+---------------+------------------+---------------------------------+--------------+--------+
| 6718cc51-e5fb-43a9-a33f-344bc34916f2 | Node | 101 | power/limit   | Pacific/Auckland | v                               |              | val    |
+--------------------------------------+------+-----+---------------+------------------+---------------------------------+--------------+--------+
| cc114908-cc0f-4680-a92e-718690742ba9 | Node | 101 | gen/1         | Pacific/Auckland | current,frequency,voltage,watts | wattHours    |        |
+--------------------------------------+------+-----+---------------+------------------+---------------------------------+--------------+--------+

# download 1 month's worth of hourly data for the gen/1 stream, in CSV format
s10k datum list --display-mode csv --node-id 101 --source-id gen/1 \
  --local-dates --min-date 2025-08-01 --max-date 2025-09-01 --aggregation Hour

ts_start,ts_end,streamId,objectId,sourceId,watts,watts_count,watts_min,watts_max,current,current_count,current_min,current_max,voltage,voltage_count,voltage_min,voltage_max,frequency,frequency_count,frequency_min,frequency_max,wattHours,wattHours_start,wattHours_end,tags
2025-08-01T05:00:00Z,,03c6bd01-9241-4771-ad3c-a1d5eb06b68a,101,gen/1,2473.9038461538500000,52,1153,3518,10.7490174230769000,52,5.0912933,14.998348,230.1490155769230000,52,225.00418,234.99796,49.9755515576923000,52,49.800114,50.199997,2078.5,8186363,8225742,
2025-08-01T06:00:00Z,,03c6bd01-9241-4771-ad3c-a1d5eb06b68a,101,gen/1,2374.8166666666700000,60,1130,3501,10.3080711733333000,60,5.0031877,14.948236,230.273054,60,225.00723,234.97006,50.0040209666667000,60,49.800064,50.2,2347.3,8225742,8228086,
# ... and so on

JavaScript library

Use the solarnetwork-api-core JavaScript library to help you use the SolarNetwork API in web applications.

Use the solarnetwork-datum-loader JavaScript library to help you query datum streams using the [SolarQuery API][solarquery-qpi].

Use the solarnetwork-control-toggler JavaScript library to help you manage and monitor a SolarNode control using the SolarUser API.

JavaScript examples

Here are some examples that demonstrate using the SolarNetwork API:

Example Description
Chart using TypeScript and Billboard.js TypeScript project that demonstrates using the solarnetwork-api-core package to make authenticated API calls that drive the generation of an area chart using the billboard.js library.
Control Toggler using TypeScript TypeScript project that demonstrates using the solarnetwork-control-toggler package to make authenticated API calls to manage and monitor a SolarNode control.
Datum Loader using TypeScript TypeScript project that demonstrates using the solarnetwork-datum-loader package to make authenticated API calls to fetch large data sets from SolarNetwork.
Datum Loader CLI NodeJS CLI app that demonstrates using the solarnetwork-datum-loader package to make authenticated API calls to fetch large data sets from SolarNetwork in a NodeJS environment.

SolarNetwork API access

For information on the URLs needed to access SolarNetwork services, see the SolarNet API access page.

SolarNetwork API authentication

Some web services require authentication. All SolarNetwork applications use the same authentication scheme, detailed on the SolarNet API authentication page.

SolarIn API

The SolarIn application exposes methods for posting the data collected by SolarNodes. See the SolarIn API page for more details.

SolarQuery API

The SolarQuery application exposes methods for querying the data collected by SolarNodes. See the SolarQuery API page for more details.

SolarUser API

The SolarUser application exposes methods for manipulating SolarNodes and managing SolarNetwork resources. See the SolarUser API page for more details.

Clone this wiki locally