API & MCP

Everything a person can do on Ledgerly Rooftop Solar Yield, a program or AI agent can do with the same inputs and get the identical result.

HTTP API

Ledgerly Rooftop Solar Yield

Estimates the yield of a rooftop PV system month by month from its place, tilt, orientation, size and shading: offline from DWD climate normals with a documented solar model, or with PVGIS satellite data from the EU Joint Research Centre — always with the offline estimate beside it. Includes an average day per month for battery planning. Part of Ledgerly’s Solar & Heat.

Inputs of Ledgerly Rooftop Solar Yield
FieldTypeDefaultDescription
latitudenumber52.52Latitude (°, south negative)
longitudenumber13.405Longitude (°, west negative)
peakPowerKwnumber8Peak power (kWp)
tiltnumber35Tilt (° from horizontal)
azimuthnumber0Orientation (° from south: east −90, west 90). PVGIS convention: 0 = south, −90 = east, 90 = west, 180 = north.
layoutselect (single, east-west)"single"Panel layout
systemLossPercentnumber14System losses (%). Cables, inverter, dirt and mismatch; 14 % is the PVGIS default.
sourceselect (offline, pvgis)"offline"Data source
climateselect (auto, sunshine, irradiation)"auto"Climate data for the offline estimate
monthlySunshineHourstext—Monthly sunshine hours (12 values, Jan–Dec)
monthlyIrradiationtext—Monthly irradiation on the horizontal (kWh/m², 12 values)
monthlyTemperaturestext—Monthly mean temperatures (°C, 12 values; empty = station data)
elevationnumber—Height of the site above sea level (m; empty = like the station)
horizontext—Horizon heights in degrees, equally spaced from north clockwise. Same order as PVGIS: the first value is north, then clockwise, e.g. 8 values for N, NE, E, SE, S, SW, W, NW.
obstaclestext—Obstacles: bearing, width, height, distance (separate with ;). Like Hearth’s Sun Windows: compass bearing from north (°), angular width (°), height above the panels (m) and distance (m), e.g. 160, 30, 8, 12.
utcOffsetnumber1Time zone (hours from UTC, standard time). Only shifts the hourly profile from solar time to your clock; daylight saving time is ignored.

Example request

8 kWp in Berlin, south, 35° (offline)

curl -X POST https://ledgerlysolaryield.usefulweb.app/api/v1/calculate -H 'content-type: application/json' -d '{"latitude":52.52,"longitude":13.405,"peakPowerKw":8,"tilt":35,"azimuth":0}'

Every result contains

inputs (normalised, defaults applied), summary, result (validated against the published schema), units, assumptions, sources, warnings, computedAt and links.

MCP (Model Context Protocol)

{
  "mcpServers": {
    "ledgerly-solar-yield": { "type": "http", "url": "https://ledgerlysolaryield.usefulweb.app/mcp" }
  }
}