NASA logo

Open data · Coming soon

NASA POWER Weather and Solar Data Export

Get past weather and solar data for any latitude and longitude. The data comes from NASA POWER, built from satellites and models. You get one simple long table with units.

Built and tested. Prices will be shown after release.

Coming soon to the Apify StoreFollow us on Apify

What you get, for example

locationIndex1
locationLabelAmes IA
latitude42.0308

How it will work: 3 steps

  1. Follow us on ApifyThe tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: 42.0308, -93.6319, Ames IA in Locations (latitude, longitude[, label]). Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

Get historical daily or monthly weather and solar data for any latitude and longitude from NASA POWER: air temperature, precipitation, wind, humidity, solar irradiance and other parameters since 1981. You get one clean row per location, period and parameter, with units, and missing values as null.

  • Takes up to 10 points as latitude, longitude.
  • Calls the official NASA POWER API once per point (up to 20 parameters per call).
  • Turns the answer into long rows: location × period × parameter → value + units.
  • Marks NASA's fill value -999 as status: "missing" and value: null. Missing rows are free.
  • Saves a run summary with counts, units and the NASA attribution text.

Good for

  • Daily weather history for fields, farms or sites (temperature, rain, wind, humidity).
  • Solar irradiance history for solar site checks, in MJ/m²/day, kWh/m²/day or W/m².
  • Monthly and annual values since 1981 for long-term comparisons and model features.
  • One table you can load into Excel, pandas, BigQuery or an AI agent without parsing NASA's JSON.

Not a good fit

  • No forecasts. NASA POWER is history plus near-real-time. A future end date is moved back to today.
  • No hourly data, climatology or regional grids in this version. Only daily and monthly point data.
  • Not station data. Values are grid-cell averages; points close together can return the same cell.
  • The newest 2–5 days are usually not published yet. They come back as missing.

Who uses it

Farm and crop analysts

Get daily temperature, rain and sun for crop models.

Solar planners

Compare sun history at several sites before a project.

Data scientists

Add weather features to a model without parsing NASA JSON.

Price

Prices will be shown after release.

Questions

Can I get a weather forecast?

No. NASA POWER has history only. A future end date moves back to today.

Is this local weather station data?

No. It comes from satellite data and climate models on a grid.

How far back does the data go?

Daily and monthly values start in 1981.

Is there hourly data?

No. This tool gives daily or monthly values only.

Details

Step by step on Apify
  1. Open the Input tab. Two points (Ames, Iowa and Paris) and four parameters are already filled in.
  2. Keep Resolution = Daily and Last N days = 30, or change them.
  3. Click Start.
  4. Open the Output tab and look at the Values view.
Use cases
  • Agriculture: daily temperature, rain and solar radiation for crop models, growing degree days and irrigation checks.
  • Solar energy: monthly irradiance history (kWh/m²/day) to compare sites before a project.
  • Buildings and energy audits: monthly temperature and irradiance (W/m²) for a building location.
  • Insurance and risk: check what the weather was at a place on a given date range.
  • Data science and AI: weather features in one long table, with units in every row.
Tips for better results
  • Pick the community to set solar units: AG, RE or SB.
  • The grid is about 50 km. Use it for areas, not one exact street.
  • Missing values are null and free, so check the status column.
Limits and good to know
  • Up to 10 locations and 20 parameters per run
  • Daily: up to 366 days per run. Monthly: whole calendar years from 1981; the current year has only the months NASA POWER has already published
  • Some solar parameters start in 1984, so older months come back as missing
  • The Actor sends at most 3 requests at a time to NASA POWER and retries short errors (HTTP 429 and 5xx)
  • If some points fail and others work, the run status is PARTIAL: good rows are kept, failed points get one error row each
  • Run statuses in RUN_SUMMARY.status: COMPLETE, PARTIAL, NO_DATA, CAPPED, ERROR, INVALID_INPUT, CANCELLED

Troubleshooting

What you seeWhyWhat to do
Status NO_DATA, rows with value: nullNASA has not published these days yet, or the parameter has no data for that periodUse an earlier end date (5+ days ago) or another parameter.
Warning "Skipped parameter(s) not available for community …"The code does not exist for this community or resolutionCheck the code on the parameters page.
INVALID_INPUT: Daily range is limited to 366 daysDaily range is too longSplit the range, or use temporal: "monthly".
error row for one locationBad coordinates or NASA rejected the requestRead statusReason; fix the line. Other points are not affected.
Two points give the same valuesThey are in the same 0.5° grid cellThis is expected for NASA POWER.
Status ERROR, "Source unavailable"NASA POWER is down or slowTry again later.

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one result · JSON
{
  "status": "complete",
  "statusReason": null,
  "locationIndex": 1,
  "locationLabel": "Ames IA",
  "latitude": 42.0308,
  "longitude": -93.6319,
  "elevationM": 310.22,
  "temporal": "daily",
  "period": "2026-09-13",
  "date": "2026-09-13",
  "year": 2026,
  "month": 9,
  "day": 13,
  "isAnnual": false,
  "parameter": "T2M",
  "parameterName": "Temperature at 2 Meters",
  "value": 16.54,
  "units": "C",
  "community": "AG",
  "timeStandard": "LST",
  "provider": "NASA POWER",
  "apiVersion": "v2.10.0",
  "dataSources": ["FLASHFLUX", "GEOSIT", "POWER"],
  "sourceUrl": "https://power.larc.nasa.gov/api/temporal/daily/point?parameters=T2M%2CPRECTOTCORR%2CWS2M%2CALLSKY_SFC_SW_DWN&community=AG&longitude=-93.6319&latitude=42.0308&start=20260913&end=20261012&format=JSON&time-standard=LST",
  "fetchedAt": "2026-10-12T13:15:29.789Z"
}
Data fields (25)
FieldTypeMeaning
statusstringRow result: complete (value present), missing (NASA POWER fill value -999 or no value yet; value null, not charged) or error (location failed; see statusReason).
statusReasonstringWhy the row is missing or failed; null for complete rows.
locationIndexinteger1-based position of the location in the input list.
locationLabelstringLabel from the input (third part of "lat, lon, label"), or null.
latitudenumberLatitude as requested, decimal degrees.
longitudenumberLongitude as requested, decimal degrees.
elevationMnumberGrid-cell elevation in metres reported by NASA POWER.
temporalstringResolution: daily or monthly.
periodstringPeriod: 2026-10-04 (daily), 2025-03 (monthly) or 2025 (annual value of a monthly run).
datestringISO date of the day, or the first day of the month; null for annual values.
yearintegerYear of the period.
monthintegerMonth 1-12; null for annual values.
dayintegerDay of month for daily rows; null otherwise.
isAnnualbooleanTrue for the annual value of a monthly run.
parameterstringNASA POWER parameter code, e.g. T2M.
parameterNamestringParameter long name from NASA POWER.
valuenumberValue in the units column; null when missing.
unitsstringUnits as reported by NASA POWER for this community, e.g. C, mm/day, m/s, MJ/m^2/day.
communitystringNASA POWER community that set the units: AG, RE or SB.
timeStandardstringDay boundary: LST (local solar time) or UTC.
providerstringAlways NASA POWER.
apiVersionstringNASA POWER API version that served the data, e.g. v2.10.0.
dataSourcesarrayUpstream data sources listed by NASA POWER (e.g. FLASHFLUX, GEOSIT, POWER for daily data).
sourceUrlstringNASA POWER API request URL for this location (no key needed).
fetchedAtstringUTC timestamp when the Actor fetched the data.
Input settings (10)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
Locations (latitude, longitude[, label]) requiredlocationsarray["42.0308, -93.6319, Ames IA", "48.8566, 2.3522, Paris"]
Parametersparametersarray["T2M", "PRECTOTCORR", "WS2M", "ALLSKY_SFC_SW_DWN"]
Resolutiontemporalstring"daily"
Community (units)communitystring"AG"
Last N dayslastDaysinteger30
Start datestartDatestring
End dateendDatestring
Day boundary (daily only)timeStandardstring"LST"
Include missing valuesincludeMissingValuesbooleantrue
Include annual values (monthly only)includeAnnualbooleantrue

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure