Get a program
Retrieve one program by its program_identifier, the same value Look up incentives returns on each eligible program. An identifier Leap does not hold returns 404.
Authorizations
Your Leap API key as a Bearer token. Send it in the Authorization header: Authorization: Bearer <api-key>.
Path Parameters
Identifier of the program
Response
Successfully retrieved the program
One program in Leap's rebate catalog. The catalog is shared across partners and covers utility, state and market programs, so a program you read here is not necessarily one your account can claim.
Stable identifier for the program, and the value Look up incentives returns as program_identifier on each eligible program. Send it as the program_id path segment on the other program routes.
CAISO, ERCOT, NYISO, ISONE, PJM, SERC, WECC_SW, WECC_PC Whether Leap currently evaluates this program. A disabled program never appears in a lookup result. Filter on it with filter=enabled=true or filter=enabled=false.
Where the definition came from. LEAP_DEFINITIONS and INCENTIVES_DB are rebate programs Leap maintains. PARTNER_OFFER marks a partner offer, which a partner account configures rather than Leap.
LEAP_DEFINITIONS, INCENTIVES_DB, PARTNER_OFFER The partner-visible subset of the program's stored metadata. Responses carry an allowlist of keys rather than everything Leap stores against a program. Catalog description: url, operator_name, operator_type, device_category, application_path, state_province, country. Partner offer publication, present on PARTNER_OFFER rows: display_name, operator_display_name, logo_url, terms_url, description. Any other key is omitted, including keys added after this was written, and including a partner offer's private configuration. Present but empty when the program carries none of the twelve.
Values are constrained as well as names. An allowlisted key survives only when its value is a string, a number or a boolean; a key whose value is an object or an array is omitted, because a nested value can carry fields nobody reviewed. Strings longer than 2048 characters are omitted rather than truncated, so a value you receive is always the whole value. No stored value under the seven catalog keys comes close to that bound.
The program's identifier in the upstream incentives system that owns application records. Stable, and the intended join key between this catalog and any API that reports a program in that id space, such as the applications feed. Always a positive integer, rendered as a string so the id stays exact for clients whose numbers are IEEE doubles.
Not to be confused with source_program_identifier on the eligibility-details response, which is a program identifier in this service's id space, attributing a check to the program that imposed it. The two never hold interchangeable values.
Omitted entirely when the program has no upstream counterpart, so treat an absent field and a null one the same way. That is normal rather than a gap: programs sourced from Leap's own definitions were never defined in the upstream system, so a missing id here says "this program cannot be joined", never "no applications exist". Programs promoted from that system, including partner offers, always carry one.
Every EIA utility id this program serves. A customer qualifies on the utility dimension when the utility resolved from their address appears in this list. An empty list means the program has no utility footprint and is never selected on that dimension.
The customer or site class this program serves. RESIDENTIAL and COMMERCIAL are the long-standing values; MULTIFAMILY and MANUFACTURED_HOME exist because rebate qualification differs across single-family, multifamily and manufactured housing.
RESIDENTIAL, MULTIFAMILY, MANUFACTURED_HOME, COMMERCIAL