Overview
PWRapi is Generac's interface for partners to monitor and manage their customers' sites, systems, and devices, and to run grid service programs. Access to the API is organized around client types. Your client type is assigned by Generac when your credentials are provisioned, and it determines which endpoints you can call and which sites your credentials can see.
Client Types
Every PWRapi client is provisioned with credentials tied to one of two client types. Credentials are scoped to a single client type and are not interchangeable.
| Client Type | Used for | Scope | API Access |
|---|---|---|---|
| Company | Monitoring and managing sites, systems, and devices | Sites associated with a specific Company | Monitoring |
| Program | Grid service program enrollment and control | Sites enrolled — or seeking enrollment — in a specific Program | Monitoring and Grid Services |
Company Clients
Used for monitoring and managing the sites, systems, and devices associated with a PWRfleet Company. Typical use cases include monitoring production data, identifying issues through alerts, and automating support ticket creation.
The scope of a Company client's access is limited to the sites associated with that specific Company in PWRfleet.
Program Clients
Used for grid service programs. A Program is created for the API client by Generac. Using Program credentials, the API client calls the Grid Services endpoints to:
- manage customer enrollments,
- create control commands when required by the program, and
- retrieve telemetry for measurement and verification (M&V) of the program.
The scope of a Program client's access is limited to the sites where systems are enrolled in — or are seeking enrollment in — the Program.
Note: A Program client's access is associated with single Program. Access to control endpoints for a site is further gated by enrollment status: only sites with the ENROLLED status accept control commands. Sites with any other status remain visible for monitoring but are not controllable.
Program Types
Every Program is one of two types. The program type is set by Generac when the Program is created and determines the enrollment lifecycle your integration follows.
| Program Type | Who handles the front end before the API client interacts with PWRapi | Enrollment entry point |
|---|---|---|
| Pre-Approved | Program administrator | The API client submits the approved serial number and creates a new enrollment for that site |
| BYOD (Bring Your Own Device) | Generac — the customer accepts Terms & Conditions via the Generac app or webform; the API client then verifies eligibility with the program admin | Customer-initiated via the Generac app or webform |
Pre-Approved
In pre-approved programs, customers have been deemed eligible by the program administrator before the API client interacts with PWRapi. There is no application or review step in the API — the site enters directly as ENROLLED.
Enrollment flow:
- The utility or program administrator approves the customer, typically before or during install.
- The API client calls Discover a site with the approved system serial number and the site's postal/zip code to resolve the site ID and system ID(s). For PWRcell 2, the serial number is the gateway device; for PWRcell 1, it is the inverter device.
- The API client calls Create an enrollment with the site ID, system ID(s), and Terms & Conditions acceptance date.
- PWRapi creates the enrollment with an
ENROLLEDstatus, linked to the Program. The system is now available for control within the program.
For pre-approved programs, enrollments are created with the ENROLLED status. Allowed status transitions are ENROLLED ↔ SUSPENDED, ENROLLED → UNENROLLED, SUSPENDED → UNENROLLED. The NEW, PENDING and REJECTED statuses are not used.
BYOD (Bring Your Own Device)
In BYOD programs, the customer accepts the program's Terms & Conditions via the Generac app or a webform. This creates an enrollment with the NEW status. The API client then verifies the customer's eligibility with the program administrator and progresses the enrollment through utility approval.
Enrollment flow:
- The customer accepts the Terms & Conditions via the Generac app or webform. An enrollment record is created in the
NEWstatus. - The API client discovers
NEWenrollments (call Get a list of enrollments), then reads and stores the site and device data. - The API client begins verifying the customer's eligibility with the program administrator — for example, against the program's zip code list and device criteria — and transitions the enrollment to
PENDINGvia Update an enrollment. - When verification completes, the API client transitions the enrollment to
ENROLLEDorREJECTED. AREJECTEDtransition must include a reason code.
❌ AVOID: BYOD programs should not use the Discover a site and Create an enrollment endpoint. They are for pre-approved programs only.
For BYOD programs, enrollments are created with the NEW status. Allowed status transitions are NEW → PENDING, PENDING → ENROLLED, PENDING → REJECTED, ENROLLED ↔ SUSPENDED, ENROLLED → UNENROLLED, SUSPENDED → UNENROLLED.
Enrollment State Machine
The allowed transitions between enrollment statuses depend on the program type.
Both program types share a common set of enrollment statuses:
| Status | Meaning |
|---|---|
NEW | Customer has accepted Terms & Conditions (BYOD); the API client has not yet started the eligibility verification process. |
PENDING | Customer has accepted Terms & Conditions (BYOD) and the API client has started the eligibility verification process with the program administrator. |
ENROLLED | Site is active in the program and eligible for control commands. |
REJECTED | Application declined with a reason code (BYOD only). Terminal. |
SUSPENDED | Enrollment temporarily inactive; can return to ENROLLED. Not eligible for control commands. |
UNENROLLED | Site has left the program. Terminal. |
Only sites with the ENROLLED status accept control commands. Sites with any other status remain visible for monitoring but are not controllable.