Dispatch Event Polling

Receiving dispatches via the webhook push notification is the recommended method as it enables participation in real-time programs that provide minimal advance notice periods, however, if that is not possible this guide provides information on polling the Leap API endpoints to retrieve this information. If you haven’t already, check out the Dispatch Automation guide for more details on automating and processing these dispatch events.

Endpoints

Choose the appropriate endpoint depending on whether you are dispatching at the meter or group level:

Polling Frequency

Make sure to poll frequently enough to capture any new dispatches with enough time to process those and push them out to your end customer devices prior to the event start time. Different markets and programs have different advance notice periods for dispatch event notices to be available so take into account current and upcoming markets/programs you will be enrolling in. If required, these endpoints can handle polling as frequently as once per minute without triggering any rate limits.

Dispatch Event Processing

By default you will receive all day-ahead, hour-ahead, and standard event types within the dispatch_event_types array in the responses. To also receive CAISO real-time events in the 15-minute and 5-minute markets, make sure to set the exclude_real_time_events body parameter to false.

As a reminder, for the CAISO DRAM/CCA programs and the day-ahead market, you will need to process both the day-ahead and hour-ahead event types as it is possible that your day-ahead dispatch awards could get updated in the hour-ahead market or you could get entirely new timeslot awards in the hour-ahead market.

For event processing considerations refer back to the Dispatch Event Processing section of the Dispatch Automation guide and check out the Test Cases guide for the different scenarios to test.


Example Code Recipe

Check out the following example code recipe for processing these dispatch API responses:


Example Responses

Meter Dispatch Response

{
  "results": [
    {
      "meter_id": "1aaa1111-1111-1111-1111-111111111111",
      "timeslots": [
        {
          "meter_event_id": "8a8adc1e-c95a-4c14-a916-c25b2c39077f",
          "start_time": "2023-02-02T17:00:00Z",
          "end_time": "2023-02-02T18:00:00Z",
          "cancelled": false,
          "performance_compensation_cap": "up-to-nomination",
          "priority": 1,
          "is_voluntary": false,
          "dispatch_event_types": [
            "standard"
          ],
          "programs": [
            "ERCOT-ERS"
          ],
          "energy_kw": 0.645
        },
        {
          "meter_event_id": "f5e13568-c310-4d6c-89b9-33d80b62ba04",
          "start_time": "2023-02-04T19:00:00Z",
          "end_time": "2023-02-04T20:00:00Z",
          "cancelled": false,
          "performance_compensation_cap": "up-to-nomination",
          "priority": 1,
          "is_voluntary": false,
          "dispatch_event_types": [
            "standard"
          ],
          "programs": [
            "ERCOT-ERS"
          ],
          "energy_kw": 0.645
        }
      ]
    }
  ],
  "next_page_token": null
}

Market Group Dispatch Response

{
  "results": [
    {
      "market_group_id": "79204bac-9c9c-4b3a-a507-a095f54776af",
      "meter_ids": [
        "1aaa1111-1111-1111-1111-111111111111"
      ],
      "timeslots": [
        {
          "market_group_event_id": "08470897-4261-427f-9afd-a658337bfb30",
          "start_time": "2023-02-04T19:00:00Z",
          "end_time": "2023-02-04T20:00:00Z",
          "cancelled": false,
          "performance_compensation_cap": "up-to-nomination",
          "priority": 1,
          "is_voluntary": false,
          "dispatch_event_types": [
            "standard"
          ],
          "programs": [
            "ERCOT-ERS"
          ],
          "energy_kw": 0.645
        },
        {
          "market_group_event_id": "b09a9dba-16d3-4bf5-a1ce-97b20c4e4d13",
          "start_time": "2023-02-02T17:00:00Z",
          "end_time": "2023-02-02T18:00:00Z",
          "cancelled": false,
          "performance_compensation_cap": "up-to-nomination",
          "priority": 1,
          "is_voluntary": false,
          "dispatch_event_types": [
            "standard"
          ],
          "programs": [
            "ERCOT-ERS"
          ],
          "energy_kw": 0.645
        }
      ]
    }
  ],
  "next_page_token": null
}