-
Notifications
You must be signed in to change notification settings - Fork 2
API Developer Guide
SolarNetwork exposes some web service methods for use by developers wishing to create applications that integrate with SolarNetwork.
Use the API Explorer to try out the SolarNetwork API, which has API templates to help you form appropriate API calls.
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 onUse 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.
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. |
For information on the URLs needed to access SolarNetwork services, see the SolarNet API access page.
Some web services require authentication. All SolarNetwork applications use the same authentication scheme, detailed on the SolarNet API authentication page.
The SolarIn application exposes methods for posting the data collected by SolarNodes. See the SolarIn API page for more details.
The SolarQuery application exposes methods for querying the data collected by SolarNodes. See the SolarQuery API page for more details.
The SolarUser application exposes methods for manipulating SolarNodes and managing SolarNetwork resources. See the SolarUser API page for more details.
- SolarNetwork API access
- SolarNetwork API authentication
- SolarNetwork API rate limiting
- SolarNetwork global objects
- SolarNetwork aggregation
- SolarFlux API
- SolarIn API
- SolarQuery API
-
SolarUser API
- SolarUser enumerated types
- SolarUser datum expire API
- SolarUser datum export API
- SolarUser datum import API
- SolarUser datum stream alias API
- SolarUser event hook API
- SolarUser location request API
- SolarUser Cloud Integrations API
- SolarUser DIN API
- SolarUser DNP3 API
- SolarUser ININ API
- SolarUser OCPP API
- SolarUser OSCP API
- SolarUser Secrets API
- SolarUser SolarFlux API