Dispatch Event Polling (v1.1)

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

Querying for or filtering based on the market_type field is important when polling for dispatch events as you may see events for markets you are not participating in.

For example, in CAISO:

  • For the day-ahead market, you need to look for both the day-ahead and hour-ahead market_type values 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.
  • You may see real-time events (e.g. 15m, 5m) which you can ignore if you are not participating in these markets.

For event processing considerations refer back to the Dispatch Event Processing section of the Dispatch Automation guide.

Example Responses

Meter Dispatch Response

{
    "results": [
        {
            "meter_id": "11111111-1111-1111-1111-111111111111",
            "timeslots": [
                {
                    "start_time": "2022-11-19T17:00:00Z",
                    "end_time": "2022-11-19T18:00:00Z",
                    "test_event": false,
                    "energy_kw": 1444.000,
                    "market_type": "day-ahead",
                    "cancelled": false,
                    "programs": [
                        "NYISO-SCR"
                    ]
                },
                {
                    "start_time": "2022-11-21T17:00:00Z",
                    "end_time": "2022-11-21T18:00:00Z",
                    "test_event": false,
                    "energy_kw": 1444.000,
                    "market_type": "day-ahead",
                    "cancelled": false,
                    "programs": [
                        "NYISO-SCR"
                    ]
                }
            ]
        }
    ],
    "next_page_token": null
}

Group Dispatch Response

{
    "results": [
        {
            "meter_ids": [
                "2c55f35c-70c3-493d-8168-f05ec5e81010",
                "788e0e6d-65a7-4a18-83a6-eb0fd3605b53"
            ],
            "timeslots": [
                {
                    "start_time": "2022-11-09T02:00:00Z",
                    "end_time": "2022-11-09T03:00:00Z",
                    "test_event": false,
                    "energy_kw": 8.400,
                    "market_type": "hour-ahead",
                    "cancelled": false,
                    "programs": [
                        "CCA"
                    ]
                },
                {
                    "start_time": "2022-11-09T03:00:00Z",
                    "end_time": "2022-11-09T04:00:00Z",
                    "test_event": false,
                    "energy_kw": 8.400,
                    "market_type": "hour-ahead",
                    "cancelled": false,
                    "programs": [
                        "CCA"
                    ]
                }
            ],
            "market_group_id": "2c8b2f59-a90d-4867-8231-fcce20efd044"
        }
    ],
    "next_page_token": null
}