ParseForge Scrapers

AEMET Spain Weather Stations Scraper

parseforge/aemet-spain-weather-scraper

AutomationIntegrationsTravel

Collects current weather observations from AEMET stations across Spain. Returns temperature, humidity, wind, pressure, and sky conditions as flat rows. Target one station by code or fetch all stations in one run.

Run this scraper See the API call
Total users
1
Monthly active
0
Total runs
86
Bookmarked
0
Rating
Not rated yet
Last modified
9 days ago

Overview

ParseForge

AEMET Spain Weather Stations Scraper

Scrape real-time weather observations from every AEMET station across Spain, or target a single station by code. Each record returns temperature, humidity, wind, pressure, and sky conditions in a flat row. Export to CSV, JSON, Excel, or XML.

AEMET publishes current weather readings for thousands of stations, but browsing the map or the table page makes it hard to pull the data you need into a spreadsheet or database. This Actor reads the public observation feed directly, so you can collect the latest conditions from one station or every station in Spain in a single run. No API key, no registration, no rate-limit guesswork.

Who uses it What they scrape AEMET for
Data journalists Pull live temperatures and rainfall across Spain for a weather story or interactive map.
Researchers and climatologists Build a time series of observations by scheduling regular runs for selected stations.
Insurance analysts Monitor wind gusts and precipitation near insured assets in real time.
Travel and outdoor event operators Check current sky conditions and temperature at specific locations before committing resources.

What it does

This Actor collects current weather observations from AEMET stations and returns each station reading as one flat row.

  • 🌍 All stations mode: leave the Station ID empty and the Actor fetches the latest observation from every AEMET station in one go.
  • 📍 Single station mode: pass one AEMET station code and the Actor returns only that station's current reading.
  • 📏 Volume control: set a maximum number of records per run, from a single reading up to one million.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with AEMET data

🌡️ Monitor heatwave conditions across Spain.

A data journalist runs the Actor every hour with no station ID, filters for temperatures above 40 °C, and publishes an auto-updating map of extreme heat.

💨 Track wind gusts at a single coastal station.

An event operator passes the station code for a regatta venue, collects wind speed and gust data, and decides whether to postpone the race.

🌧️ Build a rainfall archive for agricultural research.

A researcher schedules daily runs for a set of inland station codes and appends precipitation readings to a long-term dataset.

📊 Feed a dashboard with live Spanish weather.

A developer calls the Actor via API, pulls all station observations, and pipes temperature, humidity, and pressure into a real-time operations dashboard.

Why choose this scraper

What you get
One flat schema Every station observation lands in the same columns, ready for analysis.
No API key needed Reads the same public feed a browser sees, no registration required.
Bulk or pinpoint Grab all of Spain at once or zoom into one weather station.

How it compares

No other Store actor targets AEMET the same way, so the honest comparison is with the alternatives teams actually weigh.

AEMET Spain Weather Stations Scraper Build it in-house By hand
Setup Run it now, zero config Days of engineering None, but hours per pull
When AEMET changes Maintained for you You fix it You re-learn the page
Proxies, retries, anti-bot Built in Your problem Browser only
Output Fixed JSON schema, CSV/Excel export Whatever you build Copy-paste
Cost Pay per result Engineering time Analyst hours

Configure the run

Drive the Actor with an optional AEMET station code and a maximum record count. When you leave the station ID empty, the Actor collects the latest observation from every station and stops when it hits your record limit. The Input tab lists every parameter.

A first run with the defaults:

{
 "maxItems": 10
}

A larger pull:

{
 "maxItems": 200
}

Pricing

Pay-per-result: $0.0085 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $0.85
1,000 results $8.50
10,000 results $85.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the AEMET Spain Weather Stations Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to AEMET through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/aemet-spain-weather-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

I left the Station ID empty but only got a few records.

Check your maximum records setting. The Actor stops when it hits that number. Raise it to collect more stations, up to one million.

I entered a station code but got no results.

Verify the station code by running the Actor once without a Station ID and searching the output for the station name. Codes are case-sensitive.

The temperature looks wrong for my location.

AEMET reports temperature in degrees Celsius. Confirm you are reading the correct unit, and check that the station code matches your intended location.

Some fields are empty in my dataset.

Not every station reports every variable. Coastal stations may omit snow data, and some inland stations may not report sea-level pressure. Empty cells mean the variable was not reported.

The run timed out.

Fetching all stations can take a moment. Increase the Actor's timeout in the run settings, or reduce the maximum records to fetch a smaller batch.

FAQ

Question Answer
Do I need an AEMET API key? No. This Actor reads the public observation feed that AEMET serves to web browsers, so no API key or registration is required.
How do I find a station code? Run the Actor once with the Station ID field empty. The output will include the station code for every station, and you can pick the one you need for future runs.
What weather variables does the Actor return? Each row includes temperature, humidity, wind speed and direction, atmospheric pressure, sky condition, and precipitation when available. The exact fields are listed in the dataset preview after a run.
Can I get historical data? This Actor collects the latest observation available at the time of the run. To build a history, schedule repeated runs and store the results over time.
How often does AEMET update the observations? Most stations update at least once per hour, and many update more frequently. The Actor returns whatever the current reading is at the moment it runs.
Does this cover the Canary Islands and Balearic Islands? Yes. AEMET stations in the Canary Islands, Balearic Islands, Ceuta, and Melilla are all included when you fetch all stations.
What output formats are supported? You can export the dataset to CSV, JSON, Excel, or XML from the Apify platform, or access it programmatically via the API.
Can I run this on a schedule? Yes. Apify schedules let you run the Actor every hour, every day, or on any cron expression you need.
Is there a limit on how many stations I can fetch? You control the volume with the maximum records setting. Set it high enough to cover all stations, or cap it to a smaller sample.
What happens if a station is offline? If a station has not reported a recent observation, it may be absent from the feed. The Actor returns whatever AEMET publishes at that moment.

Related actors

Browse the full ParseForge collection for more scrapers.

🆘 Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Agencia Estatal de Meteorología. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
stationId string Optional AEMET station code. Leave empty to fetch all stations (latest observation). not set
maxItems integer How many weather records to collect per run. 10

Pricing

from $7.50 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.0075 to $0.0085

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST · run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~aemet-spain-weather-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run AEMET Spain Weather Stations Scraper on Apify All scrapers