---
title: "Energy Decision"
method: POST
path: "/energy/decision"
---

# Energy Decision

`POST /energy/decision`

## Request

- Base URL: `https://energy.halowerk.com`
- URL: `https://energy.halowerk.com/energy/decision`
- Auth: none declared

EV, battery, and flexible-load agents buy this endpoint to receive an executable action with timing, expected value, confidence, and expiry.

## Request body

- object
  - `goal` 'minimize_cost' | 'minimize_carbon' | 'balanced' | 'maximize_self_consumption' | 'trading_signal'
  - `device` 'ev' | 'battery' | 'heat_pump' | 'flexible_load' | 'generic'
  - `location` string
  - `duration_hours` integer
  - `deadline` string, date-time
  - `policy_profile` 'balanced' | 'utility' | 'precision' | 'recall': Optional override. Trading defaults to precision; flexible devices default to utility.
  - `constraints` object
    - `min_soc` number
    - `target_soc` number
    - `max_power_kw` number
    - `must_finish_by` string, date-time

## Response `200`

Result. Settled.

- object

## Other responses

- `400`: Request body does not match inputSchema. Nothing settled.
- `402`: Payment required — 0.01 USDC (per_request). The challenge carries accepts, description and inputSchema.
- `500`: Internal error. Nothing settled.

---

[API](https://skmtc.dev/halowerk/apis/halowerk-energy.md) · [All operations](https://skmtc.dev/halowerk/apis/halowerk-energy/llms.txt) · [OpenAPI document](https://skmtc.dev/halowerk/apis/halowerk-energy/revisions/59458d8c787e?raw)
