Download the optimal solar panel tilt and orientation for 72,000+ cities as one file. It is CC0 (public domain): use it, republish it, build on it, sell it, with or without credit. There is no key, no sign-up, and no rate limit.
One row per city. Every figure is the same one shown on that city's page, computed by the same code, so the file and the site cannot disagree.
| Column | What it holds |
|---|---|
| id | Stable row identifier for the city. |
| city, state_id, state_name, country_id, country_name | Place names and ISO country code. |
| latitude, longitude | Decimal degrees. Latitude is the only input to every angle below. |
| population, population_proper | Population of the metro area and of the city proper. Filter on these to drop hamlets. |
| url | The city's page on this site, if you want to link back or check a figure. |
| facing | Direction to face: south in the northern hemisphere, north in the southern. |
| tilt_fixed | Most efficient year-round angle for a mount you set once, in degrees from horizontal. |
| tilt_2season_* | Summer and winter angles for a mount you adjust twice a year, each with its own facing. |
| tilt_4season_* | Summer, winter, and spring/autumn angles for a mount you adjust each season. |
| tilt_01 to tilt_12 | Most efficient angle for each month, January to December. In the JSON these are nested under monthly. |
| noon_sun_angle_01 to noon_sun_angle_12 | How high the sun sits above the horizon at solar noon, per month. |
The JSON carries the same fields, with the monthly figures nested as an array of 12 objects and the solar declination for each month included.
Today's angle. It is the one figure on a city page that changes daily, so a downloaded copy would be wrong tomorrow. Everything in the file is fixed: recompute the daily angle yourself from the declination model, or read it off the city page.
The fixed tilt comes from a quadratic in latitude calibrated against PVGIS v5.2 optimal-slope data for 52 cities spanning 1 to 69 degrees, accurate to about 3.4 degrees RMSE against that reference. Monthly figures come from the subsolar-point declination model. Latitude cannot see local climate, so a cloudy place and a clear place at the same latitude get the same answer. The full method, its accuracy, and its limits are written up separately.
CC0 asks for nothing, but if you want a citation:
Solarific, Solar Panel Angle Dataset, https://solarific.co/data (CC0).
If you want the current day's angle for one city rather than the bulk file, the embeddable widget computes it in the page and updates itself daily.