Stay organized with collections Save and categorize content based on your preferences.
European Economic Area (EEA) developers If your billing address is in the European Economic Area, effective on 8 July 2025, the Google Maps Platform EEA Terms of Service will apply to your use of the Services. Learn more. In addition, certain content from the Solar API will no longer be returned. Learn more. This product or feature is Experimental (pre-GA). Pre-GA products and features might have limited support, and changes to pre-GA products and features might not be compatible with other pre-GA versions. Pre-GA Offerings are covered by the Google Maps Platform Service Specific Terms. For more information, see the launch stage descriptions.The Solar API is launching an experimental feature that expands coverage to previously unsupported regions, based on machine learning models applied to satellite imagery. To access experimental solar data, set the experiments
parameter to EXPANDED_COVERAGE
and the requiredQuality
parameter to BASE
.
BASE
quality data is available under this experiment. Solar API calls with experiments=EXPANDED_COVERAGE
are discounted by 100% during the Experimental phase. To access HIGH
or MEDIUM
quality data, remove the experiments=EXPANDED_COVERAGE
parameter. Non-experimental calls will be billed at the standard rate.
Experimental data is available for buildingInsights
and dataLayers
requests. The following sections describe example requests and responses.
The buildingInsights endpoint provides insights about the location, dimensions, and solar potential of a building. To request building insights, send an HTTP GET request to:
https://solar.googleapis.com/v1/buildingInsights:findClosest?key=YOUR_API_KEY
Include your request URL parameters that specify the latitude and longitude coordinates of the location and the minimum required quality level allowed in the results.
The following example requests building insights information for the location at the coordinates of latitude = 4.655719 and longitude = -74.128971. To request experimental data, set the following parameters:
requiredQuality
= BASE
experiments
= EXPANDED_COVERAGE
BASE
imagery quality data is only available if the experiments
parameter is set to EXPANDED_COVERAGE
.
curl -X GET "https://solar.googleapis.com/v1/buildingInsights:findClosest?location.latitude=4.655719&location.longitude=-74.128971&requiredQuality=BASE&experiments=EXPANDED_COVERAGE&key=YOUR_API_KEY"
That request produces a JSON response in the form:
{ "name": "buildings/ChIJW2GaKXecP44RaeGtGpQtk4Q", "center": { "latitude": 4.6557664, "longitude": -74.1289303 }, "imageryDate": { "year": 2024, "month": 2, "day": 19 }, "regionCode": "CO", "solarPotential": { "maxArrayPanelsCount": 351, "maxArrayAreaMeters2": 689.20776, "maxSunshineHoursPerYear": 1631.7008, "carbonOffsetFactorKgPerMwh": 122.99986, "wholeRoofStats": { "areaMeters2": 1078.406, "sunshineQuantiles": [ 562.9261, 930.9767, 1165.876, 1221.8761, 1333.0057, 1485.7363, 1563.2417, 1593.266, 1610.5652, 1621.5986, 1640.6102 ], "groundAreaMeters2": 1050.76 }, "roofSegmentStats": [ { "pitchDegrees": 38.58091, "azimuthDegrees": 41.91368, "stats": { "areaMeters2": 23.153826, "sunshineQuantiles": [ 582.9132, 612.5797, 673.3435, 762.14233, 899.41864, 1031.1329, 1103.8121, 1135.5204, 1150.2969, 1158.215, 1170.5475 ], "groundAreaMeters2": 18.1 }, "center": { "latitude": 4.6554996, "longitude": -74.128966699999992 }, "boundingBox": { "sw": { "latitude": 4.655472, "longitude": -74.1290005 }, "ne": { "latitude": 4.6555371999999995, "longitude": -74.1289328 } }, "planeHeightAtCenterMeters": 2552.031 }, /.../ ] "solarPanelConfigs": [ { "panelsCount": 4, "yearlyEnergyDcKwh": 2609.5698, "roofSegmentSummaries": [ { "pitchDegrees": 10.260736, "azimuthDegrees": 131.22626, "panelsCount": 1, "yearlyEnergyDcKwh": 652.84863, "segmentIndex": 6 }, { "pitchDegrees": 8.649131, "azimuthDegrees": 145.79407, "panelsCount": 1, "yearlyEnergyDcKwh": 652.3829, "segmentIndex": 11 }, { "pitchDegrees": 5.061984, "azimuthDegrees": 12.690001, "panelsCount": 2, "yearlyEnergyDcKwh": 1304.3383, "segmentIndex": 12 } ] }, /.../ ] "panelCapacityWatts": 400, "panelHeightMeters": 1.879, "panelWidthMeters": 1.045, "panelLifetimeYears": 20, "buildingStats": { "areaMeters2": 1143.155, "sunshineQuantiles": [ 557, 883.26263, 1146.4794, 1209.3063, 1278.1102, 1465.2921, 1557.7494, 1590.9565, 1609.4994, 1621.1909, 1640.6102 ], "groundAreaMeters2": 1089.35 }, "solarPanels": [ { "center": { "latitude": 4.6560077, "longitude": -74.12885 }, "orientation": "PORTRAIT", "yearlyEnergyDcKwh": 653.14404, "segmentIndex": 12 }, /.../ ] }, "boundingBox": { "sw": { "latitude": 4.6554716, "longitude": -74.129243899999992 }, "ne": { "latitude": 4.6560513, "longitude": -74.128623900000008 } }, "imageryQuality": "BASE", "imageryProcessedDate": { "year": 2024, "month": 7, "day": 21 } }Data layers
The dataLayers endpoint provides detailed solar information for a region surrounding a specified location. The endpoint returns 17 downloadable TIFF files, including a digital surface model (DSM), RGB composite layer (aerial imagery), and a mask layer that identifies the boundaries of the analysis, among others.
The following example shows the URL of a REST request to the dataLayers
method:
https://solar.googleapis.com/v1/dataLayers:get?parameters
Include your request URL parameters that specify the following:
To request experimental data, set the following parameters:
requiredQuality
= BASE
experiments
= EXPANDED_COVERAGE
curl -X GET "https://solar.googleapis.com/v1/dataLayers:get?location.latitude=4.655719&location.longitude=-74.128971&radiusMeters=100&requiredQuality=BASE&experiments=EXPANDED_COVERAGE&key=YOUR_API_KEY"
That request produces a JSON response in the form:
{ "imageryDate": { "year": 2024, "month": 2, "day": 19 }, "imageryProcessedDate": { "year": 2024, "month": 7, "day": 21 }, "dsmUrl": "https://solar.googleapis.com/v1/geoTiff:get?id=YTYwZDUzYTMxNjVmMjFlYWNjZmMyYzcxYTNhNWQ2OWItZTM0ZWRjZTQwNTZjZWUyYTNiNWE2ZjU5OTVkYWJjNTM6RFNNOkJBU0U", "rgbUrl": "https://solar.googleapis.com/v1/geoTiff:get?id=MWU2NmYxNmU3M2JlYmY5NDJkZmVmMjQ0NDViMjFjYTgtZWVhYjRiN2U0YWJlNzM2Nzk1MzUxZTQ4YTgxNjZiM2M6UkdCOkJBU0U", "maskUrl": "https://solar.googleapis.com/v1/geoTiff:get?id=ZGU4NzhmNDg0YjE2OGYwYTdjN2EyYmVlMDQxYTM5NDMtNDk2NGQwNzBhMzAwYzBkYTEwZDNmYjgzNTk4ODkyY2I6TUFTSzpCQVNF", "annualFluxUrl": "https://solar.googleapis.com/v1/geoTiff:get?id=NmRiZDQ0NDFkNWE5NDU2Nzc2ZTU1Mzg0MDY0YzFhMWMtMDg2ZDMyZjVkYTMzMDhiZmI5NzM1MzY0YmRjZmFiM2I6QU5OVUFMX0ZMVVg6QkFTRQ", "monthlyFluxUrl": "https://solar.googleapis.com/v1/geoTiff:get?id=NTAyMDJkMTVmMjJiZGYyOTNiMDFhMWEzNDJkZjAwNTctZDRjMjY3ZjU1YjQ2ZjE4ZTNkNjE1YmU5NTlmOThlZjM6TU9OVEhMWV9GTFVYOkJBU0U", "hourlyShadeUrls": [ "https://solar.googleapis.com/v1/geoTiff:get?id=NWNkZmM0NTcwYTE5ODQzMmI0MmQ1NDM4NzY4MTc5MzEtOWE0MTBjNDkwM2IxZjA0MmI1ZTNmNTg1NTY0MTNkZjI6SE9VUkxZX1NIQURFOkJBU0U", "https://solar.googleapis.com/v1/geoTiff:get?id=Y2YwNDY4MzQ1YzhkMjBlZjU5M2NiNDRmMmM0ODRiNTUtNjMwOWM2NDBjZmI5OTdkMDA3ZGQzOWY2YmI1ZTk2NWM6SE9VUkxZX1NIQURFOkJBU0U", /.../ ], "imageryQuality": "BASE" }
To make a request to the URL in the response, append your API key to the URL:
curl -X GET "https://solar.googleapis.com/v1/geoTiff:get?id=YTYwZDUzYTMxNjVmMjFlYWNjZmMyYzcxYTNhNWQ2OWItZTM0ZWRjZTQwNTZjZWUyYTNiNWE2ZjU5OTVkYWJjNTM6RFNNOkJBU0U&key=YOUR_API_KEY"
With the exception of the RGB layer, all TIFF files will display as blank images in image viewer applications. To view downloaded TIFF files, import them into a mapping application software, such as QGIS.
The full specification of this request and response is in the reference documentation.
Note: Response URLs are only active for one hour after the initial request. To access URLs beyond this timeframe, you must send a request to thedataLayers
endpoint again.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-14 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-14 UTC."],[],[]]
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4