Get availability
Planned
501 Not Implemented.Returns IEC TS 63019 time-based capacity availability for each bucket, at site, block, or inverter level, as set by group_by. Derates and DC-side outages count as available, because the equipment keeps part of its capability. The response format follows the Accept header, as on /platform/v1/performance-v2.
BearerAuthorizationBearer <token>project_ids*array<string>One or more DUET project IDs. Repeat the parameter for each ID, for example ?project_ids=a&project_ids=b. You must have access to every project, and all of them must belong to the same organization.
dt_start*stringThe first date to include, in ISO 8601 format, for example 2026-05-25. DUET uses the start of that day.
dt_end*stringThe last date to include, in ISO 8601 format, for example 2026-05-31. DUET uses the end of that day.
sentinel_tag?stringThe deployment tag. Most projects have one deployment, default. A project with several data streams can name a specific deployment.
"default"hierarchy_ids?array<string>Return only these hierarchy IDs, which identify sensors. Repeat the parameter for each ID. Omit it to return all sensors.
block_ids?array<string>Return only these blocks. Repeat the parameter for each block ID. Omit it to return all blocks.
group_by?array<>The dimensions to group by: any combination of project_id, block_id, and hierarchy_id. Repeat the parameter for each dimension. DUET rolls up each dimension that you leave out and returns it as null on every row. For example, omit hierarchy_id to get block-level rows. The default is all three, which returns one row for each sensor.
1 <= itemstime_interval?stringThe bucket size. DUET computes each bucket from native 15-minute buckets. Full returns the whole range as one bucket.
"OneDay""OneDay""OneWeek""OneMonth""Full"definition?"iec_time_based"The availability definition to compute. iec_time_based is IEC TS 63019 time-based capacity availability. Contractual definitions are added for each contract.
"iec_time_based""iec_time_based"Accept?stringThe response format: Arrow stream, Parquet, or JSON sequence. The default is Arrow stream.
"application/vnd.apache.arrow.stream""application/vnd.apache.arrow.stream""application/vnd.apache.parquet""application/json-seq"The availability rows, in the format that the Accept header asks for.
- response
bucket_start*stringThe start of the bucket as a plant-local day in YYYY-MM-DD format, as on /platform/v1/performance-v2.
project_id*|The ID of the project. Null when group_by doesn't include project_id.
duet_block_id*|The ID of the block. Null when group_by doesn't include block_id.
hierarchy_id*|The hierarchy ID of the inverter. Null when group_by doesn't include hierarchy_id.
sentinel_tag*stringThe data stream of the row.
capacity_hours*numberThe capacity-hours, in kW·h, that the bucket could have been available: daylight hours multiplied by capacity. The value is additive, so you can sum it across buckets or groups.
unavailable_capacity_hours*numberThe capacity-hours lost to unavailability, such as an outage, a trip, or a fault. The value is additive, like capacity_hours.
availability*|The availability ratio, 1 - unavailable_capacity_hours / capacity_hours, clamped to the range 0 to 1. Null, not 0, when there is no basis for the figure.
inverter_count*integerThe number of inverters in the row.
capacity_known_inverter_count*integerThe number of inverters with a known capacity. Only these inverters count toward the figure.
is_partial*booleanWhether some inverters have no known capacity.
curl -X GET 'https://api.enurgen.com/platform/v1/availability?project_ids=string&dt_start=string&dt_end=string'{ "bucket_start": "string", "project_id": "string", "duet_block_id": "string", "hierarchy_id": "string", "sentinel_tag": "string", "capacity_hours": 0, "unavailable_capacity_hours": 0, "availability": 0, "inverter_count": 0, "capacity_known_inverter_count": 0, "is_partial": true}
