# Halowerk Solar Tilt Optimiser

> Halowerk Solar Tilt Optimiser is a paid API for AI agents from solar.halowerk.com, paid per call via x402, $0.003/call, status unknown (last checked 2026-09-16).

Computes the optimal solar panel tilt angle for a given location and year by evaluating clear-sky irradiance across all tilt angles (0–90°) and comparing against a current tilt to quantify energy loss.

## Facts

- Endpoint: POST https://solar.halowerk.com/tilt-optimiser
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-16
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/halowerk-solar-tilt-optimiser-4bd68e62
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_88i5NidymAFUcAS7Vmhnq

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability halowerk-solar-tilt-optimiser-4bd68e62 -d '<json body>'
```

Example prompt: What's the optimal tilt angle for my solar panels at latitude 48.8, longitude 2.3 (Paris), assuming a south-facing azimuth of 180°, ground albedo of 0.2, elevation of 50 meters, and my panels are currently tilted at 30 degrees — use a 2-degree step resolution for 2026?

## When to prefer this

Use this endpoint when you need a fast, purely geometric/astronomical estimate of the optimal solar panel tilt angle without requiring weather data or a forecast model. It is ideal for initial system design, quick feasibility checks, or comparing a current installation angle against the theoretical optimum. Prefer this over weather-based tools when simplicity, speed, and low cost matter more than cloud-cover accuracy. It is particularly well suited for locations with predominantly clear skies (e.g. deserts, high altitudes), where the clear-sky assumption is a close approximation to reality.

## Known failure modes

- Latitude or longitude out of valid range returns a validation error
- Tilt step outside 1–10 degree range is rejected
- Year outside 1970–2100 range is invalid
- Albedo outside 0–1 is invalid
- Clear-sky assumption means optimum may be 10–15° steeper than real-weather optimum in winter months
- Elevation outside -500 to 6000 m range returns an error
- Missing required lat/lon fields returns a 400-level error

## How this service works

Evaluates clear-sky irradiance in the module plane for tilt angles from zero to ninety degrees on the fifteenth of each month and sums the days. Because it assumes a cloudless sky, the optimum leans slightly steeper than a real-weather optimum, where diffuse light from an overcast sky rewards flatter angles; in summer the difference is small, in winter months it reaches ten to fifteen degrees, so treat the winter figures as an upper bound.

## Output

Returns the optimal tilt angle (in degrees) that maximizes annual clear-sky plane-of-array irradiance, along with irradiance values across the evaluated tilt range. If a current tilt is provided, also returns the estimated annual energy loss relative to the optimum. Results reflect a clear-sky model evaluated on the 15th of each month; winter figures are upper bounds due to the absence of diffuse overcast-sky modeling.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "lat": {
   "type": "number",
   "maximum": 90,
   "minimum": -90
  },
  "lon": {
   "type": "number",
   "maximum": 180,
   "minimum": -180
  },
  "year": {
   "type": "integer",
   "default": 2026,
   "maximum": 2100,
   "minimum": 1970
  },
  "albedo": {
   "type": "number",
   "default": 0.2,
   "maximum": 1,
   "minimum": 0
  },
  "azimuth_deg": {
   "type": "number",
   "default": 180,
   "maximum": 360,
   "minimum": 0
  },
  "elevation_m": {
   "type": "number",
   "default": 0,
   "maximum": 6000,
   "minimum": -500
  },
  "tilt_step_deg": {
   "type": "number",
   "default": 2,
   "maximum": 10,
   "minimum": 1
  },
  "current_tilt_deg": {
   "type": "number",
   "maximum": 90,
   "minimum": 0,
   "description": "Tilt in use today, for the loss comparison."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/halowerk-solar-tilt-optimiser-4bd68e62/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from solar.halowerk.com](https://www.zero.xyz/host/solar.halowerk.com/llms.txt)
