DynVoltDYNVOLT · developers

I-V curves

I-V curves endpoints of the DynVolt Open API.

I-V / soiling analysis: the panel-model library, CEC panel database search, and expected-vs-measured I-V series for a string.

GET /v1/sites/{site_id}/iv/modules

Panel-model library.

Scope: diagnostics:read · Module: basic_scada

curl "https://api.owner.dynvolt.com/v1/sites/pv-ljubas/iv/modules" \
  -H "Authorization: Bearer $DYNVOLT_API_KEY"

GET /v1/sites/{site_id}/iv/modules/search

Search the CEC panel database (?q&limit).

Scope: diagnostics:read · Module: basic_scada

Query parameterTypeRequiredDescription
qstringyesSearch text matched against CEC panel model names.
limitintegernoMaximum rows to return (capped at 50).
curl "https://api.owner.dynvolt.com/v1/sites/pv-ljubas/iv/modules/search" \
  -H "Authorization: Bearer $DYNVOLT_API_KEY"

GET /v1/sites/{site_id}/iv/modules/{params_id}

One panel model.

Scope: diagnostics:read · Module: basic_scada

curl "https://api.owner.dynvolt.com/v1/sites/pv-ljubas/iv/modules/1" \
  -H "Authorization: Bearer $DYNVOLT_API_KEY"

GET /v1/sites/{site_id}/iv/strings/{inverter_id}/{string_index}/expected

Expected-vs-measured I-V series for a string (?start&end&limit).

Scope: diagnostics:read · Module: basic_scada

Query parameterTypeRequiredDescription
startstringnoWindow start — RFC3339 UTC, e.g. 2026-08-01T00:00:00Z. Naive (offset-less) timestamps are rejected.
endstringnoWindow end — RFC3339 UTC. Must be after start.
limitintegernoMaximum rows to return (capped at 5000).
curl "https://api.owner.dynvolt.com/v1/sites/pv-ljubas/iv/strings/12/0/expected" \
  -H "Authorization: Bearer $DYNVOLT_API_KEY"