Leap Dispatch API v2
Receive and search grid dispatch events at meter level and group level, register dispatch webhook URLs, and trigger communication and integration tests.
Receive and search grid dispatch events at meter level and group level, register dispatch webhook URLs, and trigger communication and integration tests.
openapi: 3.0.3
info:
contact:
email: apiteam@leap.energy
description: Receive dispatches through Leap Dispatch API V2
termsOfService: https://leap.energy/terms/terms-of-service
title: Dispatch
version: "2"
externalDocs:
description: Find out more about Leap API
url: https://developer.leap.energy/
servers:
- url: https://api.staging.leap.energy/v2
- url: https://api.leap.energy/v2
security:
- http: []
tags:
- description: Endpoints for meter dispatches
name: meter-dispatches
- description: Endpoints for group dispatches
name: group-dispatches
paths:
/dispatch/meter/search:
post:
description: Search meter dispatches that match the input filters
operationId: searchMeterDispatches
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SearchMeterDispatchEventRequest"
description: Search meter dispatch request input
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/SearchMeterDispatchEventResponse"
description: A list of meter dispatches that match the search input
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Request could not be parsed or is invalid
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Unauthorized
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: No access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Resource not found
"5XX":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Unexpected error
summary: Search meter dispatches
tags:
- meter-dispatches
/dispatch/group/search:
post:
description: Search group dispatches that match the input filters
operationId: searchGroupDispatches
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SearchGroupDispatchEventRequest"
description: Search group dispatch request input
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/SearchGroupDispatchEventResponse"
description: The group dispatches that match the search input
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Request could not be parsed or is invalid
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Unauthorized
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: No access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Resource not found
"5XX":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Unexpected error
summary: Search group dispatches
tags:
- group-dispatches
/dispatch/meter/communication_test:
post:
description: Create communication test that will trigger a webhook call with
the corresponding dispatch notification data
operationId: triggerCommunicationTestMeterDispatch
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CommunicationTestMeterDispatchRequest"
description: Meter dispatch communication test
required: true
responses:
"201":
content:
application/json:
schema:
$ref: "#/components/schemas/CommunicationTestMeterDispatchResponse"
description: Successfully triggered a communication test meter notification
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Request could not be parsed or is invalid
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Unauthorized
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: No access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Resource not found
"5XX":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Unexpected error
summary: Trigger meter communication test
tags:
- meter-dispatches
/dispatch/meter/webhook:
delete:
description: Remove an existing webhook URL for meter dispatches
operationId: deleteMeterDispatchWebhook
responses:
"204":
description: Webhook URL has been removed
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Unauthorized
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: No access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Resource not found
"5XX":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Unexpected error
summary: Delete meter dispatch webhook URL
tags:
- meter-dispatches
get:
description: Retrieve the registered webhook URL for meter dispatches
operationId: getMeterDispatchWebhook
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Webhook"
description: Success
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Unauthorized
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: No access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Resource not found
"5XX":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Unexpected error
summary: Get meter webhook URL
tags:
- meter-dispatches
put:
description: Create or update an existing webhook URL for meter dispatches
operationId: createOrUpdateMeterDispatchWebhook
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Webhook"
description: Webhook object that needs to be registered for this partner
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Webhook"
description: Webhook URL updated
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Request could not be parsed or is invalid
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Unauthorized
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: No access to this resource
"5XX":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Unexpected error
summary: Set meter webhook URL
tags:
- meter-dispatches
x-codegen-request-body-name: apiWebhook
/dispatch/meter/webhook/integration_test:
post:
description: Create test notification that will trigger a webhook call with
the corresponding dispatch notification data
operationId: triggerTestMeterDispatchNotification
requestBody:
content:
application/json:
examples:
CAISO - CCA Capacity Test:
value:
meter_dispatches:
- meter_id: dd21c76c-7126-4ef7-b0a6-f190fad300b2
timeslots:
- meter_event_id: 1acfced0-16f4-4fb7-b72e-5ff939ae541e
start_time: 2023-07-21T00:00:00.000Z
end_time: 2023-07-21T01:00:00.000Z
energy_kw: 10
nomination_kw: 10
cancelled: false
programs:
- CCA
priority: 1
is_voluntary: false
performance_compensation_cap: up-to-nomination
dispatch_event_types:
- capacity-test
- meter_event_id: 2ad4bbde-36ee-401f-92b8-c58aa17aa71d
start_time: 2023-07-21T01:00:00.000Z
end_time: 2023-07-21T02:00:00.000Z
energy_kw: 10
nomination_kw: 10
cancelled: false
programs:
- CCA
priority: 1
is_voluntary: false
performance_compensation_cap: up-to-nomination
dispatch_event_types:
- capacity-test
CAISO - CCA Market Award:
value:
meter_dispatches:
- meter_id: dd21c76c-7126-4ef7-b0a6-f190fad300b2
timeslots:
- meter_event_id: 3acfced0-16f4-4fb7-b72e-5ff939ae541e
start_time: 2023-07-21T00:00:00.000Z
end_time: 2023-07-21T01:00:00.000Z
energy_kw: 8
nomination_kw: 10
cancelled: false
programs:
- CCA
priority: 2
is_voluntary: false
performance_compensation_cap: up-to-site-load
dispatch_event_types:
- day-ahead
- meter_event_id: 4ad4bbde-36ee-401f-92b8-c58aa17aa71d
start_time: 2023-07-21T01:00:00.000Z
end_time: 2023-07-21T02:00:00.000Z
energy_kw: 8
nomination_kw: 10
cancelled: false
programs:
- CCA
priority: 2
is_voluntary: false
performance_compensation_cap: up-to-site-load
dispatch_event_types:
- day-ahead
CAISO - ELRP:
value:
meter_dispatches:
- meter_id: dd21c76c-7126-4ef7-b0a6-f190fad300b2
timeslots:
- meter_event_id: 5ad4bbde-36ee-401f-92b8-c58aa17aa71d
start_time: 2023-07-21T00:00:00.000Z
end_time: 2023-07-21T04:00:00.000Z
energy_kw: null
nomination_kw: 10
cancelled: false
programs:
- ELRP
priority: 3
is_voluntary: true
performance_compensation_cap: grid-exports-allowed
dispatch_event_types:
- standard
CAISO - DSGS Option 3:
value:
meter_dispatches:
- meter_id: dd21c76c-7126-4ef7-b0a6-f190fad300b2
timeslots:
- meter_event_id: 6ad4bbde-36ee-401f-92b8-c58aa17aa71d
start_time: 2023-07-21T00:00:00.000Z
end_time: 2023-07-21T02:00:00.000Z
energy_kw: 10
nomination_kw: 10
cancelled: false
programs:
- CEC-DSGS
priority: 4
is_voluntary: true
performance_compensation_cap: grid-exports-allowed
dispatch_event_types:
- standard
CAISO - DSGS Option 4:
value:
meter_dispatches:
- meter_id: dd21c76c-7126-4ef7-b0a6-f190fad300b2
timeslots:
- meter_event_id: 6ad4bbde-36ee-401f-92b8-c58aa17aa71d
start_time: 2023-07-21T00:00:00.000Z
end_time: 2023-07-21T02:00:00.000Z
energy_kw: 1
nomination_kw: 1
cancelled: false
programs:
- CEC-DSGS-OPTION4
priority: 4
is_voluntary: false
performance_compensation_cap: grid-exports-allowed
dispatch_event_types:
- standard
ERCOT - ERS:
value:
meter_dispatches:
- meter_id: dd21c76c-7126-4ef7-b0a6-f190fad300b2
timeslots:
- meter_event_id: 7ad4bbde-36ee-401f-92b8-c58aa17aa71d
start_time: 2023-07-21T18:00:00.000Z
end_time: 2023-07-21T22:00:00.000Z
energy_kw: 10
nomination_kw: 10
cancelled: false
programs:
- ERCOT-ERS
priority: 1
is_voluntary: false
performance_compensation_cap: up-to-nomination
dispatch_event_types:
- standard
NYISO - SCR:
value:
meter_dispatches:
- meter_id: dd21c76c-7126-4ef7-b0a6-f190fad300b2
timeslots:
- meter_event_id: 8ad4bbde-36ee-401f-92b8-c58aa17aa71d
start_time: 2023-07-21T19:00:00.000Z
end_time: 2023-07-21T20:00:00.000Z
energy_kw: 10
nomination_kw: 10
cancelled: false
programs:
- NYISO-SCR
priority: 1
is_voluntary: false
performance_compensation_cap: up-to-nomination
dispatch_event_types:
- standard
NYISO - CSRP:
value:
meter_dispatches:
- meter_id: dd21c76c-7126-4ef7-b0a6-f190fad300b2
timeslots:
- meter_event_id: 9ad4bbde-36ee-401f-92b8-c58aa17aa71d
start_time: 2023-07-21T16:00:00.000Z
end_time: 2023-07-21T20:00:00.000Z
energy_kw: 10
nomination_kw: 10
cancelled: false
programs:
- CONED-CSRP
priority: 3
is_voluntary: false
performance_compensation_cap: up-to-nomination
dispatch_event_types:
- standard
NYISO - DLRP:
value:
meter_dispatches:
- meter_id: dd21c76c-7126-4ef7-b0a6-f190fad300b2
timeslots:
- meter_event_id: 10d4bbde-36ee-401f-92b8-c58aa17aa71d
start_time: 2023-07-21T14:00:00.000Z
end_time: 2023-07-21T18:00:00.000Z
energy_kw: 10
nomination_kw: 10
cancelled: false
programs:
- CONED-DLRP
priority: 5
is_voluntary: false
performance_compensation_cap: up-to-nomination
dispatch_event_types:
- standard
ISO-NE - Clean Peak Standard:
value:
meter_dispatches:
- meter_id: dd21c76c-7126-4ef7-b0a6-f190fad300b2
timeslots:
- meter_event_id: 11d4bbde-36ee-401f-92b8-c58aa17aa71d
start_time: 2023-07-21T14:00:00.000Z
end_time: 2023-07-21T18:00:00.000Z
energy_kw: 10
nomination_kw: 10
cancelled: false
programs:
- MA_DOER-CPS
priority: 2
is_voluntary: true
performance_compensation_cap: grid-exports-allowed
dispatch_event_types:
- standard
ISO-NE - Connected Solutions:
value:
meter_dispatches:
- meter_id: dd21c76c-7126-4ef7-b0a6-f190fad300b2
timeslots:
- meter_event_id: 12d4bbde-36ee-401f-92b8-c58aa17aa71d
start_time: 2023-07-21T15:00:00.000Z
end_time: 2023-07-21T18:00:00.000Z
energy_kw: 10
nomination_kw: 10
cancelled: false
programs:
- NATGRID-CS
priority: 1
is_voluntary: true
performance_compensation_cap: grid-exports-allowed
dispatch_event_types:
- standard
PJM - Capacity:
value:
meter_dispatches:
- meter_id: dd21c76c-7126-4ef7-b0a6-f190fad300b2
timeslots:
- meter_event_id: 12d4bbde-36ee-401f-92b8-c58aa17aa71d
start_time: 2023-07-21T15:00:00.000Z
end_time: 2023-07-21T18:00:00.000Z
energy_kw: 10
nomination_kw: 10
cancelled: false
programs:
- PJM-CAPACITY
priority: 1
is_voluntary: false
performance_compensation_cap: up-to-nomination
dispatch_event_types:
- standard
schema:
$ref: "#/components/schemas/WebhookMeterDispatchIntegrationTestRequest"
description: Test meter dispatch notification
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/WebhookIntegrationTestResponse"
description: |
Successfully triggered a test meter notification to be sent to the registered meter webhook url
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Request could not be parsed or is invalid
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Unauthorized
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: No access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Resource not found
"5XX":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Unexpected error
summary: Trigger test meter notification
tags:
- meter-dispatches
/dispatch/group/webhook:
delete:
description: Remove an existing webhook URL for group dispatches
operationId: deleteGroupDispatchWebhook
responses:
"204":
description: Webhook URL has been removed
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Unauthorized
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: No access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Resource not found
"5XX":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Unexpected error
summary: Delete group webhook URL
tags:
- group-dispatches
get:
description: Retrieve the registered webhook URL for group dispatches
operationId: getGroupDispatchWebhook
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Webhook"
description: Success
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Unauthorized
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: No access to this resource
"404":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Resource not found
"5XX":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Unexpected error
summary: Get group webhook URL
tags:
- group-dispatches
put:
description: Create or update an existing webhook URL for group dispatches
operationId: createOrUpdateGroupDispatchWebhook
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Webhook"
description: Webhook object that needs to be registered for this account
required: true
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Webhook"
description: Webhook URL updated
"400":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Request could not be parsed or is invalid
"401":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Unauthorized
"403":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: No access to this resource
"5XX":
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
description: Unexpected error
summary: Set group webhook URL
tags:
- group-dispatches
x-codegen-request-body-name: apiWebhook
/dispatch/group/webhook/integration_test:
post:
description: Create test notification that will trigger a webhook call with
the corresponding group dispatch notification data
operationId: triggerTestGroupDispatchNotification
requestBody:
content:
application/json:
examples:
CAISO - CCA Capacity Test:
value:
group_dispatches:
- market_group_id: 9d1a7aae-24e5-455f-91e9-e0f5f145f2ae
meter_ids:
- beae2779-e392-4f00-b0cf-32e716204f78
- dd21c76c-7126-4ef7-b0a6-f190fad300b2
timeslots:
- market_group_event_id: 1acfced0-16f4-4fb7-b72e-5ff939ae541e
start_time: 2023-07-21T00:00:00.000Z
end_time: 2023-07-21T01:00:00.000Z
energy_kw: 100
nomination_kw: 100
cancelled: false
programs:
- CCA
priority: 1
is_voluntary: false
performance_compensation_cap: up-to-nomination
dispatch_event_types:
- capacity-test
- market_group_event_id: 2ad4bbde-36ee-401f-92b8-c58aa17aa71d
start_time: 2023-07-21T01:00:00.000Z
end_time: 2023-07-21T02:00:00.000Z
energy_kw: 100
nomination_kw: 100
cancelled: false
programs:
- CCA
priority: 1
is_voluntary: false
performance_compensation_cap: up-to-nomination
dispatch_event_types:
- capacity-test
CAISO - CCA Market Award:
value:
group_dispatches:
- market_group_id: 9d1a7aae-24e5-455f-91e9-e0f5f145f2ae
meter_ids:
- beae2779-e392-4f00-b0cf-32e716204f78
- dd21c76c-7126-4ef7-b0a6-f190fad300b2
timeslots:
- market_group_event_id: 3acfced0-16f4-4fb7-b72e-5ff939ae541e
start_time: 2023-07-21T00:00:00.000Z
end_time: 2023-07-21T01:00:00.000Z
energy_kw: 80
nomination_kw: 100
cancelled: false
programs:
- CCA
priority: 2
is_voluntary: false
performance_compensation_cap: up-to-site-load
dispatch_event_types:
- day-ahead
- market_group_event_id: 4ad4bbde-36ee-401f-92b8-c58aa17aa71d
start_time: 2023-07-21T01:00:00.000Z
end_time: 2023-07-21T02:00:00.000Z
energy_kw: 80
nomination_kw: 100
cancelled: false
programs:
- CCA
priority: 2
is_voluntary: false
performance_compensation_cap: up-to-site-load
dispatch_event_types:
- day-ahead
CAISO - ELRP:
value:
group_dispatches:
- market_group_id: 9d1a7aae-24e5-455f-91e9-e0f5f145f2ae
meter_ids:
- beae2779-e392-4f00-b0cf-32e716204f78
- dd21c76c-7126-4ef7-b0a6-f190fad300b2
timeslots:
- market_group_event_id: 5ad4bbde-36ee-401f-92b8-c58aa17aa71d
start_time: 2023-07-21T00:00:00.000Z
end_time: 2023-07-21T04:00:00.000Z
energy_kw: null
nomination_kw: 100
cancelled: false
programs:
- ELRP
priority: 3
is_voluntary: true
performance_compensation_cap: grid-exports-allowed
dispatch_event_types:
- standard
CAISO - DSGS Option 3:
value:
group_dispatches:
- market_group_id: 9d1a7aae-24e5-455f-91e9-e0f5f145f2ae
meter_ids:
- beae2779-e392-4f00-b0cf-32e716204f78
- dd21c76c-7126-4ef7-b0a6-f190fad300b2
timeslots:
- market_group_event_id: 6ad4bbde-36ee-401f-92b8-c58aa17aa71d
start_time: 2023-07-21T00:00:00.000Z
end_time: 2023-07-21T02:00:00.000Z
energy_kw: 100
nomination_kw: 100
cancelled: false
programs:
- CEC-DSGS
priority: 4
is_voluntary: true
performance_compensation_cap: grid-exports-allowed
dispatch_event_types:
- standard
CAISO - DSGS Option 4:
value:
group_dispatches:
- market_group_id: 9d1a7aae-24e5-455f-91e9-e0f5f145f2ae
meter_ids:
- beae2779-e392-4f00-b0cf-32e716204f78
- dd21c76c-7126-4ef7-b0a6-f190fad300b2
timeslots:
- market_group_event_id: 6ad4bbde-36ee-401f-92b8-c58aa17aa71d
start_time: 2023-07-21T00:00:00.000Z
end_time: 2023-07-21T02:00:00.000Z
energy_kw: 10
nomination_kw: 10
cancelled: false
programs:
- CEC-DSGS-OPTION4
priority: 4
is_voluntary: false
performance_compensation_cap: grid-exports-allowed
dispatch_event_types:
- standard
ERCOT - ERS:
value:
group_dispatches:
- market_group_id: 9d1a7aae-24e5-455f-91e9-e0f5f145f2ae
meter_ids:
- beae2779-e392-4f00-b0cf-32e716204f78
- dd21c76c-7126-4ef7-b0a6-f190fad300b2
timeslots:
- market_group_event_id: 7ad4bbde-36ee-401f-92b8-c58aa17aa71d
start_time: 2023-07-21T18:00:00.000Z
end_time: 2023-07-21T22:00:00.000Z
energy_kw: 100
nomination_kw: 100
cancelled: false
programs:
- ERCOT-ERS
priority: 1
is_voluntary: false
performance_compensation_cap: up-to-nomination
# --- truncated at 32 KB (68 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/leap/refs/heads/main/openapi/leap-dispatching-openapi-original.yml