Leap API (1.1)

Download OpenAPI specification:Download

The API enables users to provide grid services from their asset portfolio. Use these endpoints to monitor meter inventory, place bids and receive dispatches.

Authentication

http

Security Scheme Type HTTP
HTTP Authorization Scheme bearer
Bearer format "JWT"

log_in

Log In

Login with email / password and receive a token which is required in subsequent requests.

Request Body schema: application/json
email
required
string

The emailaddress associated to the account.

password
required
string

The password for the account.

Responses

Request samples

Content type
application/json
{
  • "email": "{{email}}",
  • "password": "{{password}}"
}

Response samples

Content type
application/json
{
  • "token": "string",
  • "refresh_token": "string"
}

meters

Search Meters

Search meters on your account. Returns all meters by default.

Authorizations:
path Parameters
accountId
required
string
Request Body schema: application/json
date_added_from
string <date-time>

Returns only meters that have been added from this date (inclusive)

date_added_to
string <date-time>

Returns only meters that have been added to this date (inclusive)

page_token
string

Token of the page to request.

null to request a new batch of results.

page_size
integer
Default: 500

The number of meters to retrieve per page.

Responses

Request samples

Content type
application/json
{
  • "date_added_from": "2021-01-12T21:12:46.784Z",
  • "date_added_to": "2021-05-25T21:12:46.784Z"
}

Response samples

Content type
application/json
{
  • "next_page_token": "string",
  • "results": [
    ]
}

Get Meter

Authorizations:
path Parameters
accountId
required
string
meterId
required
string

Responses

Response samples

Content type
application/json
{
  • "meter_id": "afce893d-ea68-487f-9f8c-778b1881f60a",
  • "partner_reference": "meter1",
  • "transmission_region": "CAISO",
  • "utility": "SCE",
  • "load_serving_entity": "lse",
  • "participation": [
    ],
  • "load_zone": "lap",
  • "service_point_number": "SAN-0250508399",
  • "customer_name": "Andrea Morris",
  • "service_address_full": "914nd Street, 42908 Seah, California, US",
  • "service_address": {
    },
  • "enrollment": {
    },
  • "created_at": "2021-05-19T12:54:09.99249Z",
  • "tariff": "HETOUC"
}

bidding

Search Standing Bids

Returns information about the standing bids that have been placed.

Authorizations:
path Parameters
accountId
required
string
Request Body schema: application/json
next_page_token
string

Token of the page to request.

Null to request a new batch of results.

start_date
required
string <date-time>

Start datetime range to get standing bids for (inclusive).

end_date
required
string <date-time>

End datetime range to get standing bids for (inclusive).

meter_ids
Array of strings <uuid>

Meter ids to get bids for.

Limited at 100 meters per request

Responses

Request samples

Content type
application/json
{
  • "next_page_token": "",
  • "start_date": "2021-05-18T08:00:00Z",
  • "end_date": "2021-12-31T08:00:00Z",
  • "meter_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "next_page_token": "NzBjNzU1ZWQtMzM5NC00YmIwLTkwZDAtZDMzN2IyZmZiNTNi",
  • "results": [
    ]
}

Place Standing Bid

Use standing bids to schedule consistent bidding activity over a period of time (e.g. month, year, week).

By placing a standing bid, the system repeats bids on a defined schedule. Standing bids will be submitted to the market one day before the trading day. After processing, bids that are placed here will be visible in the Search Bids endpoint.

Datetimes and Hour Ending:

Datetimes reflect a start and end to the bidding interval in Coordinated Universal Time (UTC).

hour_ending denotes the time at the end of a bidding hour ("hour_ending": 16 denotes a bid from 15:00 to 16:00)

Overwriting standing bids

Cancel or overwrite an existing standing bid by submitting a new curve for the same meter in an overlapping time period.

  • An empty curve will cancel the bid for that period
  • A new bid curve will overwrite the bid for that period
Authorizations:
path Parameters
accountId
required
string
Request Body schema: application/json
required
Array of objects (StandingBid) [ items ]

Responses

Request samples

Content type
application/json
{
  • "standing_bids": [
    ]
}

Response samples

Content type
application/json
{
  • "validations": [ ],
  • "stored": [
    ],
  • "deleted": [ ]
}

Place Bid

Bids are sets of pairs (Price, Capacity) from which a bid curve is constructed. The bid curve is the function of the form Price = F(Capacity) which determines at which price a demand response provider is willing to curtail a certain volume of load.

Initial bids must be placed at least 24 hours before the start of the trading day.

Example: A storage provider is bidding in capacity. A sample bid for a given hour may have the form shown in the table below:

Price ($/kWh) 0.18 0.24 0.28 0.34 0.45
Capacity 40 80 200 400 600

According to this bid, the provider is willing to curtail the first 40kW of load for 18 cents per kWh. If a greater volume is needed, the same provider is willing to curtail any amount of energy from zero up to 80 kW at $0.24/kWh, up to 200 kW for $0.28/kWh, up to 400 kW for $0.34/kWh and up to 600 kW for $0.45/kWh.

Bid quantities have a minimum granularity of 1kW. Bids of 1.5kW for instance will be rejected. Only values that are a multiple of 1 will be accepted.

General guidelines:

All datetimes must be provided in the UTC timezone

Modifying bids

Bids can be modified by placing a new bid for the same meter/timeslot combination. The previous curve will be completely replaced by the new curve.

Cancelling bids

A bid can be cancelled until the market closes. Cancel a bid by submitting an empty curve for a meter/timeslot combination.

Response information

  • HTTP 202 all bids have been accepted to be processed asynchronously
  • HTTP 412 in case of validation errors, none of the bids will be processed

Successful responses will return a copy of the JSON objects provided in the request. Each point in the curve will contain an additional status field indicating if the bid has been received, accepted or rejected.

Possible bid statuses:

Received - Bid has been received by DEX, but still has to be validated Accepted - Bid has been accepted for processing by the market Rejected - Bid has not been accepted by the market Error - An unforeseen case occurred, theoretically bids will never enter this state

Possible market statuses:

Open - Market is open and accepting new bids, Accepted and Rejected bids can still be updated Processing - Market is closed and processing bids Closed - Market is closed and finished processing, potential dispatches are available through the get dispatches API call (1.5 Get dispatches)

Note: on a successful bid a HTTP 202 response is explicitly returned to indicate that the bid still has to be processed by our market. The response only indicates that the bid is placed in the queue to be processed as soon as possible. This can take several minutes until the bid with actual status will be visible in the get bids API call.

Authorizations:
path Parameters
accountId
required
string
Request Body schema: application/json
currency
required
string
required
Array of objects (Bid) [ items ]

Responses

Request samples

Content type
application/json
{
  • "currency": "USD",
  • "bids": [
    ]
}

Response samples

Content type
application/json
{
  • "validations": [ ],
  • "currency": "USD",
  • "results": [
    ]
}

Search Bids

Search between start_date and end_date for a list of meters identified by meter_id in meter_ids.

A start and end date must be specified when requesting bids. The maximum timespan for a single request is 24 hours.

Authorizations:
path Parameters
accountId
required
string
Request Body schema: application/json
start_date
required
string
end_date
required
string
meter_ids
required
Array of strings

Responses