Resource Coverage
This page maps each SDK namespace to core methods and API routes.locations
| Method | Route |
|---|---|
list() | GET /locations |
get(location_id) | GET /locations/{location_id} |
create(data) | POST /locations |
delete(location_id) | DELETE /locations/{location_id} |
weather_data
| Method | Route |
|---|---|
list() | GET /weatherdata |
get(weather_data_id) | GET /weatherdata/{weather_data_id} |
create(data) | POST /weatherdata |
delete(weather_data_id) | DELETE /weatherdata/{weather_data_id} |
modules
| Method | Route |
|---|---|
list() | GET /modules |
get(module_id) | GET /modules/{module_id} |
create_from_file(...) | POST /modules |
create_json(data) | POST /modules/json |
delete(module_id) | DELETE /modules/{module_id} |
inverters
| Method | Route |
|---|---|
list() | GET /inverters |
get(inverter_id) | GET /inverters/{inverter_id} |
create_from_file(...) | POST /inverters |
create_json(data) | POST /inverters/json |
delete(inverter_id) | DELETE /inverters/{inverter_id} |
projects
| Method | Route |
|---|---|
list() | GET /projects |
get(project_id) | GET /projects/{project_id} |
create(data) | POST /projects |
import_from_files(...) | POST /projects/import |
update(project_id, data) | PUT /projects/{project_id} |
delete(project_id) | DELETE /projects/{project_id} |
energy_models
| Method | Route |
|---|---|
list(include=None) | GET /energymodels |
get(energy_model_id) | GET /energymodels/{energy_model_id} |
get_with_inputs(energy_model_id) | GET /energymodels/{energy_model_id}?include=inputs |
create(data, async_mode=True, timeout=None) | POST /energymodels?async=... |
update(energy_model_id, data) | PUT /energymodels/{energy_model_id} |
run_saved(energy_model_id, async_mode=False, timeout=None) | POST /energymodels/{energy_model_id}/run?async=... |
delete(energy_model_id) | DELETE /energymodels/{energy_model_id} |
create() keeps an SDK-level async-default convenience. The API itself is
sync-first unless ?async=true is supplied.
For sync energy-model create/rerun calls, the SDK uses a 90s request timeout
by default unless you pass an explicit timeout=.... This gives multi-block
sync fan-out runs room to complete inline; if you want immediate queued/task
responses, prefer async_mode=True.
For current /energymodels result shaping, send canonical output fields in
the request body:
output.timeSeriesfor plant-leveltimeSeriesoutput.fullTimeSeriesfor extended plant-level seriesoutput.blockResultsforblockTimeSeriesoutput.blockIndexto filter the returnedblockTimeSeriesmap to one zero-based blockoutput.lossBreakdownTimestampsfor timestamped loss detail underblockTimeSeries[<blockIndex>].lossBreakdownoutput.irradianceLossDetailfor additive annual detail underlosses.irradianceLossDetail
create()forwards the canonical body as-is; selected-block behavior is a response filter, not single-block execution.- Legacy adapters such as
create_legacy_query(...)still mapblock_results/block_results_indexinto deprecated API compatibility fields. - Returned
blockTimeSerieskeys preserve the API’s original zero-based block numbering. - Returned additive block outputs already represent the full configured
numberOfInverterscount for that block type.
shading_scenes
| Method | Route |
|---|---|
list() | GET /shadingscenes |
get(scene_id) | GET /shadingscenes/{scene_id} |
create_from_json(...) | POST /shadingscenes |
import_file(...) | POST /shadingscenes/import |
create(...) | Alias for import_file(...) |
refresh(scene_id) | POST /shadingscenes/{scene_id}/refresh |
set_tracking_inputs(scene_id, ...) | POST /shadingscenes/{scene_id}/trackinginputs |
delete(scene_id) | DELETE /shadingscenes/{scene_id} |
- Older clients may still call
GET /shadingscenes/{scene_id}withreturnshading=true,returnmodel=true, orreturntableshading=true. - Those query params are still supported on the API as additive compatibility shims for historical workflows.
- New SDK usage should prefer
get(scene_id)for scene data,get_results(scene_id, include_status=...)for shading outputs, and the dedicated viewer route when viewer-oriented geometry or aggregate shading data is needed.
tasks
| Method | Route |
|---|---|
list(status=None, task_type=None, page=1, page_size=50) | GET /tasks |
get(task_id) | GET /tasks/{task_id} |
workflows
| Method | Route |
|---|---|
get(workflow_id) | GET /workflows/{workflow_id} |
workspaces
| Method | Route |
|---|---|
list() | GET /workspaces |
get(workspace_id) | GET /workspaces/{workspace_id} |
create(data) | POST /workspaces |
update(workspace_id, data) | PUT /workspaces/{workspace_id} |
delete(workspace_id) | DELETE /workspaces/{workspace_id} |
list_users(workspace_id) | GET /workspaces/{workspace_id}/users |
get_settings(workspace_id) | GET /workspaces/{workspace_id}/settings |
File Upload Support
projects, modules, inverters, and shading_scenes support disk-path and/or open-file-object upload patterns.