Skip to main content
GET
Get a program

Authorizations

Authorization
string
header
required

Your Leap API key as a Bearer token. Send it in the Authorization header: Authorization: Bearer <api-key>.

Path Parameters

program_id
string
required

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.

program_identifier
string

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.

label
string
description
string
program_type
string
transmission_region
enum<string>
Available options:
CAISO,
ERCOT,
NYISO,
ISONE,
PJM,
SERC,
WECC_SW,
WECC_PC
enabled
boolean

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.

source
enum<string>

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.

Available options:
LEAP_DEFINITIONS,
INCENTIVES_DB,
PARTNER_OFFER
metadata
object

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.

upstream_program_id
string | null

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.

eiaids
string[]

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.

customer_classification
enum<string>

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.

Available options:
RESIDENTIAL,
MULTIFAMILY,
MANUFACTURED_HOME,
COMMERCIAL
device_category
string