---
title: "Get Todays Dispatch Schedule"
method: GET
path: "/entities/asset/{asset_id}/todays-dispatch-schedule"
tags: ["4. Assets"]
---

# Get Todays Dispatch Schedule

`GET /entities/asset/{asset_id}/todays-dispatch-schedule`

## Request

- Base URL: `https://api-sandbox.axle.energy`
- URL: `https://api-sandbox.axle.energy/entities/asset/{asset_id}/todays-dispatch-schedule`
- Auth: OAuth 2
  - Password
  - Token URL: `auth/token-form`

Get today's dispatch plan for a battery: the ordered periods describing how the inverter and battery are scheduled to operate today (in UK time), each with a start time, an end time and an action of CHARGE, DISCHARGE, LOCK, FEED_IN or SELF_USE. LOCK holds the battery at its current state of charge.

Each period may carry a plain-language `reason`, and the plan a `summary` of the day. Either is null when no explanation is available. The first request after a plan is built or rebuilt prepares these explanations, so it can take several seconds longer than later requests.

Plans are only generated in the production environment: anywhere else, including the sandbox, this returns an empty plan (`{"summary": null, "periods": []}`).

The `asset_id` is the one returned when the asset was onboarded, and can also be found via `GET /entities/asset`. Only batteries have a plan of this shape, so any other asset type is a 404, indistinguishable from an unknown asset.

An empty plan is also returned when a battery has no plan for today: it is not optimised (no asset model recorded, or no full schedule control or wholesale market consent), or today's plan has not been generated yet. The response does not distinguish between these.

## Path parameters

- `asset_id` string, uuid, required

## Response `200`

Today's dispatch plan retrieved

- PlainDispatchScheduleResponse: A battery's dispatch plan for today: an ordered list of periods, each with a plan action and time window, plus a plain-language summary of the day when one is available. `periods` is empty and `summary` is null when no plan is available for today.
  - `summary` string
  - `periods` PlainDispatchSchedulePeriodResponse[], required
    - `start_timestamp` string, date-time, required
    - `end_timestamp` string, date-time, required
    - `action` 'CHARGE' | 'DISCHARGE' | 'LOCK' | 'FEED_IN' | 'SELF_USE' | 'PAUSE', required
    - `reason` string

## Other responses

- `403`: Permission denied
- `404`: Asset not found, not a battery, or not authorized to access
- `422`: Validation Error
- `500`: Server error while retrieving dispatch schedule

## Changes

- **2026-11-03** `b0b07b1dbf12`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/axle/apis/axle-api-docs/changes/entities/asset/:asset_id/todays-dispatch-schedule/get.md)

---

[API](https://skmtc.dev/axle/apis/axle-api-docs.md) - [All operations](https://skmtc.dev/axle/apis/axle-api-docs/llms.txt) - [OpenAPI document](https://skmtc.dev/axle/apis/axle-api-docs/revisions/b0b07b1dbf12?raw)
