Skip to main content
Check a customer’s incentive eligibility, share a Connect URL they apply through, and submit supporting data on their behalf. You’ll call two APIs:
  • Incentives Lookups: https://api.leap.energy, authenticated with a Bearer token
  • Applications: https://api.incentives.leap.energy/alpha, authenticated with an x-api-key header

Set up your integration

1

Create your API keys

Create both keys under Settings → Developer: an API Key (the Bearer token for Incentives Lookups) and an Alpha · Applications API key (the x-api-key for Applications).
2

Get device IDs

Map your product catalog to Leap’s under Settings → Device profile. Each mapping gives you a device_id to pass in lookup requests. To build that mapping in code instead, call Search device catalog: free text in, matching device_ids out. The same endpoint browses by category when you have no search term, and resolves up to 100 device_ids you already hold back into full catalog records. Keep the products you sell on hand with Save a device.
3

Set up data preferences

Choose which application fields you’ll provide for customers under Settings → Data Preferences. Leap removes claimed fields from the customer-facing form; you supply the values through the API instead.
4

Configure a partner offer (optional)

If you run your own program, such as a virtual power plant, set it up under Settings → Customer VPP Offering. Your offer appears in lookup results under your own name and logo, stacks on top of the customer’s rebates, and gets the same address, utility, and device eligibility checks Leap runs on every other program.

Check eligibility and get a Connect URL

Send the customer’s address, classification, and devices to the Look up incentives endpoint. Leap returns the total incentive, a per-program breakdown, and a connect_url the customer uses to apply. Set create_application: true when you want that link to work: it tells Leap to create the applications behind it. Leave it off when you only need an eligibility check, like quoting a number on a product page.

Request

Response

Store each customer_device_id alongside your own order record: it identifies that installation in later updates and removals.
When nothing is eligible, the response omits connect_url: there’s nothing to apply for. Check that the field is present before you show the link.
For returning customers, Refresh incentives re-evaluates from stored data, adds devices, and fills in details as you learn them. It takes the same create_application flag. Override incentives rebuilds the customer from a fresh body, address included, and discards everything on file. The Incentives Guide compares all three endpoints.
Show the Connect URL wherever it fits: order confirmation, follow-up email, product setup.

Provide data on the customer’s behalf

A lookup with create_application: true creates one application per eligible program in the background, usually within a few seconds and before the customer opens the Connect URL. Supply the fields you claimed so the customer doesn’t have to: find the application, then update it.

Find the application

Filter by refId (your reference ID) or application_status. Each result’s top-level id is the application ID. See Search applications for the full response.

Update the application

Send the data you’re providing on behalf of the customer, using the application id from the search results as application_id.
Only include the fields you want to change: omitted fields keep their current values, and null clears one. Status and system identifiers (id, customer_id, program_id) are read-only.
Two identifiers named id appear in that request, and they are different things. The id in the URL is the application. The id inside customer_devices[] is one installation on that application, which you get from the application you fetched. Neither is the catalog device_id from the lookup: that one identifies the product, not the customer’s copy of it.

Next steps

Incentives Guide

Full reference for the lookup, refresh, and override endpoints.

Applications Guide

Search, update, and attach documentation to applications.