Leap · Authentication Profile
Leapfrog Power Authentication
Authentication
Leap secures its APIs with http across 2 declared security schemes, as derived from its OpenAPI definitions.
EnergyUnited StatesElectricityGridDemand ResponseDERVirtual Power PlantEnergy MarketsStorage FlexibilityEV ChargingSmart Metering
Methods: http
Schemes: 2
OAuth flows:
API key in: header
Security Schemes
Bearer http
scheme: bearer
http http
scheme: bearer
Source
Authentication Profile
generated: '2026-07-27'
method: searched
docs: https://developer.leap.energy/docs/api-key-authentication
source: https://developer.leap.energy/docs/api-key-authentication, https://developer.leap.energy/docs/getting-started,
openapi/leapfrog-power-create-meters-openapi.yml, openapi/leapfrog-power-dispatch-openapi.yml,
openapi/leapfrog-power-interval-data-upload-openapi.json, openapi/leapfrog-power-meter-details-openapi.yml,
openapi/leapfrog-power-meter-enrollment-openapi.yml, openapi/leapfrog-power-nominations-openapi.yml,
openapi/leapfrog-power-revenue-analytics-openapi.yml, openapi/leapfrog-power-webhooks-openapi.yml
summary:
types:
- http
schemes:
- bearer
api_key_in:
- header
oauth2: false
oidc: false
mtls: false
model: >-
A single authentication model across all eight services: an opaque, long-lived API key presented
as an HTTP bearer token. Keys are created by a partner admin inside the Leap Partner Portal with
per-key permissions selected at creation time; they cannot be self-issued, because the partner
account itself is provisioned by Leap. Keys are scoped to exactly one environment — a staging key
used against production (or the reverse) returns 403.
header: 'Authorization: Bearer <API_KEY>'
schemes:
- name: Bearer
type: http
scheme: bearer
sources:
- openapi/leapfrog-power-create-meters-openapi.yml
- openapi/leapfrog-power-meter-details-openapi.yml
- openapi/leapfrog-power-meter-enrollment-openapi.yml
- openapi/leapfrog-power-nominations-openapi.yml
- openapi/leapfrog-power-revenue-analytics-openapi.yml
- name: http
type: http
scheme: bearer
bearerFormat: JWT
sources:
- openapi/leapfrog-power-dispatch-openapi.yml
- openapi/leapfrog-power-webhooks-openapi.yml
- openapi/leapfrog-power-interval-data-upload-openapi.json
note: >-
The same credential declared under a second scheme name. Four definitions declare bearerFormat
JWT (dispatch, webhooks, interval data, revenue) and four declare no format — a naming
inconsistency across teams, not two credentials.
key_issuance:
self_serve: false
provisioning: >-
Leap creates the partner account; initial admin users are then invited to create their
credentials. Prospective partners are directed to their Leap account manager or partners@leap.ac.
portal_urls:
- environment: production
url: https://partner.leap.energy/account?settings=apiKeys
- environment: staging
url: https://partner.staging.leap.energy/account?settings=apiKeys
roles:
- name: Manager
capability: full admin access, including inviting/deleting users and creating/revoking API keys
- name: User
capability: cannot manage account settings
user_note: A user invited in the production Partner Account page automatically gains staging access.
permissions:
model: per-key permission selection at creation time
evidence: >-
The Getting Started guide shows a decoded example JWT payload carrying user_id, account_id, an
expiration_date and a permissions array. The example permissions are RegisterMeter, GetMeter,
DeleteMeter, PlaceBid and GetBid.
documented_values: [RegisterMeter, GetMeter, DeleteMeter, PlaceBid, GetBid]
caveat: >-
Those five come from a single illustrative example payload, not from a published permissions
reference. Leap publishes no scope or permission catalog on its anonymous surface, and no
OpenAPI operation declares a required permission, so a complete permission list cannot be
recorded. No scopes/ artifact is emitted — this is key-based auth, not OAuth.
environments:
- name: production
base_url: https://api.leap.energy
- name: staging
base_url: https://api.staging.leap.energy
environment_mismatch: 403
browser_auth:
sso: >-
The developer portal has SSO integration with the Partner Portal. Logging in auto-populates a
temporary bearer token in the CREDENTIALS box of the API reference pages so calls can be made
from the browser against staging or production. This is a documentation convenience, not a
documented OAuth surface.
gaps:
- No OAuth 2.0, OpenID Connect or mTLS option; no /.well-known/openid-configuration and no
/.well-known/oauth-authorization-server (404 on all four Leap hosts).
- No documented key rotation policy, key expiry policy or WWW-Authenticate challenge.
- The Interval Data Upload definition declares the bearer securityScheme but sets no top-level
security requirement, so the spec never states that its operations are protected — a governance
gap in the specification, not in the service.
- Webhook deliveries are authenticated only by a partner-supplied static header; Leap publishes no
signature scheme (see conventions/leapfrog-power-conventions.yml).