# Amps AI Documentation - [Introduction](https://docs.amps.ai/index.md): One REST API to read and control batteries, EV chargers, HVAC, solar inverters, and vehicles across manufacturers. - [Quickstart](https://docs.amps.ai/quickstart.md): Read a sandbox battery, send it a charge command, and confirm the result. - [Glossary](https://docs.amps.ai/glossary.md): Amps API terms and where each one is explained. - [API Reference](https://docs.amps.ai/api-reference/introduction.md): Base URL, authentication, and response format for the Amps REST API. - [List actions](https://docs.amps.ai/api-reference/actions/list-actions.md): Returns a paginated list of the actions the API key can access, across every device type, newest first. Each item is the same polymorphic action shape as `GET /actions/{actionId}`; the `deviceType` field discriminates the device family. Filter by `deviceId`, lifecycle `state`, device `type`, or end-… - [Get action status](https://docs.amps.ai/api-reference/actions/get-action-status.md): Retrieve the current state of any device action for polling. The action lifecycle progresses `scheduled` (deferred only) -> `acknowledged` -> `completed` | `failed`, with `cancelled` reachable from `scheduled`. The `deviceType` field discriminates the device family and the `command`/`parameters` sha… - [Cancel a scheduled action](https://docs.amps.ai/api-reference/actions/cancel-a-scheduled-action.md): Cancel a deferred action that is still in `scheduled` state. Actions in any other state (`acknowledged`, `completed`, `failed`, `cancelled`) cannot be cancelled and return 409. - [List battery devices](https://docs.amps.ai/api-reference/battery/list-battery-devices.md): Returns a paginated list of battery devices the API key can access, each with the last captured `state` and the canonical `commands` map. Live state is not pulled per call. Use `GET /battery/{deviceId}` for an authoritative read. - [Get battery state](https://docs.amps.ai/api-reference/battery/get-battery-state.md): Retrieve the current state and capabilities of a battery device. - [Push battery action](https://docs.amps.ai/api-reference/battery/push-battery-action.md): Send a command to a battery device. Immediate actions fire as soon as the platform dispatches them; deferred actions (with `start`) fire at the requested time. The action is processed asynchronously and a webhook is sent on completion. - [Update battery device settings](https://docs.amps.ai/api-reference/battery/update-battery-device-settings.md): Write one or more writable settings on the device. Sparse: send only the settings you want to change. Read-only keys (e.g. `scheduler_enabled`) are rejected with 422 `DEVICE_NOT_CAPABLE`. - [Get battery schedule](https://docs.amps.ai/api-reference/battery/get-battery-schedule.md): Coming soon. Read the schedule set on this battery. The route answers `501 Not Implemented` until first-class schedules ship. - [Set battery schedule](https://docs.amps.ai/api-reference/battery/set-battery-schedule.md): Coming soon. Set or replace the schedule on this battery. The route answers `501 Not Implemented` until first-class schedules ship. - [Clear battery schedule](https://docs.amps.ai/api-reference/battery/clear-battery-schedule.md): Coming soon. Clear the schedule on this battery. The route answers `501 Not Implemented` until first-class schedules ship. - [List HVAC devices](https://docs.amps.ai/api-reference/hvac/list-hvac-devices.md): Get a paginated list of HVAC devices with their last pull state - [Get HVAC state](https://docs.amps.ai/api-reference/hvac/get-hvac-state.md): Retrieve the current state of an HVAC device including mode, temperature, and humidity - [Push HVAC action](https://docs.amps.ai/api-reference/hvac/push-hvac-action.md): Send a command to an HVAC device. The action is processed asynchronously and a webhook is sent on completion. - [Get HVAC schedule](https://docs.amps.ai/api-reference/hvac/get-hvac-schedule.md): Coming soon. Read the schedule set on this HVAC device. The route answers `501 Not Implemented` until first-class schedules ship. - [Set HVAC schedule](https://docs.amps.ai/api-reference/hvac/set-hvac-schedule.md): Coming soon. Set or replace the schedule on this HVAC device. The route answers `501 Not Implemented` until first-class schedules ship. - [Clear HVAC schedule](https://docs.amps.ai/api-reference/hvac/clear-hvac-schedule.md): Coming soon. Clear the schedule on this HVAC device. The route answers `501 Not Implemented` until first-class schedules ship. - [List EV Charger devices](https://docs.amps.ai/api-reference/ev-charger/list-ev-charger-devices.md): Get a paginated list of EV Charger devices with their last pull state - [Get EV Charger state](https://docs.amps.ai/api-reference/ev-charger/get-ev-charger-state.md): Retrieve the current state of an EV Charger device including charging status, power, and connection state - [Push EV Charger action](https://docs.amps.ai/api-reference/ev-charger/push-ev-charger-action.md): Send a command to an EV Charger device. The action is processed asynchronously and a webhook is sent on completion. - [Update EV Charger device settings](https://docs.amps.ai/api-reference/ev-charger/update-ev-charger-device-settings.md): Write one or more writable settings on the device. Sparse: send only the settings you want to change. Unknown or read-only keys are rejected with 422. - [Get EV Charger charging sessions](https://docs.amps.ai/api-reference/ev-charger/get-ev-charger-charging-sessions.md): **Session history depends on the charger.** Read `sessions` on `GET /ev-charger/{deviceId}` first: `false` means the manufacturer records none and this endpoint answers 422 `DEVICE_NOT_CAPABLE`. - [Get EV Charger schedule](https://docs.amps.ai/api-reference/ev-charger/get-ev-charger-schedule.md): Coming soon. Read the schedule set on this EV charger. The route answers `501 Not Implemented` until first-class schedules ship. - [Set EV Charger schedule](https://docs.amps.ai/api-reference/ev-charger/set-ev-charger-schedule.md): Coming soon. Set or replace the schedule on this EV charger. The route answers `501 Not Implemented` until first-class schedules ship. - [Clear EV Charger schedule](https://docs.amps.ai/api-reference/ev-charger/clear-ev-charger-schedule.md): Coming soon. Clear the schedule on this EV charger. The route answers `501 Not Implemented` until first-class schedules ship. - [List solar inverter devices](https://docs.amps.ai/api-reference/solar-inverter/list-solar-inverter-devices.md): Get a paginated list of solar inverter devices with their last pull state - [Get Solar Inverter state](https://docs.amps.ai/api-reference/solar-inverter/get-solar-inverter-state.md): Retrieve the current state of a solar inverter device including power production, status, and energy totals - [List vehicle devices](https://docs.amps.ai/api-reference/vehicle/list-vehicle-devices.md): Get a paginated list of vehicle devices with their last pull state - [Get vehicle state](https://docs.amps.ai/api-reference/vehicle/get-vehicle-state.md): Retrieve the current state of a vehicle device including battery level, range, charging status, and capacity - [Revoke user consent](https://docs.amps.ai/api-reference/users/revoke-user-consent.md): Revoke consent for a user. The affected devices stop receiving pulls and pushes. When a revoked link is the last one on a device, and the manufacturer supports it, Amps first hands the device back to its owner at the manufacturer, and revokes the access token there once no other link uses it; if eit… - [List schedules](https://docs.amps.ai/api-reference/schedules/list-schedules.md): Coming soon. List the schedules across every device this API key can reach. The route answers `501 Not Implemented` until first-class schedules ship. - [Get a schedule](https://docs.amps.ai/api-reference/schedules/get-a-schedule.md): Coming soon. Read one schedule by its identifier. The route answers `501 Not Implemented` until first-class schedules ship. - [Authentication](https://docs.amps.ai/guides/authentication.md): Create an API key, send it with every request, and choose between sandbox and live. - [Link UI](https://docs.amps.ai/guides/link-ui.md): Send end users to a hosted page to connect their devices, then find those devices through the API. - [Link UI customization](https://docs.amps.ai/guides/link-ui/customization.md): Set your app's name, logo, redirect URLs, and device types, and shape the flow with URL parameters. - [Pull](https://docs.amps.ai/guides/pull.md): Read a device's state, list devices, and understand how fresh the data is. - [Push](https://docs.amps.ai/guides/push.md): Send a command to a device, choose when it runs, and track the action to completion. - [Conflicts](https://docs.amps.ai/guides/push/conflicts.md): What happens when you push to a device that already has an active action, and how to resolve it. - [Cancelling](https://docs.amps.ai/guides/push/cancelling.md): Cancel a scheduled action before it runs. - [Scheduling](https://docs.amps.ai/guides/scheduling.md): Run a command later, or across a time window, in the device's local time. - [Error handling](https://docs.amps.ai/guides/error-handling.md): How errors are shaped, where they appear, and when to retry. - [Error codes](https://docs.amps.ai/guides/error-handling/error-codes.md): Every error code the Amps API returns. - [Webhooks](https://docs.amps.ai/guides/webhooks.md): Receive events when an action finishes or a device's connection changes. - [Verify signatures](https://docs.amps.ai/guides/webhooks/verify-signatures.md): Confirm a webhook came from Amps before you act on it. - [Events](https://docs.amps.ai/guides/webhooks/events.md): Every webhook event and its payload. - [Capabilities](https://docs.amps.ai/guides/capabilities.md): Discover which commands, parameters, units, and timings a device accepts, and what happens when it can't do something. - [Settings](https://docs.amps.ai/guides/capabilities/settings.md): Read and change persistent device configuration, such as a battery's reserve or an EV charger's power ceiling. - [AI agents](https://docs.amps.ai/guides/ai-agents.md): Give your coding assistant or agent the Amps docs through MCP or llms.txt. - [Battery](https://docs.amps.ai/cookbooks/battery.md): What a battery reports, the commands it accepts, and recipes for common tasks. - [Charge in a cheap-rate window](https://docs.amps.ai/cookbooks/battery/charge-in-window.md): Charge a battery between a start and end time, such as an overnight off-peak tariff. - [Start a charge later](https://docs.amps.ai/cookbooks/battery/defer-charge.md): Defer a battery charge to a future time with a start and no end. - [Discharge during a peak window](https://docs.amps.ai/cookbooks/battery/discharge-in-window.md): Discharge or export from a battery between a start and end time, stopping at a minimum charge level. - [Return to self-consumption](https://docs.amps.ai/cookbooks/battery/auto-balance.md): Put a battery back into its own self-consumption mode with auto.balance. - [Change a battery setting](https://docs.amps.ai/cookbooks/battery/change-settings.md): Update a battery's discharge floor, charge ceiling, or other persistent settings. - [EV charger](https://docs.amps.ai/cookbooks/ev-charger.md): What an EV charger reports, what it accepts, and recipes for common tasks. - [Start and stop a session](https://docs.amps.ai/cookbooks/ev-charger/start-stop-session.md): Start, pause, or window an EV charging session with the charge and idle commands. - [Smart charging](https://docs.amps.ai/cookbooks/ev-charger/smart-charging.md): Hand charging times to the charger's own price or solar optimiser, and read back which mode it is running. - [Charge an exact amount](https://docs.amps.ai/cookbooks/ev-charger/charge-energy-amount.md): Deliver a fixed number of kilowatt-hours with the charge command's energy parameter. - [Cap charging power](https://docs.amps.ai/cookbooks/ev-charger/cap-power.md): Limit how much power an EV charger draws with the max_charge_rate setting, including for a grid event. - [Why isn't it charging?](https://docs.amps.ai/cookbooks/ev-charger/why-not-charging.md): Read why a plugged-in car takes no power, and what to tell the driver. - [Read session history](https://docs.amps.ai/cookbooks/ev-charger/session-history.md): List an EV charger's past charging sessions and the energy each one delivered. - [HVAC](https://docs.amps.ai/cookbooks/hvac.md): What an HVAC device reports, what it accepts, and recipes for common tasks. - [Hold a temperature](https://docs.amps.ai/cookbooks/hvac/hold-temperature.md): Override an HVAC device's schedule with a fixed temperature, then release it. - [Heat for a window](https://docs.amps.ai/cookbooks/hvac/heat-for-a-window.md): Heat or cool an HVAC device between a start and end time. - [Solar](https://docs.amps.ai/cookbooks/solar.md): What a solar inverter reports, and recipes for using its production data. - [Monitor production](https://docs.amps.ai/cookbooks/solar/monitor-production.md): Read a solar inverter's output, poll it, and list every inverter for a user. - [Charge a battery from solar](https://docs.amps.ai/cookbooks/solar/charge-battery-from-solar.md): Poll solar production and push a battery charge when output is high. - [Vehicle](https://docs.amps.ai/cookbooks/vehicle.md): What vehicle state you can read through Amps. ## OpenAPI Specs - [openapi](/openapi.json) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.