Api Endpoint

solar.halowerk.com

Daily energy balance and straight run-down from the figures supplied. Solar input is caller data in watt-hours per day; nothing is fetched and no weather is assumed. Time to empty means time to the reserve floor, not to zero. Idle draw and conversion efficiency apply to AC loads only. Ageing, temperature and Peukert behaviour are not modelled, which matters for lead acid far more than for LiFePO4.

Open interactive test console

Offering

Provider
solar.halowerk.com
Method
POST
Offering type
Api Endpoint
Transport type
http
Category
General Utilities
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://solar.halowerk.com/autonomy-forecast
MIME type
Not provided
First seen
2026-10-16T01:58:26.121Z
Last seen
Tags
None supplied

Payment pricing

x402 payment terms are the authoritative price for calling this endpoint.

Payment option 1
0.003 USDC
Atomic price: 3000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "3000",
    "payTo": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"
  }
]

Observed health

Status
Healthy
Latest latency
320 ms
Average latency
525 ms
HTTP status
204
Last checked
Reachability
100% over 5 checks

Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.

Input schema

{
  "additionalProperties": false,
  "properties": {
    "body": {
      "additionalProperties": false,
      "properties": {
        "battery": {
          "additionalProperties": false,
          "properties": {
            "capacity_ah": {
              "maximum": 100000,
              "minimum": 1,
              "type": "number"
            },
            "capacity_wh": {
              "maximum": 10000000,
              "minimum": 10,
              "type": "number"
            },
            "nominal_voltage_v": {
              "default": 12,
              "maximum": 1000,
              "minimum": 6,
              "type": "number"
            },
            "reserve_soc_percent": {
              "default": 20,
              "description": "Floor not to be crossed.",
              "maximum": 90,
              "minimum": 0,
              "type": "number"
            },
            "soc_percent": {
              "maximum": 100,
              "minimum": 0,
              "type": "number"
            }
          },
          "required": [
            "soc_percent"
          ],
          "type": "object"
        },
        "daily_solar_input_wh": {
          "default": 0,
          "description": "Expected harvest per day.",
          "maximum": 1000000,
          "minimum": 0,
          "type": "number"
        },
        "inverter": {
          "additionalProperties": false,
          "properties": {
            "efficiency": {
              "default": 0.9,
              "maximum": 1,
              "minimum": 0.5,
              "type": "number"
            },
            "hours_powered_per_day": {
              "default": 24,
              "maximum": 24,
              "minimum": 0,
              "type": "number"
            },
            "idle_w": {
              "default": 15,
              "maximum": 500,
              "minimum": 0,
              "type": "number"
            }
          },
          "type": "object"
        },
        "loads": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "dc": {
                "default": false,
                "description": "True for loads fed straight from the battery.",
                "type": "boolean"
              },
              "hours_per_day": {
                "default": 24,
                "maximum": 24,
                "minimum": 0,
                "type": "number"
              },
              "name": {
                "type": "string"
              },
              "watts": {
                "maximum": 50000,
                "minimum": 0,
                "type": "number"
              }
            },
            "required": [
              "name",
              "watts"
            ],
            "type": "object"
          },
          "maxItems": 60,
          "minItems": 1,
          "type": "array"
        }
      },
      "required": [
        "battery",
        "loads"
      ],
      "type": "object"
    },
    "bodyType": {
      "enum": [
        "json",
        "form-data",
        "text"
      ],
      "type": "string"
    },
    "method": {
      "enum": [
        "POST",
        "PUT",
        "PATCH"
      ],
      "type": "string"
    },
    "type": {
      "const": "http",
      "type": "string"
    }
  },
  "required": [
    "type",
    "method",
    "bodyType",
    "body"
  ],
  "type": "object"
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "body": {
          "additionalProperties": false,
          "properties": {
            "battery": {
              "additionalProperties": false,
              "properties": {
                "capacity_ah": {
                  "maximum": 100000,
                  "minimum": 1,
                  "type": "number"
                },
                "capacity_wh": {
                  "maximum": 10000000,
                  "minimum": 10,
                  "type": "number"
                },
                "nominal_voltage_v": {
                  "default": 12,
                  "maximum": 1000,
                  "minimum": 6,
                  "type": "number"
                },
                "reserve_soc_percent": {
                  "default": 20,
                  "description": "Floor not to be crossed.",
                  "maximum": 90,
                  "minimum": 0,
                  "type": "number"
                },
                "soc_percent": {
                  "maximum": 100,
                  "minimum": 0,
                  "type": "number"
                }
              },
              "required": [
                "soc_percent"
              ],
              "type": "object"
            },
            "daily_solar_input_wh": {
              "default": 0,
              "description": "Expected harvest per day.",
              "maximum": 1000000,
              "minimum": 0,
              "type": "number"
            },
            "inverter": {
              "additionalProperties": false,
              "properties": {
                "efficiency": {
                  "default": 0.9,
                  "maximum": 1,
                  "minimum": 0.5,
                  "type": "number"
                },
                "hours_powered_per_day": {
                  "default": 24,
                  "maximum": 24,
                  "minimum": 0,
                  "type": "number"
                },
                "idle_w": {
                  "default": 15,
                  "maximum": 500,
                  "minimum": 0,
                  "type": "number"
                }
              },
              "type": "object"
            },
            "loads": {
              "items": {
                "additionalProperties": false,
                "properties": {
                  "dc": {
                    "default": false,
                    "description": "True for loads fed straight from the battery.",
                    "type": "boolean"
                  },
                  "hours_per_day": {
                    "default": 24,
                    "maximum": 24,
                    "minimum": 0,
                    "type": "number"
                  },
                  "name": {
                    "type": "string"
                  },
                  "watts": {
                    "maximum": 50000,
                    "minimum": 0,
                    "type": "number"
                  }
                },
                "required": [
                  "name",
                  "watts"
                ],
                "type": "object"
              },
              "maxItems": 60,
              "minItems": 1,
              "type": "array"
            }
          },
          "required": [
            "battery",
            "loads"
          ],
          "type": "object"
        },
        "bodyType": {
          "enum": [
            "json",
            "form-data",
            "text"
          ],
          "type": "string"
        },
        "method": {
          "enum": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "type": "string"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method",
        "bodyType",
        "body"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}