pvnode API

List all sites

GET
https://api.pvnode.com
/v2/sites/

Returns all sites belonging to the authenticated user, including those pending deletion.

Available on every plan — use it to look up the id of a site for the forecast and historical endpoints. Creating, updating and deleting sites requires a plan with Sites API access.

List all sites › Headers

Authorization
​string · required

Bearer token. Format: Bearer YOUR_API_KEY

Default: Bearer YOUR_API_KEY

List all sites › Responses

200

Successful Response

id
​string · required
​required
latitude
​number · required
longitude
​number · required
timezone
​string · required

IANA timezone, e.g. 'Europe/Berlin'. Automatically determined from location.

status
​SiteStatus · enum · required
Enum values:
active
inactive
​SiteConfig · required

Effective site configuration — stored overrides merged with current defaults.

​PVString[] · required
created_at
​string · date-time · required
updated_at
​string · date-time · required
​

Elevation above sea level in meters. Automatically determined from location.

​

Set when the site is pending deletion. The site will be permanently removed 30 days after this date.


Create a site

POST
https://api.pvnode.com
/v2/sites/

Creates a new site for the authenticated user.

A site represents a PV installation with a fixed location and configuration. Requires a plan with Sites API access.

Create a site › Headers

Authorization
​string · required

Bearer token. Format: Bearer YOUR_API_KEY

Default: Bearer YOUR_API_KEY

Create a site › Request Body

latitude
​number · min: -89.99 · max: 89.99 · required

Latitude of the site in decimal degrees (WGS84).

Example: 48.8566
longitude
​number · min: -179.99 · max: 179.99 · required

Longitude of the site in decimal degrees (WGS84).

Example: 2.3522
​

Human-readable label for the site, e.g. 'Rooftop South'.

​

Optional configuration overrides. Only explicitly set values are stored; omitted fields fall back to current defaults.

​

PV string definitions for this site. Defaults to a single string with system defaults if omitted.

temporary
​boolean

Create the site as temporary — it is automatically deleted after 31 days. Requires a plan that allows temporary sites.

Default: false

Create a site › Responses

Successful Response

id
​string · required
​required
latitude
​number · required
longitude
​number · required
timezone
​string · required

IANA timezone, e.g. 'Europe/Berlin'. Automatically determined from location.

status
​SiteStatus · enum · required
Enum values:
active
inactive
​SiteConfig · required

Effective site configuration — stored overrides merged with current defaults.

​PVString[] · required
created_at
​string · date-time · required
updated_at
​string · date-time · required
​

Elevation above sea level in meters. Automatically determined from location.

​

Set when the site is pending deletion. The site will be permanently removed 30 days after this date.


Get a site

GET
https://api.pvnode.com
/v2/sites/{site_id}

Returns a single site by its ID. Also returned if the site is pending deletion.

Available on every plan. Creating, updating and deleting sites requires a plan with Sites API access.

Get a site › path Parameters

site_id
​string · required

Get a site › Headers

Authorization
​string · required

Bearer token. Format: Bearer YOUR_API_KEY

Default: Bearer YOUR_API_KEY

Get a site › Responses

Successful Response

id
​string · required
​required
latitude
​number · required
longitude
​number · required
timezone
​string · required

IANA timezone, e.g. 'Europe/Berlin'. Automatically determined from location.

status
​SiteStatus · enum · required
Enum values:
active
inactive
​SiteConfig · required

Effective site configuration — stored overrides merged with current defaults.

​PVString[] · required
created_at
​string · date-time · required
updated_at
​string · date-time · required
​

Elevation above sea level in meters. Automatically determined from location.

​

Set when the site is pending deletion. The site will be permanently removed 30 days after this date.


Update a site

PATCH
https://api.pvnode.com
/v2/sites/{site_id}

Partially updates a site. Only the provided fields are changed. Requires a plan with Sites API access.

Update a site › path Parameters

site_id
​string · required

Update a site › Headers

Authorization
​string · required

Bearer token. Format: Bearer YOUR_API_KEY

Default: Bearer YOUR_API_KEY

Update a site › Request Body

​

Human-readable label for the site.

​

Latitude in decimal degrees (WGS84).

​

Longitude in decimal degrees (WGS84).

​
​

Configuration overrides to merge into the stored config.

​

Replaces all PV strings on the site.

Update a site › Responses

Successful Response

id
​string · required
​required
latitude
​number · required
longitude
​number · required
timezone
​string · required

IANA timezone, e.g. 'Europe/Berlin'. Automatically determined from location.

status
​SiteStatus · enum · required
Enum values:
active
inactive
​SiteConfig · required

Effective site configuration — stored overrides merged with current defaults.

​PVString[] · required
created_at
​string · date-time · required
updated_at
​string · date-time · required
​

Elevation above sea level in meters. Automatically determined from location.

​

Set when the site is pending deletion. The site will be permanently removed 30 days after this date.


Delete a site

DELETE
https://api.pvnode.com
/v2/sites/{site_id}

Deletes a site. The site is soft-deleted and permanently removed after 31 days. Requires a plan with Sites API access.

Delete a site › path Parameters

site_id
​string · required

Delete a site › Headers

Authorization
​string · required

Bearer token. Format: Bearer YOUR_API_KEY

Default: Bearer YOUR_API_KEY

Delete a site › Responses

Successful Response

No data returned

Restore a site

POST
https://api.pvnode.com
/v2/sites/{site_id}/restore

Cancels a pending deletion and restores the site to active status. Requires a plan with Sites API access.

Restore a site › path Parameters

site_id
​string · required

Restore a site › Headers

Authorization
​string · required

Bearer token. Format: Bearer YOUR_API_KEY

Default: Bearer YOUR_API_KEY

Restore a site › Responses

Successful Response

id
​string · required
​required
latitude
​number · required
longitude
​number · required
timezone
​string · required

IANA timezone, e.g. 'Europe/Berlin'. Automatically determined from location.

status
​SiteStatus · enum · required
Enum values:
active
inactive
​SiteConfig · required

Effective site configuration — stored overrides merged with current defaults.

​PVString[] · required
created_at
​string · date-time · required
updated_at
​string · date-time · required
​

Elevation above sea level in meters. Automatically determined from location.

​

Set when the site is pending deletion. The site will be permanently removed 30 days after this date.