NASA POWER Weather & Solar Data: Coordinates Export avatar

NASA POWER Weather & Solar Data: Coordinates Export

Pricing

from $0.21 / 1,000 data points

Go to Apify Store
NASA POWER Weather & Solar Data: Coordinates Export

NASA POWER Weather & Solar Data: Coordinates Export

Get daily or monthly NASA POWER weather and solar data for up to 10 latitude/longitude points: temperature, precipitation, wind, solar irradiance and more. One row per location, period and parameter with units; missing values are null and free.

Pricing

from $0.21 / 1,000 data points

Rating

0.0

(0)

Developer

Cliqto Media

Cliqto Media

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Security

Limited permissions

Share

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.

It is for analysts, developers and AI agents in agriculture, solar energy, buildings and data science. The smallest run is one point and the default four parameters for the last 30 days: it takes a few seconds and no API key. A typical run (2 points, 4 parameters, 30 days, 212 values) costs about $0.065 on the Free plan.

NASA POWER Weather & Solar Data: locations in, values with units out, export to JSON or CSV

Table of contents

What it does

NASA POWER is a free NASA service with global weather and solar data on a grid of about 0.5° (about 50 km). It is made from satellite data and climate models (MERRA-2, GEOS-IT, CERES, FLASHFlux), not from local weather stations.

This Actor:

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

Good fit

  • 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 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.

Quick start

  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.

Expected result: about 240 rows in a few seconds, for example Ames IA | 2026-09-13 | T2M | 16.54 | C. About 28 of them are the newest days, which have status: "missing" and are not charged.

Input

FieldTypeDefaultAllowed valuesWhat it changes
locationslist of text— (prefill: 2 points)1–10 lines, "lat, lon" or "lat, lon, label"; lat −90..90, lon −180..180Points to fetch. Invalid lines become error rows. Repeats (same 4 decimals) are skipped. Required.
parameterslist of textT2M, PRECTOTCORR, WS2M, ALLSKY_SFC_SW_DWN1–20 NASA POWER codesWhat to measure. Unknown codes are dropped with a warning.
temporaldaily or monthlydaily—daily: one value per day, up to 366 days. monthly: one value per month for whole years, plus an annual value.
communityAG, RE or SBAG—Units. Solar: AG = MJ/m²/day (units: MJ/m^2/day), RE = kWh/m²/day (kW-hr/m^2/day), SB = W/m² (W m-2). Temperature, rain and wind are the same.
lastDaysinteger301–366Range length when startDate is empty.
startDatedateemptyfrom 1981-01-01First day. Monthly runs use the whole year of this date.
endDatedatetodaynot before startDateLast day, inclusive. A future date becomes today.
timeStandardLST or UTCLSTdaily onlyDay boundary: local solar time (NASA default) or UTC.
includeMissingValuesbooleantrue—Keep free missing rows. Turn off to get only real values.
includeAnnualbooleantruemonthly onlyAdd the annual value per year (period: "2025", isAnnual: true).

Tips:

  • Popular codes: T2M (air temperature at 2 m), T2M_MAX, T2M_MIN, PRECTOTCORR (precipitation), RH2M (relative humidity), WS2M (wind speed at 2 m), ALLSKY_SFC_SW_DWN (solar irradiance), CLRSKY_SFC_SW_DWN (clear-sky irradiance).
  • For more than one year of history, use monthly. One monthly run can cover 1981 to last year.
  • Choose RE if you work with solar panels and want kWh/m²/day.

Input examples

Last 30 days, two farms (this is the prefill):

{
"locations": ["42.0308, -93.6319, Ames IA", "48.8566, 2.3522, Paris"],
"parameters": ["T2M", "PRECTOTCORR", "WS2M", "ALLSKY_SFC_SW_DWN"],
"temporal": "daily",
"lastDays": 30
}

Monthly solar history for a solar site, 2015–2025, in kWh/m²/day:

{
"locations": ["33.4484, -112.0740, Phoenix AZ"],
"parameters": ["ALLSKY_SFC_SW_DWN", "CLRSKY_SFC_SW_DWN", "T2M"],
"temporal": "monthly",
"community": "RE",
"startDate": "2015-01-01",
"endDate": "2025-12-31"
}

One full year of daily highs and lows, only real values:

{
"locations": ["51.5072, -0.1276, London", "40.7128, -74.0060, New York"],
"parameters": ["T2M_MAX", "T2M_MIN", "RH2M"],
"startDate": "2025-01-01",
"endDate": "2025-12-31",
"includeMissingValues": false
}

Output

The default Dataset has one row per location, period and parameter. The Values view shows status, location, period, parameter, value, units, parameter name, community and status reason. Download it as JSON, CSV, Excel or XML.

A real complete row:

{
"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"
}

A missing row has the same fields with "value": null and a reason, for example "NASA POWER has no value for this period yet (fill value -999) or the source does not cover it".

If a parameter has no value at all in the whole range, you get one missing row for it with period: null, not one empty row per day. If no parameter has any value, you get one missing row per location with parameter: null.

The key-value store record RUN_SUMMARY has the run status, counts (rows, valueRows, missingRows, errorRows, chargedDataPoints), units per parameter, warnings, request statistics and the NASA attribution text.

Output fields

FieldTypeCan be nullExampleMeaning
statustextnocompletecomplete (has a value, charged), missing (no value yet, free), error (point not fetched or invalid, free).
statusReasontextyesnullWhy the row is missing or error.
locationIndexintegerno1Position of the point in your input list.
locationLabeltextyesAmes IAYour label, if you gave one.
latitude, longitudenumberyes (invalid input)42.0308The point as you sent it.
elevationMnumberyes310.22Elevation of the NASA grid cell, in metres.
temporaltextnodailydaily or monthly.
periodtextyes2026-09-13, 2025-03, 2025Day, month or year (annual value).
datetextyes2026-09-13ISO date; for months, the first day of the month; null for annual values.
year, month, dayintegeryes2026, 9, 13Parts of the period.
isAnnualbooleannofalsetrue for the annual value of a monthly run.
parametertextyesT2MNASA POWER code.
parameterNametextyesTemperature at 2 MetersNASA's long name.
valuenumberyes16.54The value. null when NASA returns -999.
unitstextyesCUnits from NASA POWER for this community. Never converted.
communitytextnoAGAG, RE or SB.
timeStandardtextnoLSTDay boundary used.
providertextnoNASA POWERData source.
apiVersiontextyesv2.10.0NASA POWER API version that answered.
dataSourceslistno["FLASHFLUX","GEOSIT","POWER"]Upstream data sets NASA POWER used.
sourceUrltextyeshttps://power.larc.nasa.gov/api/...The exact API request, so you can repeat it.
fetchedAttextno2026-10-12T13:15:29.789ZWhen the row was fetched (UTC).

Pricing

Pay per event:

EventPrice
Actor start$0.0015 per run (256 MB memory = one event)
Data point (one complete row)$0.0003 (Free plan), $0.000285 (Bronze), $0.00027 (Silver), $0.000255 (Gold and higher)

missing and error rows are never charged. The Actor start event is charged once per run, also when the run ends with INVALID_INPUT.

Examples on the Free plan:

Data pointsExamplePrice
101 point × 1 parameter × 10 days$0.0015 + $0.003 = $0.0045
1001 point × 4 parameters × 25 days$0.0015 + $0.03 = $0.0315
1,0002 points × 4 parameters × 125 days$0.0015 + $0.30 = $0.3015
212the prefill run (2 points, 4 parameters, 30 days)about $0.065

The largest daily run (10 points × 20 parameters × 366 days) has up to 73,200 values; we tested 73,000 values (365 days) and 117,000 monthly values (1981–2025) in one run. Set Maximum cost per run in Run options if you want a hard limit: the Actor stops when it is reached and the status is CAPPED.

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.

Schedules and monitoring

You can run the Actor on a schedule, for example every Monday with lastDays: 14, to add new days to your table. NASA POWER updates with a delay of 2–5 days, so recent days may first come as missing and become complete in a later run. Each run returns the full range; it does not show only changes.

API, MCP and integrations

Run it from code with the Apify API or a client library. Example with curl:

curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~nasa-power-climate-data/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"locations":["42.0308, -93.6319"],"parameters":["T2M","PRECTOTCORR"],"lastDays":7}'

Use with AI agents (MCP)

Add this Actor as a tool in any MCP client (Claude, Cursor, VS Code and others) with the Apify MCP server:

https://mcp.apify.com?tools=cliqtomedia/nasa-power-climate-data

An agent can then ask, for example: "Get daily rain and temperature for 42.03, -93.63 for September 2026." The input fields above are the tool's arguments; each row has units and status, so the agent does not need to guess. Key output fields: period, parameter, value, units, status. A typical call (2 points, 4 parameters, 30 days) takes a few seconds and costs about $0.065.

You can also connect results to Google Sheets, Make, Zapier, n8n or webhooks with Apify integrations.

Limits and partial results

  • 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.

FAQ

Do I need a NASA API key? No. NASA POWER is open and needs no key.

Is this real measured weather? It is modelled and satellite-based data for a grid cell, not one station. It is widely used for agriculture and solar studies.

Why is the value null? NASA POWER uses -999 for "no value". We turn it into null and status: "missing", and we do not charge for it.

Can I get the data in wide format (one column per parameter)? The output is long format. In Excel or pandas, pivot by parameter.

Which units do I get? Exactly the units NASA POWER gives for your community. They are in the units field of every row and in RUN_SUMMARY.parameters.units.

Is this an official NASA product? No. This Actor uses the public NASA POWER API and is not affiliated with or endorsed by NASA.

Source and attribution

Data: NASA POWER API v2.10.0, referencing guide. When you use the data, please cite it like this (also in RUN_SUMMARY.source):

The data was obtained from National Aeronautics and Space Administration (NASA) Langley Research Center's Prediction Of Worldwide Energy Resources (POWER) project funded through the NASA Earth Science Division.

Add the version and date from RUN_SUMMARY.source.dataReference, for example "The data was obtained from the POWER Project's Daily 2.10.0 version on 2026/10/12."

Support

Found a problem or need a new parameter or mode? Open an issue in the Issues tab of this Actor. Please add the run ID and your input (without private data).