# NASA POWER Solar & Weather Data Scraper (`parseforge/nasa-power-energy-scraper`) Actor

Export NASA POWER solar irradiance, temperature, wind, humidity, precipitation and renewable-energy parameters for any lat/lng on Earth. Daily, monthly or climatology granularity. Multi-point batch input. Ideal for solar siting, agricultural modelling, and climate analytics.

- **URL**: https://apify.com/parseforge/nasa-power-energy-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Other, Business, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.75 / 1,000 result items

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## ☀️ NASA POWER Solar & Weather Data Scraper

> 🚀 **Export NASA satellite-derived solar, weather, and renewable-energy data for any point on Earth.** 26 parameters, 4 temporal granularities, **45+ years of history (1981 to present)**. No login, no quota juggling, no parser engineering.

> 🕒 **Last updated:** 2026-05-21 · **📊 13 fields** per record · **🌍 global coverage** · **📡 45+ years of NASA satellite data** · **☀️ 26 parameters across solar, weather, and agro-climate**

The **NASA POWER Scraper** turns NASA's Prediction Of Worldwide Energy Resources dataset into clean records you can drop into a solar feasibility model, irrigation schedule, climate study, or HVAC sizing tool. Each output row carries the location, elevation, time period, and the parameter values you requested. POWER is maintained by NASA Langley Research Center and is the same dataset cited in thousands of renewable-energy and agro-climate papers.

Coverage spans the **entire globe at 0.5° x 0.5° resolution** (down to 0.25° for some products), with daily values from 1981, monthly values from 1981, climatological long-term means, and hourly values from 2001. Parameters include shortwave and longwave irradiance, direct-normal and diffuse components, air and surface temperature, dew point, wet-bulb, humidity, wind speed and direction at 2 m / 10 m / 50 m, surface pressure, precipitation, heating and cooling degree days, and frost days.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Solar developers, agri-tech engineers, climate researchers, HVAC and building-science teams, EV charging planners, wind analysts, civil engineers, GIS analysts | Solar siting and yield modelling, evapotranspiration calculations, climate normals, building-load simulations, wind resource scoping, drought monitoring |

---

### 📋 What the NASA POWER Scraper does

Four temporal modes plus multi-point batch:

- ☀️ **Daily values.** One record per day per location, 1981 to present.
- 📅 **Monthly values.** One record per month per location, 1981 to present.
- 🌐 **Climatology.** Long-term monthly and annual means.
- ⏰ **Hourly values.** One record per hour per location, 2001 to present.
- 📍 **Multi-point batch.** Pass an array of lat/lng pairs to pull every location in one run.

Pick the community (Renewable Energy, Sustainable Buildings, or Agro-climatology) and the parameters you need from a catalog of 26 variables. Units are switchable between metric (SI) and imperial.

> 💡 **Why it matters:** building a solar or climate model means stitching together gridded climate sources, handling missing-value sentinels, converting units, and rebuilding the loader every time NASA versions the dataset. This Actor returns flat, unit-tagged records every run.

---

### 🎬 Full Demo

_🚧 Coming soon: a 3-minute walkthrough showing how to pull a year of irradiance for 50 solar sites in one run._

---

### ⚙️ Input

<table>
<thead>
<tr><th>Input</th><th>Type</th><th>Default</th><th>Behavior</th></tr>
</thead>
<tbody>
<tr><td><code>maxItems</code></td><td>integer</td><td><code>10</code></td><td>Records to return. Free plan caps at 10, paid plan at 1,000,000.</td></tr>
<tr><td><code>points</code></td><td>array</td><td>Phoenix + Berlin</td><td>Array of <code>{ name, latitude, longitude }</code>. Each location is queried in turn.</td></tr>
<tr><td><code>temporal</code></td><td>string</td><td><code>"daily"</code></td><td>One of <code>daily</code>, <code>monthly</code>, <code>climatology</code>, <code>hourly</code>.</td></tr>
<tr><td><code>start</code></td><td>string</td><td><code>"20240101"</code></td><td>Start date. <code>YYYYMMDD</code> for daily/hourly, <code>YYYY</code> for monthly. Ignored for climatology.</td></tr>
<tr><td><code>end</code></td><td>string</td><td><code>"20240131"</code></td><td>End date. Same format as start.</td></tr>
<tr><td><code>community</code></td><td>string</td><td><code>"RE"</code></td><td>Parameter community: <code>RE</code> (Renewable Energy), <code>SB</code> (Sustainable Buildings), <code>AG</code> (Agro-climatology).</td></tr>
<tr><td><code>parameters</code></td><td>array</td><td>7 RE defaults</td><td>Pick from 26 community-specific parameters.</td></tr>
<tr><td><code>unitsFormat</code></td><td>string</td><td><code>"METRIC"</code></td><td>Metric (SI) or Imperial.</td></tr>
</tbody>
</table>

**Example: full year of solar irradiance for three U.S. cities.**

```json
{
    "maxItems": 1100,
    "points": [
        { "name": "Phoenix, AZ", "latitude": 33.4484, "longitude": -112.074 },
        { "name": "Denver, CO", "latitude": 39.7392, "longitude": -104.9903 },
        { "name": "Boston, MA", "latitude": 42.3601, "longitude": -71.0589 }
    ],
    "temporal": "daily",
    "start": "20240101",
    "end": "20241231",
    "community": "RE",
    "parameters": ["ALLSKY_SFC_SW_DWN", "ALLSKY_SFC_SW_DNI", "T2M_MAX", "T2M_MIN"]
}
````

**Example: climatological long-term means for an agricultural site.**

```json
{
    "maxItems": 12,
    "points": [{ "name": "Iowa Farm", "latitude": 41.5868, "longitude": -93.625 }],
    "temporal": "climatology",
    "community": "AG",
    "parameters": ["T2M", "PRECTOTCORR", "RH2M"]
}
```

> ⚠️ **Good to Know:** NASA POWER returns satellite- and model-derived values on a coarse grid. Values are excellent for siting, modelling, and historical analysis, but should not replace on-site measurements for safety-critical engineering decisions.

***

### 📊 Output

Each record contains **14 fields** including a nested `parameters` object with the values you requested. Download the dataset as CSV, Excel, JSON, or XML.

#### 🧾 Schema

| Field | Type | Example |
|---|---|---|
| 🏙️ `name` | string | null | `"Phoenix, AZ"` |
| 📍 `latitude` | number | `33.4484` |
| 📍 `longitude` | number | `-112.074` |
| ⛰️ `elevation` | number | null | `337.5` |
| ⏱️ `temporal` | string | `"daily"` |
| 📅 `period` | string | `"20240101"` |
| 🗓️ `date` | string | `"2024-01-01"` |
| ☀️ `parameters` | object | `{"T2M": 4.98, "ALLSKY_SFC_SW_DWN": 4.21}` |
| 🌐 `community` | string | `"RE"` |
| 📏 `unitsFormat` | string | `"METRIC"` |
| 🔗 `sourceUrl` | string | `"https://power.larc.nasa.gov/data-access-viewer/"` |
| 🕒 `scrapedAt` | ISO 8601 | `"2026-05-20T20:56:18.055Z"` |
| ⚠️ `error` | string | null | `null` |

#### 📦 Sample records

<details>
<summary><strong>☀️ Daily irradiance and temperature: New York City</strong></summary>

```json
{
    "name": "NYC",
    "latitude": 40.71,
    "longitude": -74.01,
    "elevation": 10.17,
    "temporal": "daily",
    "period": "20240101",
    "date": "2024-01-01",
    "parameters": {
        "T2M": 4.98
    },
    "community": "RE",
    "unitsFormat": "METRIC",
    "sourceUrl": "https://power.larc.nasa.gov/data-access-viewer/",
    "scrapedAt": "2026-05-20T20:56:18.055Z"
}
```

</details>

<details>
<summary><strong>🌾 Agro-climatology for a farm site</strong></summary>

```json
{
    "name": "Iowa Farm",
    "latitude": 41.5868,
    "longitude": -93.625,
    "elevation": 273.3,
    "temporal": "monthly",
    "period": "202407",
    "date": "2024-07",
    "parameters": {
        "T2M": 24.8,
        "PRECTOTCORR": 92.5,
        "RH2M": 76.4
    },
    "community": "AG",
    "unitsFormat": "METRIC",
    "sourceUrl": "https://power.larc.nasa.gov/data-access-viewer/",
    "scrapedAt": "2026-05-20T12:00:00.000Z"
}
```

</details>

<details>
<summary><strong>🌐 Climatological mean: long-term July average</strong></summary>

```json
{
    "name": "Phoenix, AZ",
    "latitude": 33.4484,
    "longitude": -112.074,
    "elevation": 337.5,
    "temporal": "climatology",
    "period": "JUL",
    "date": "JUL",
    "parameters": {
        "ALLSKY_SFC_SW_DWN": 7.92,
        "T2M_MAX": 41.2,
        "T2M_MIN": 26.1
    },
    "community": "RE",
    "unitsFormat": "METRIC",
    "sourceUrl": "https://power.larc.nasa.gov/data-access-viewer/",
    "scrapedAt": "2026-05-20T12:00:00.000Z"
}
```

</details>

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| ☀️ | **26 parameters.** Irradiance components, temperature, wind, humidity, precipitation, degree days, frost days. |
| 🌍 | **Global coverage.** Any latitude / longitude on Earth, no regional gaps. |
| 📡 | **Deep history.** Daily values from 1981, hourly from 2001, climatologies derived from the full record. |
| 🎯 | **Multi-point batch.** Process dozens of sites in one run, no per-location wiring. |
| 📏 | **Unit-aware.** Metric (SI) and imperial output without manual conversion. |
| 🔁 | **Fresh data.** Every run hits the live source; new days appear as NASA processes them. |
| 🚫 | **No login.** No API key or registration required to pull the data. |

> 📊 The same dataset cited in thousands of solar, wind, and agro-climate papers, delivered as flat rows.

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Parameters | Setup |
|---|---|---|---|---|---|
| **⭐ NASA POWER Scraper** *(this Actor)* | $5 free credit, then pay-per-use | **Global, 1981+** | **Live per run** | 26 across 3 communities | ⚡ 2 min |
| On-site weather stations | $1k+/site, ongoing | Single point | Real-time | Limited | 🛠️ Days |
| Commercial climate services | $5k+/year | Region-specific | Hourly | Many | 🕒 Days |
| Direct NASA dataset downloads | Free | Global | Manual | All | 🐢 Steep learning curve |

Pick this Actor when you want satellite-derived climate inputs for many locations without standing up a GIS stack.

***

### 🚀 How to use

1. 📝 **Sign up.** [Create a free account with $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp) (takes 2 minutes).
2. 🌐 **Open the Actor.** Go to the NASA POWER Solar & Weather Data Scraper page on the Apify Store.
3. 🎯 **Set input.** Pass your point list, pick a temporal mode, choose parameters and a date range.
4. 🚀 **Run it.** Click **Start** and let the Actor query NASA for every location.
5. 📥 **Download.** Grab your results in the **Dataset** tab as CSV, Excel, JSON, or XML.

> ⏱️ Total time from signup to a downloaded climate dataset: **3-5 minutes.** No coding required.

***

### 💼 Business use cases

<table>
<tr>
<td width="50%" valign="top">

#### ☀️ Solar Developers & EPCs

- Site irradiance and degradation modelling
- Direct-normal vs global feeds for tracker vs fixed-tilt
- Long-term resource maps for portfolio underwriting
- Year-one yield checks against P50 expectations

</td>
<td width="50%" valign="top">

#### 🌾 Agri-tech & Precision Farming

- Evapotranspiration with temperature and humidity
- Growing-degree-day calculations
- Frost-risk monitoring per field
- Rain anomaly detection vs climatology

</td>
</tr>
<tr>
<td width="50%" valign="top">

#### 🏢 Buildings & HVAC

- Heating- and cooling-degree-day datasets for ASHRAE work
- Climate inputs for energy-use intensity benchmarks
- Wind data for facade and natural-ventilation studies
- Solar gain estimates for shading design

</td>
<td width="50%" valign="top">

#### 🚗 EV, Wind & Climate Research

- 50-m wind speeds for siting reconnaissance
- Charging-load forecasting under temperature stress
- Climate trend studies with 40+ years of history
- Reproducible weather inputs for ML feature stores

</td>
</tr>
</table>

***

### 🔌 Automating NASA POWER Scraper

Control the scraper programmatically for scheduled runs and pipeline integrations:

- 🟢 **Node.js.** Install the `apify-client` NPM package.
- 🐍 **Python.** Use the `apify-client` PyPI package.
- 📚 See the [Apify API documentation](https://docs.apify.com/api/v2) for full details.

The [Apify Schedules feature](https://docs.apify.com/platform/schedules) lets you trigger this Actor on any cron interval. Daily updates keep solar dashboards, irrigation models, and weather risk monitors current.

***

### 🌟 Beyond business use cases

The same dataset supports research, teaching, civic projects, and citizen science.

<table>
<tr>
<td width="50%">

#### 🎓 Research and academia

- Reproducible climate inputs for academic papers
- Geography and atmospheric-science teaching datasets
- Long-period trend analysis for masters and PhD work
- Multi-site case studies on regional climate signals

</td>
<td width="50%">

#### 🎨 Personal and creative

- Backyard solar-array yield estimators
- Vacation weather histories for travel planners
- Educational dashboards for science classrooms
- Custom climate visualisations for blogs and zines

</td>
</tr>
<tr>
<td width="50%">

#### 🤝 Non-profit and civic

- Drought-monitoring tools for water districts
- Climate-vulnerability mapping for adaptation NGOs
- Disaster-response planning with frost and wind data
- Energy-access feasibility studies in remote areas

</td>
<td width="50%">

#### 🧪 Experimentation

- Train weather-forecasting ML baselines
- Benchmark satellite vs ground-station accuracy
- Build agent pipelines that fetch climate features on demand
- Prototype climate-aware product recommendations

</td>
</tr>
</table>

***

### 🤖 Ask an AI assistant about this scraper

Open a ready-to-send prompt about this ParseForge actor in the AI of your choice:

- 💬 [**ChatGPT**](https://chat.openai.com/?q=How%20do%20I%20use%20the%20NASA%20POWER%20Solar%20%26%20Weather%20Data%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🧠 [**Claude**](https://claude.ai/new?q=How%20do%20I%20use%20the%20NASA%20POWER%20Solar%20%26%20Weather%20Data%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🔍 [**Perplexity**](https://perplexity.ai/search?q=How%20do%20I%20use%20the%20NASA%20POWER%20Solar%20%26%20Weather%20Data%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🅒 [**Copilot**](https://copilot.microsoft.com/?q=How%20do%20I%20use%20the%20NASA%20POWER%20Solar%20%26%20Weather%20Data%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)

***

### ❓ Frequently Asked Questions

#### 🧩 How does it work?

You pass an array of lat/lng points, pick a temporal granularity (daily, monthly, climatology, hourly) and a parameter list, and the Actor queries NASA POWER for each location and emits one record per time bucket.

#### 📏 How accurate is the data?

POWER is derived from MERRA-2 reanalysis and CERES satellite observations. Values are excellent for resource assessment, historical analysis, and modelling, but they are gridded estimates and should be combined with on-site instruments for safety-critical engineering.

#### 🔁 How often is the dataset refreshed?

NASA processes new days continuously with a lag of a few days to weeks depending on the product. Each run of this Actor pulls the live values.

#### 📅 How far back does the data go?

Daily and monthly values start in 1981. Hourly values start in 2001. Climatologies summarise the full reference period.

#### 🌍 What about coverage?

POWER is global on a 0.5° x 0.5° grid for most products. There are no regional gaps.

#### ☀️ Which parameters are available?

26 across three communities: shortwave and longwave irradiance, direct-normal and diffuse, air temperature (mean, max, min, dew, wet bulb), surface temperature, humidity, precipitation, wind speed and direction at 2 m / 10 m / 50 m, surface pressure, cooling and heating degree days, frost days, and clearness indices.

#### 💼 Can I use this data commercially?

NASA POWER is U.S. government open data and may be redistributed under the standard NASA citation policy. Review the source terms for your specific use case.

#### ⏰ Can I schedule regular runs?

Yes. Use Apify Schedules for daily or weekly refreshes that keep solar and climate dashboards current.

#### 💳 Do I need a paid Apify plan?

No. The free Apify plan covers testing and small runs. Paid plans unlock larger datasets, scheduling, and concurrency.

#### 🔁 What happens if a run fails?

Apify automatically retries transient errors. Partial datasets from failed runs are preserved so you can fix the input and re-run.

#### 🆘 What if I need help?

Our support team is here to help. Contact us through the Apify platform or use the Tally form linked below.

***

### 🔌 Integrate with any app

NASA POWER Scraper connects to any cloud service via [Apify integrations](https://apify.com/integrations):

- [**Make**](https://docs.apify.com/platform/integrations/make) - Automate multi-step workflows
- [**Zapier**](https://docs.apify.com/platform/integrations/zapier) - Connect with 5,000+ apps
- [**Slack**](https://docs.apify.com/platform/integrations/slack) - Get run notifications in your channels
- [**Airbyte**](https://docs.apify.com/platform/integrations/airbyte) - Pipe climate data into your warehouse
- [**GitHub**](https://docs.apify.com/platform/integrations/github) - Trigger runs from commits and releases
- [**Google Drive**](https://docs.apify.com/platform/integrations/drive) - Export datasets straight to Sheets

You can also use webhooks to trigger downstream actions when a run finishes. Push fresh climate inputs into your forecasting backend, or alert your operations team in Slack on threshold breaches.

***

### 🔗 Recommended Actors

- [**🌦️ NOAA Weather Stations Scraper**](https://apify.com/parseforge/noaa-weather-scraper) - U.S. National Weather Service station data
- [**✈️ OurAirports Global Airport Database**](https://apify.com/parseforge/ourairports-scraper) - 85,000+ airports worldwide
- [**🛬 OpenSky Flights Scraper**](https://apify.com/parseforge/opensky-flights-scraper) - Real-time and historical flight tracks
- [**🦋 GBIF Biodiversity Scraper**](https://apify.com/parseforge/gbif-biodiversity-scraper) - Species occurrence records
- [**🔬 OSF Open Science Scraper**](https://apify.com/parseforge/osf-scraper) - Research project metadata

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more open-data scrapers.

***

**🆘 Need Help?** [**Open our contact form**](https://tally.so/r/BzdKgA) to request a new scraper, propose a custom data project, or report an issue.

***

> **⚠️ Disclaimer:** this Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by NASA, NASA Langley Research Center, or any government agency. All trademarks mentioned are the property of their respective owners. Only publicly available open climate data is collected.

# Actor input Schema

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `points` (type: `array`):

List of locations. Each item: { name?, latitude, longitude }. Latitude in \[-90, 90], longitude in \[-180, 180].

## `temporal` (type: `string`):

Time aggregation of the records.

## `start` (type: `string`):

Start date. Format YYYYMMDD for daily/hourly, YYYY for monthly.

## `end` (type: `string`):

End date. Format YYYYMMDD for daily/hourly, YYYY for monthly.

## `community` (type: `string`):

Parameter community: Renewable Energy, Sustainable Buildings, or Agro-climatology.

## `parameters` (type: `array`):

Variables to retrieve. Pick from the community-specific catalog.

## `unitsFormat` (type: `string`):

Metric (SI) or English (Imperial) units.

## Actor input object example

```json
{
  "maxItems": 10,
  "points": [
    {
      "name": "Phoenix, AZ",
      "latitude": 33.4484,
      "longitude": -112.074
    },
    {
      "name": "Berlin, DE",
      "latitude": 52.52,
      "longitude": 13.405
    }
  ],
  "temporal": "daily",
  "start": "20240101",
  "end": "20240131",
  "community": "RE",
  "parameters": [
    "ALLSKY_SFC_SW_DWN",
    "T2M",
    "T2M_MAX",
    "T2M_MIN",
    "RH2M",
    "WS10M",
    "PRECTOTCORR"
  ],
  "unitsFormat": "METRIC"
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 10,
    "points": [
        {
            "name": "Phoenix, AZ",
            "latitude": 33.4484,
            "longitude": -112.074
        },
        {
            "name": "Berlin, DE",
            "latitude": 52.52,
            "longitude": 13.405
        }
    ],
    "temporal": "daily",
    "start": "20240101",
    "end": "20240131",
    "community": "RE",
    "parameters": [
        "ALLSKY_SFC_SW_DWN",
        "T2M",
        "T2M_MAX",
        "T2M_MIN",
        "RH2M",
        "WS10M",
        "PRECTOTCORR"
    ],
    "unitsFormat": "METRIC"
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/nasa-power-energy-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "maxItems": 10,
    "points": [
        {
            "name": "Phoenix, AZ",
            "latitude": 33.4484,
            "longitude": -112.074,
        },
        {
            "name": "Berlin, DE",
            "latitude": 52.52,
            "longitude": 13.405,
        },
    ],
    "temporal": "daily",
    "start": "20240101",
    "end": "20240131",
    "community": "RE",
    "parameters": [
        "ALLSKY_SFC_SW_DWN",
        "T2M",
        "T2M_MAX",
        "T2M_MIN",
        "RH2M",
        "WS10M",
        "PRECTOTCORR",
    ],
    "unitsFormat": "METRIC",
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/nasa-power-energy-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10,
  "points": [
    {
      "name": "Phoenix, AZ",
      "latitude": 33.4484,
      "longitude": -112.074
    },
    {
      "name": "Berlin, DE",
      "latitude": 52.52,
      "longitude": 13.405
    }
  ],
  "temporal": "daily",
  "start": "20240101",
  "end": "20240131",
  "community": "RE",
  "parameters": [
    "ALLSKY_SFC_SW_DWN",
    "T2M",
    "T2M_MAX",
    "T2M_MIN",
    "RH2M",
    "WS10M",
    "PRECTOTCORR"
  ],
  "unitsFormat": "METRIC"
}' |
apify call parseforge/nasa-power-energy-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=parseforge/nasa-power-energy-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "NASA POWER Solar & Weather Data Scraper",
        "description": "Export NASA POWER solar irradiance, temperature, wind, humidity, precipitation and renewable-energy parameters for any lat/lng on Earth. Daily, monthly or climatology granularity. Multi-point batch input. Ideal for solar siting, agricultural modelling, and climate analytics.",
        "version": "1.0",
        "x-build-id": "pvGwBj8wBEz0N9j7g"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~nasa-power-energy-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-nasa-power-energy-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/parseforge~nasa-power-energy-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-nasa-power-energy-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/parseforge~nasa-power-energy-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-nasa-power-energy-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    },
                    "points": {
                        "title": "Points (lat,lng pairs)",
                        "type": "array",
                        "description": "List of locations. Each item: { name?, latitude, longitude }. Latitude in [-90, 90], longitude in [-180, 180]."
                    },
                    "temporal": {
                        "title": "Temporal Granularity",
                        "enum": [
                            "daily",
                            "monthly",
                            "climatology",
                            "hourly"
                        ],
                        "type": "string",
                        "description": "Time aggregation of the records."
                    },
                    "start": {
                        "title": "Start Date (YYYYMMDD)",
                        "type": "string",
                        "description": "Start date. Format YYYYMMDD for daily/hourly, YYYY for monthly."
                    },
                    "end": {
                        "title": "End Date (YYYYMMDD)",
                        "type": "string",
                        "description": "End date. Format YYYYMMDD for daily/hourly, YYYY for monthly."
                    },
                    "community": {
                        "title": "Community",
                        "enum": [
                            "RE",
                            "SB",
                            "AG"
                        ],
                        "type": "string",
                        "description": "Parameter community: Renewable Energy, Sustainable Buildings, or Agro-climatology."
                    },
                    "parameters": {
                        "title": "Parameters",
                        "type": "array",
                        "description": "Variables to retrieve. Pick from the community-specific catalog.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "ALLSKY_SFC_SW_DWN",
                                "ALLSKY_SFC_LW_DWN",
                                "ALLSKY_SFC_SW_DIFF",
                                "ALLSKY_SFC_SW_DNI",
                                "CLRSKY_SFC_SW_DWN",
                                "T2M",
                                "T2M_MAX",
                                "T2M_MIN",
                                "T2MDEW",
                                "T2MWET",
                                "TS",
                                "RH2M",
                                "QV2M",
                                "PRECTOTCORR",
                                "WS2M",
                                "WS10M",
                                "WS50M",
                                "WD2M",
                                "WD10M",
                                "WD50M",
                                "PS",
                                "CDD18_3",
                                "HDD18_3",
                                "FROST_DAYS",
                                "ALLSKY_KT",
                                "ALLSKY_NKT"
                            ],
                            "enumTitles": [
                                "All Sky Surface Shortwave Downward",
                                "All Sky Surface Longwave Downward",
                                "All Sky Surface Shortwave Diffuse",
                                "All Sky Surface Shortwave Direct Normal",
                                "Clear Sky Surface Shortwave Downward",
                                "Temperature at 2m",
                                "Max Temp at 2m",
                                "Min Temp at 2m",
                                "Dew Point at 2m",
                                "Wet Bulb at 2m",
                                "Surface Temp",
                                "Rel Humidity at 2m",
                                "Specific Humidity at 2m",
                                "Precipitation Corrected",
                                "Wind Speed at 2m",
                                "Wind Speed at 10m",
                                "Wind Speed at 50m",
                                "Wind Dir at 2m",
                                "Wind Dir at 10m",
                                "Wind Dir at 50m",
                                "Surface Pressure",
                                "Cooling Degree Days base 18.3°C",
                                "Heating Degree Days base 18.3°C",
                                "Frost Days",
                                "All Sky Insolation Clearness",
                                "All Sky Normalized Insolation Clearness"
                            ]
                        }
                    },
                    "unitsFormat": {
                        "title": "Units Format",
                        "enum": [
                            "METRIC",
                            "IMPERIAL"
                        ],
                        "type": "string",
                        "description": "Metric (SI) or English (Imperial) units."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
