# Weather.com Scraper (`aerodynamic_tripod/weather-scraper`) Actor

Extract current weather, 48-hour hourly forecasts, 10-day forecasts, and active weather alerts for multiple locations into structured datasets.

- **URL**: https://apify.com/aerodynamic\_tripod/weather-scraper.md
- **Developed by:** [SearchShark Tools](https://apify.com/aerodynamic_tripod) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## 🌦️ Weather.com Scraper

**Weather.com Scraper** lets you extract **structured current weather, hourly forecasts, daily forecasts, and active weather alerts** for multiple locations.

Collect weather data for **travel planning, logistics, agriculture, events, local dashboards, research, monitoring, and automation** without manually checking Weather.com.

- 🌡️ **Get current conditions:** temperature, feels-like temperature, humidity, wind, pressure, visibility, dew point, and UV index
- 🕐 **Collect hourly forecasts:** retrieve up to 48 upcoming forecast hours
- 📅 **Collect daily forecasts:** retrieve up to 10 forecast days
- ⚠️ **Monitor weather alerts:** collect active alert information when Weather.com exposes it
- 📍 **Use multiple location formats:** city names, ZIP codes, coordinates, or Weather.com URLs
- 📊 **Get normalized data:** every result is stored as a clean Dataset row with a clear `recordType`
- ⚡ **Automate workflows:** export structured results to Apify Dataset, API, integrations, dashboards, or downstream applications

***

### 📦 What data does Weather.com Scraper extract?

| | |
| --- | --- |
| 📍 **Location name** | 📌 **Latitude & longitude** |
| 🌡️ **Temperature** | 🌡️ **Feels-like temperature** |
| 🌤️ **Weather condition** | 💧 **Humidity** |
| 💨 **Wind speed** | 🧭 **Wind direction** |
| 🧭 **Cardinal wind direction** | 🌡️ **Dew point** |
| 📊 **Atmospheric pressure** | 👁️ **Visibility** |
| ☀️ **UV index** | 🌧️ **Precipitation probability** |
| 🌧️ **Precipitation amount** | ⬆️ **Daily high** |
| ⬇️ **Daily low** | 🕐 **Forecast time** |
| 📅 **Forecast date** | ⚠️ **Alert headline** |
| 📍 **Affected alert area** | ⏰ **Alert expiry** |
| 📝 **Alert description** | 🛡️ **Recommended action** |
| 🏢 **Alert issuing source** | 🔗 **Weather.com source URL** |
| 🧾 **Record type** | 🕒 **Scrape timestamp** |

> **Missing fields are returned as `null` when Weather.com does not expose them reliably.** The Actor does **not invent weather or alert data**.

***

### 🚀 Features

Weather.com Scraper is designed for **weather monitoring, forecasting workflows, structured data collection, and automation**.

- **Multiple locations:** process several locations in one Actor run
- **Current weather conditions**
- **48-hour hourly forecast**
- **10-day daily forecast**
- **Active weather alerts**
- **Metric and imperial units**
- **City-name input**
- **U.S. ZIP-code input**
- **Latitude and longitude input**
- **Weather.com URL input**
- **Normalized Dataset rows**
- **Record-type separation:** current, hourly, daily, and alerts are clearly identified
- **Partial failure protection:** one failed location does not discard successful results from other locations
- **HTTP-first architecture:** normal page requests are attempted before browser rendering
- **Browser fallback:** Chromium is used when Weather.com returns client-rendered placeholder values
- **API-friendly output:** Dataset rows follow a predictable structure
- **Schedule-friendly:** suitable for repeated Apify Tasks and recurring weather collection

***

## ⬇️ Input

You can configure Weather.com Scraper directly from the **Apify Console** or send the input programmatically through the **Apify API**.

***

### 📍 Locations

Add one or more locations.

Example:

```text
Los Angeles, California
New York, NY
90012
34.0522,-118.2437
```

You can use:

```text
City name
City + state
U.S. ZIP code
Latitude,longitude
Weather.com location URL
```

#### City examples

```text
Los Angeles, California
New York, NY
Miami, Florida
Phoenix, Arizona
Austin, Texas
```

#### Coordinate example

```text
34.0522,-118.2437
```

#### ZIP-code example

```text
90012
```

**Each location is processed independently.**

If one location fails, successful locations can still remain available in the Dataset.

***

### 🌡️ Units

Choose the measurement system used for returned weather values.

```text
imperial
metric
```

#### Imperial

Typically uses values such as:

```text
Fahrenheit
miles
miles per hour
inches
```

#### Metric

Typically uses values such as:

```text
Celsius
kilometers
kilometers per hour
millimeters
```

***

### 🌦️ Weather data

Choose one or more weather record types.

Available options:

```text
current
hourly
daily
alerts
```

***

#### 🌡️ Current conditions

Returns the latest current conditions available for the location.

Possible fields include:

```text
Location
Latitude
Longitude
Observation time
Temperature
Feels like
Condition
Humidity
Wind speed
Wind direction
Pressure
Visibility
Dew point
UV index
Precipitation
```

***

#### 🕐 Hourly forecast

Returns up to:

```text
48 forecast hours
```

for each successfully processed location.

Possible hourly fields include:

```text
Forecast time
Forecast date
Time label
Temperature
Condition
Precipitation chance
Precipitation amount
Humidity
Wind speed
Wind direction
```

***

#### 📅 Daily forecast

Returns up to:

```text
10 forecast days
```

for each successfully processed location.

Possible daily fields include:

```text
Forecast date
Date label
High temperature
Low temperature
Condition
Precipitation chance
Wind speed
Wind direction
```

Additional fields may be present when Weather.com exposes them reliably.

***

#### ⚠️ Weather alerts

Checks the selected location for active weather alerts.

Possible fields include:

```text
Headline
Event
Alert type
Affected area
Start time
Expiry time
Description
Recommended action
Issuing source
Severity
Certainty
Urgency
Weather.com alert reference values
```

A location may return:

```text
0 alerts
1 alert
Multiple alerts
```

No alert record is created when no active alert is detected.

***

### 🌐 Language / locale

Set the Weather.com locale used during requests.

Default:

```text
en-US
```

Example:

```text
en-US
```

The current public location resolver is primarily optimized around the tested `en-US` workflow.

***

### 🧪 Example input

```json
{
  "locations": [
    "Los Angeles, California",
    "New York, NY"
  ],
  "units": "imperial",
  "forecastTypes": [
    "current",
    "hourly",
    "daily",
    "alerts"
  ],
  "language": "en-US"
}
```

For a faster current-weather-only run:

```json
{
  "locations": [
    "Los Angeles, California"
  ],
  "units": "imperial",
  "forecastTypes": [
    "current"
  ],
  "language": "en-US"
}
```

***

## ⬆️ Output

Results are stored in the Actor's default **Apify Dataset**.

You can access the results from:

```text
Output
Storage
Apify API
Integrations
```

Every Dataset row contains:

```text
recordType
```

This identifies what kind of weather record the row represents.

Possible values:

```text
current
hourly
daily
alert
```

***

### 📊 Example current result

```json
{
  "recordType": "current",
  "locationId": null,
  "locationName": "Los Angeles, California",
  "latitude": 34.05223,
  "longitude": -118.24368,
  "units": "imperial",
  "sourceUrl": "https://weather.com/...",
  "scrapedAt": "2026-09-11T11:13:37.736Z",
  "observationTime": "As of 4:07 AM PDT",
  "temperature": 72,
  "feelsLike": 72,
  "condition": null,
  "humidity": 85,
  "windSpeed": 0,
  "windDirection": null,
  "windDirectionCardinal": "E",
  "pressure": 29.84,
  "visibility": 6,
  "dewPoint": 67,
  "uvIndex": 0,
  "precipitation1Hour": null,
  "iconCode": null
}
```

> Optional fields may be `null` when they are not exposed reliably by Weather.com for that page or rendering session.

***

### 🧾 Normalized record types

Weather.com Scraper does **not** return one huge nested object containing every forecast.

Instead, weather observations are stored as individual Dataset rows.

For example:

```text
Current conditions
↓
1 current row
```

```text
48-hour forecast
↓
Up to 48 hourly rows
```

```text
10-day forecast
↓
Up to 10 daily rows
```

```text
Active alerts
↓
0 or more alert rows
```

This makes the output easier to use in:

```text
CSV
Excel
Databases
Dashboards
APIs
Make
Zapier
n8n
AI agents
Data pipelines
```

***

### 🌡️ Current weather records

A `current` record represents the current conditions collected for one location.

Important fields include:

```text
recordType
locationName
latitude
longitude
units
observationTime
temperature
feelsLike
condition
humidity
windSpeed
windDirection
windDirectionCardinal
pressure
visibility
dewPoint
uvIndex
sourceUrl
scrapedAt
```

***

### 🕐 Hourly records

Each `hourly` row represents one forecast hour.

For example:

```text
Location: Los Angeles, California

Hour 1
Hour 2
Hour 3
...
Hour 48
```

Possible fields include:

```text
forecastTime
forecastDate
timeLabel
temperature
condition
precipitationChance
precipitationAmount
precipitationAmountUnit
humidity
windSpeed
windDirection
windDirectionCardinal
```

The Actor intentionally limits the current hourly mode to:

```text
48 hours
```

***

### 📅 Daily records

Each `daily` row represents one forecast day.

Example:

```text
Day 1
Day 2
Day 3
...
Day 10
```

Possible fields include:

```text
forecastDate
dateLabel
high
low
condition
precipitationChance
windSpeed
windDirection
windDirectionCardinal
```

The Actor intentionally saves:

```text
10 forecast days
```

even when Weather.com may expose additional forecast entries.

***

### ⚠️ Alert records

Each `alert` row represents one active weather alert discovered for a location.

Possible fields include:

```text
headline
event
alertTypeLabel
area
startTime
endTime
description
instruction
source
severity
certainty
urgency
phenomena
significance
areaId
office
etn
```

The scraper only returns alert values that are available from Weather.com's visible pages or alert links.

> The Actor does **not infer severity, certainty, urgency, alert IDs, or timestamps** when Weather.com does not explicitly expose them.

***

### 📍 Location resolution

Weather.com Scraper supports several ways to identify a location.

#### 🏙 City names

Example:

```text
Los Angeles, California
```

The Actor resolves the city to coordinates and verifies the resulting location with Weather.com.

***

#### 🏙 City + state code

Example:

```text
New York, NY
```

A city can resolve to Weather.com's preferred locality.

For example:

```text
New York, NY
```

may resolve to a Weather.com locality such as:

```text
Manhattan, New York City, New York
```

This reflects Weather.com's location mapping.

***

#### 📮 ZIP codes

Example:

```text
90012
```

The current public resolver directly supports tested **five-digit U.S. ZIP codes**.

***

#### 📌 Coordinates

Example:

```text
34.0522,-118.2437
```

Coordinates are useful when you need a specific geographic point instead of a city-level location.

***

#### 🔗 Weather.com URLs

You can also provide a supported Weather.com location URL directly.

***

### ⚠️ Ambiguous city names

Some city names exist in many regions.

For example:

```text
Springfield
```

can refer to multiple places.

Instead of silently choosing a random match, provide additional location context:

```text
Springfield, Illinois
```

This improves location resolution accuracy.

***

### ⚡ Performance

The scraper uses an **HTTP-first architecture**.

The Actor first requests the normal Weather.com page.

When Weather.com returns fully usable weather values, the scraper can parse them directly.

When the page contains client-rendered placeholders such as:

```text
--
```

the Actor can launch Chromium and wait for the normal public page to render.

This approach reduces unnecessary browser work while still supporting pages that require JavaScript.

***

### 🛡 Reliability

Weather.com pages are processed **one location at a time** in the current version.

If you run:

```text
Los Angeles, California
New York, NY
Miami, Florida
```

and one location fails, successful results from the other locations are still preserved.

Temporary page or browser behavior can vary between locations, so the Actor is designed to keep already collected results instead of discarding the complete run.

***

### 🛡 Access handling

Weather.com Scraper accesses normal public Weather.com pages.

If the page behaves like an access or verification challenge, the Actor does **not attempt to bypass the challenge**.

This is intentionally different from stealth or challenge-evasion scraping.

***

## 🔌 API & integrations

Weather.com Scraper can be used programmatically through the **Apify API**.

You can connect results to workflows such as:

- Google Sheets
- Make
- Zapier
- n8n
- Internal APIs
- Databases
- Data warehouses
- Logistics systems
- Travel applications
- Agriculture systems
- Weather dashboards
- Event-planning systems
- AI agents
- MCP workflows

Every Actor run stores **structured records in the default Dataset**, making the output easy to consume from another application.

***

## 💡 Example use cases

### ✈️ Travel planning

Monitor weather for destinations such as:

```text
Los Angeles, California
New York, NY
Miami, Florida
```

Collect:

```text
Current conditions
Upcoming hourly temperatures
Rain probability
Daily high and low
Active alerts
```

Use the data in travel dashboards or automated trip-planning systems.

***

### 🚚 Logistics and delivery operations

Monitor weather around:

```text
Warehouses
Delivery cities
Transport hubs
Shipping destinations
```

Weather information can help operational systems identify:

```text
Rain risk
High temperatures
Low visibility
Strong winds
Active weather alerts
```

***

### 🌾 Agriculture

Collect scheduled weather observations for farming locations.

Useful fields can include:

```text
Temperature
Humidity
Precipitation chance
Wind
Daily highs
Daily lows
Weather alerts
```

Store results over repeated Actor runs for downstream analysis.

***

### 🎪 Event planning

Check forecast conditions around an event location.

For example:

```text
Current conditions
Next 48 hours
10-day forecast
Rain probability
Severe-weather alerts
```

This can be integrated into event dashboards or automated notification systems.

***

### 📊 Weather dashboards

Run the Actor on a schedule and send Dataset results into:

```text
Internal dashboards
Business intelligence tools
Databases
Spreadsheets
APIs
```

The normalized Dataset format avoids having to flatten a large nested forecast object.

***

### ⚠️ Severe weather monitoring

Enable:

```text
alerts
```

for locations you want to check.

When Weather.com displays active alerts, the Actor can collect information such as:

```text
Headline
Expiry
Affected area
Description
Recommended action
Issuing authority
```

***

### 🔬 Research and analysis

Collect weather records across several locations for downstream analysis.

Possible workflows include:

```text
Regional comparisons
Weather trend datasets
Operational research
Insurance research
Market research
Environmental analysis
```

***

## ⚠️ Current limitations

The current version focuses on **current conditions, 48-hour forecasts, 10-day forecasts, and active alerts**.

It **does not currently provide**:

```text
Historical weather archives
Radar images
Weather maps
Pollen data
Air-quality history
Long-range premium forecasts
Weather-change comparison between Actor runs
Automatic alert notifications
Worldwide postal-code resolution for every postal format
```

These are intentionally separate from the current V1 workflow.

***

### 🌐 Public page variability

Weather.com is a dynamic website.

Different pages can:

```text
Render at different speeds
Expose different optional fields
Temporarily return placeholder values
Require normal client-side rendering
Change HTML structure
```

Because of this, optional values may sometimes be:

```text
null
```

even when other weather fields for the same record are available.

***

### 🌤 Why can condition be null?

Weather.com does not always expose the visible condition text in the same DOM structure as the other current-condition metrics.

If the scraper can confidently extract:

```text
Temperature
Humidity
Wind
Pressure
Visibility
Dew point
UV index
```

but cannot confidently identify the condition text, it returns:

```text
condition: null
```

instead of guessing.

***

## ❓ FAQ

### How does Weather.com Scraper work?

The Actor takes each supplied location and resolves it to a usable Weather.com page.

It then:

```text
Resolves the location
Requests Weather.com
Checks for usable weather values
Uses browser rendering when necessary
Parses weather information
Normalizes the fields
Stores Dataset rows
Continues to the next location
```

***

### How many locations can I scrape?

You can supply multiple locations in one run.

Actual practical run size depends on:

```text
Selected forecast types
Browser rendering requirements
Weather.com response speed
Actor memory
Actor timeout
```

Hourly, daily, and alert modes naturally require more processing than a current-only run.

***

### How many hourly records are returned?

The current V1 target is:

```text
48 hourly forecast rows per successful location
```

***

### How many daily records are returned?

The current V1 target is:

```text
10 daily forecast rows per successful location
```

***

### Does every location have weather alerts?

**No.**

Alerts are returned only when Weather.com exposes an active alert for that location.

A normal run may therefore contain:

```text
Current rows
Hourly rows
Daily rows
No alert rows
```

This does not mean the Actor failed.

***

### Why are some fields null?

**Weather.com does not expose every field consistently for every location or page.**

The Actor deliberately returns:

```text
null
```

when a value cannot be determined confidently.

It does not fabricate missing weather data.

***

### Can I use city names?

**Yes.**

For example:

```text
Los Angeles, California
New York, NY
Phoenix, Arizona
```

For ambiguous city names, add the state, province, or country.

***

### Can I use ZIP codes?

**Yes, for the tested U.S. ZIP-code workflow.**

Example:

```text
90012
10001
```

***

### Can I use coordinates?

**Yes.**

Example:

```text
34.0522,-118.2437
```

***

### Can I use multiple locations in one run?

**Yes.**

Example:

```text
Los Angeles, California
New York, NY
Miami, Florida
```

Each location is processed independently.

***

### Can I choose Fahrenheit or Celsius?

**Yes.**

Choose:

```text
imperial
```

or:

```text
metric
```

***

### Can I scrape current weather only?

**Yes.**

Select:

```text
current
```

This is the lightest normal workflow.

***

### Can I request several weather modes at once?

**Yes.**

For example:

```json
{
  "forecastTypes": [
    "current",
    "hourly",
    "daily",
    "alerts"
  ]
}
```

This produces different Dataset row types for the same location.

***

### Can I use Weather.com Scraper through an API?

**Yes.**

Every Apify Actor can be started through the **Apify API**, and its Dataset results can be retrieved programmatically.

This makes the Actor suitable for automated weather-data pipelines.

***

### Can I export the results?

**Yes.**

Apify Dataset results can be exported in supported formats such as:

```text
JSON
CSV
Excel
XML
HTML
```

***

### Is a browser always required?

**No.**

The Actor uses an HTTP-first approach.

Browser rendering is used when Weather.com's public page returns placeholder weather values that require JavaScript rendering.

***

### Does the Actor bypass Weather.com security challenges?

**No.**

If a genuine access or verification challenge is detected, the Actor does not attempt to bypass it.

***

## 🧭 Recommended workflow

For routine weather collection, choose only the forecast types you actually need.

For lightweight current monitoring:

```text
current
```

For short-term planning:

```text
current
hourly
```

For multi-day planning:

```text
current
daily
```

For weather-sensitive operations:

```text
current
hourly
daily
alerts
```

Avoid selecting every mode for large location lists unless the additional data is actually needed, because browser-rendered weather pages require more processing time.

***

## 🕒 Scheduling

Weather.com Scraper works well with **Apify Tasks and schedules**.

Example workflows:

```text
Current weather every hour
Forecast collection every 6 hours
Daily forecast snapshot every morning
Weather alert checks throughout the day
```

Save your Actor input as an Apify Task and configure the schedule appropriate for your application.

***

## 📍 Location data

Named-city resolution uses the locally installed `cities.json` dataset to match human-readable city inputs to geographic coordinates.

Those coordinates are then used with Weather.com to resolve the actual weather location.

The location dataset is used only for location matching and does not generate or estimate weather conditions.

***

## ⚖️ Responsible use

Weather.com Scraper is an **independent tool** and is not affiliated with, endorsed by, or sponsored by Weather.com, The Weather Channel, or The Weather Company.

Users are responsible for ensuring that their use of the Actor and resulting data complies with:

```text
Applicable laws
Website terms
Data licenses
Contractual requirements
Commercial-use requirements
```

Review the applicable Weather.com / The Weather Company terms and obtain any required permissions or licenses for your intended use.

***

## 💬 Feedback & support

Found a bug or have a feature request?

Use the Actor's **Issues** tab on Apify.

When reporting a weather extraction problem, include:

```text
Location input
Selected forecast types
Units
Language
Actor run ID
Relevant run log
```

This makes the issue much easier to reproduce.

Useful future additions may include:

```text
Historical weather
Air quality
Pollen
Weather-change tracking
Alert-change tracking
Additional postal-code formats
More forecast detail fields
Improved bulk processing
Additional structured Dataset views
```

***

### 🚀 Weather data without the manual checking

Enter your locations, choose the weather data you need, run the Actor, and receive **structured Weather.com data** ready for **dashboards, research, APIs, scheduling, integrations, and automation**.

# Actor input Schema

## `locations` (type: `array`):

Enter one or more locations. Supported inputs include city names such as Los Angeles, California; U.S. ZIP codes such as 90012; coordinates such as 34.0522,-118.2437; and Weather.com location URLs. Each location is processed independently.

## `units` (type: `string`):

Choose the temperature and measurement system used in the returned weather data.

## `forecastTypes` (type: `array`):

Choose which records to return. Hourly returns the next 48 forecast hours, daily returns 10 forecast days, and alerts returns active alerts when available.

## `language` (type: `string`):

Weather.com locale used for requests. Use a locale such as en-US. The default is English (United States).

## Actor input object example

```json
{
  "locations": [
    "Los Angeles, California"
  ],
  "units": "imperial",
  "forecastTypes": [
    "current"
  ],
  "language": "en-US"
}
```

# Actor output Schema

## `results` (type: `string`):

Current, hourly, daily, and alert records produced by this run.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("aerodynamic_tripod/weather-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("aerodynamic_tripod/weather-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{}' |
apify call aerodynamic_tripod/weather-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,aerodynamic_tripod/weather-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/qkjwld7wagkEe2D5Q/builds/uUTHIxfqDCLcOomni/openapi.json
