Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.amps.ai/llms.txt

Use this file to discover all available pages before exploring further.

Overview

To cap a charger’s output, push set_max_power with maxPower in kW. The cap applies to whichever vehicle is plugged in and persists until you change it or the charger reverts to its own defaults. Use it to balance against household consumption, throttle to a cheaper tariff window, or coordinate multiple chargers behind a single supply. start_charging and stop_charging open and close a session. The power cap survives both.

Step 1: Read the current state

curl -X GET https://api.amps.ai/ev-charger/dev_ev_001 \
  -H "x-api-key: sk_live_abc123xyz"
{
  "id": "dev_ev_001",
  "vendor": "chargepoint",
  "sync": { "available": true, "lastPulledAt": "2026-05-08T11:30:00.000Z" },
  "metadata": { "model": "ChargePoint Home Flex", "source": "live", "cacheType": "normal" },
  "state": {
    "status": "charging",
    "isConnected": true,
    "isCharging": true,
    "currentPower": 11,
    "maxCurrent": 48
  }
}
The charger is connected and pulling 11 kW.

Step 2: Cap the power

Push set_max_power. maxPower accepts values from 0 to 50 kW.
curl -X POST https://api.amps.ai/ev-charger/dev_ev_001 \
  -H "x-api-key: sk_live_abc123xyz" \
  -H "Content-Type: application/json" \
  -d '{
    "action": "set_max_power",
    "maxPower": 7.4
  }'
You get back 202 Accepted once the command dispatches.
{
  "actionId": "act_ev_006",
  "state": "acknowledged",
  "type": "ev-charger:set_max_power",
  "createdAt": "2026-05-08T11:30:00.000Z"
}

Step 3: Verify the cap applied

Poll the action endpoint until it reaches completed.
curl -X GET https://api.amps.ai/actions/act_ev_006 \
  -H "x-api-key: sk_live_abc123xyz"
{
  "id": "act_ev_006",
  "deviceId": "dev_ev_001",
  "type": "ev-charger:set_max_power",
  "state": "completed",
  "parameters": { "maxPower": 7.4 },
  "result": { "success": true, "message": "Power cap applied" },
  "errorCode": null,
  "errorMessage": null,
  "createdAt": "2026-05-08T11:30:00.000Z",
  "updatedAt": "2026-05-08T11:30:01.000Z",
  "acknowledgedAt": "2026-05-08T11:30:00.500Z",
  "completedAt": "2026-05-08T11:30:01.000Z"
}
A second device read confirms live throughput dropped to the cap.
{
  "id": "dev_ev_001",
  "state": {
    "status": "charging",
    "isConnected": true,
    "isCharging": true,
    "currentPower": 7.4,
    "maxCurrent": 32
  }
}

Coordinating with start_charging and stop_charging

Three actions cover most flows.
ActionUse
start_chargingBegin a session on a connected vehicle.
stop_chargingEnd the active session.
set_max_powerThrottle the active or next session.
Apply a cap before starting a session to keep the first kWh inside a cheap rate. Apply it mid-session to roll back as household demand spikes. Either order works; the most recent cap wins.
curl -X POST https://api.amps.ai/ev-charger/dev_ev_001 \
  -H "x-api-key: sk_live_abc123xyz" \
  -H "Content-Type: application/json" \
  -d '{ "action": "start_charging" }'
{
  "actionId": "act_ev_007",
  "state": "acknowledged",
  "type": "ev-charger:start_charging",
  "createdAt": "2026-05-08T12:00:01.000Z"
}

What next

Subscribe to webhooks

Get push.completed events on charger state changes.

Handle conflicts

Resolve 409s when a charger write is already in flight.

HVAC permanent hold

The mirrored push pattern on HVAC.

Canonical actions

Where EV charger actions sit in the canonical model.