# Weather API — $0.0002 per day

> Weather API: Daily weather by place name — temperature, rain, wind; forecast and recent. $0.0002 per delivered day, nothing delivered means nothing charged.

[Home](https://quanticdata.io/)/[Collectors](https://quanticdata.io/collectors/)/*Weather API*

# Weather API

A weather API without a key at any layer: pass a city name — geocoding is handled — or exact coordinates, and each day returns as a row with min and max temperature, precipitation sum and probability, peak wind speed and a readable conditions label beside the WMO code. Forecasts reach 16 days ahead, and `past_days` prepends up to 92 days of recent history in the same call.

[Get my free API key](https://app.quanticdata.io/register) [See the request](/collectors/weather-api/#integration)

$0.0002 per delivered day · $2 free every month · Failed runs never billed

POST /v1/scraper/collectors/weather_forecast/run

```
$ curl $QD/weather_forecast/run \
    -H "Authorization: Bearer $QD_API_KEY" \
    -d '{}'
{ "status": "done", "count": 10,
  "results": [
    {
      "date": "…",
      "weather": "…",
      "weather_code": …,
      "temp_max_c": … } ],
  "cost": 0.002 }
# 10 days × $0.0002 · nothing delivered, nothing charged
```

**$0.0002 / day**10,000 days on the free $2 every month

**Semantic input**location, latitude, longitude — no URL lists

**Up to 30**days per run, pagination handled for you

**No browser**read over HTTP/TLS — cheaper and faster than rendering

On this page: [What it is](/collectors/weather-api/#what) [Output fields](/collectors/weather-api/#output) [Inputs](/collectors/weather-api/#input) [Pricing](/collectors/weather-api/#pricing) [Integration](/collectors/weather-api/#integration) [Use cases](/collectors/weather-api/#use-cases) [Versus the alternatives](/collectors/weather-api/#compare) [FAQ](/collectors/weather-api/#faq)

## What a weather API does

The source is Open-Meteo, the free weather API that made paid keys feel optional — and the origin genuinely costs nothing. What the collector adds is the geocoding step, the flat daily rows and the shared row format, so weather lands in the same pipeline, under the same single key, as every other dataset you pull here.

Historical weather is the underrated half: `past_days` reaches back up to 92 days in the same row shape as the forecast, producing one continuous daily series. That is the join that explains a metric — a sales dip, a traffic spike, delivery delays — against what the sky was doing, keyed on nothing more exotic than a date column.

Input is meaning, not a URL *location* *latitude* *longitude* *days* *past_days*

## What one day looks like

Every delivered day carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.

| Field | Type | What it holds |
| --- | --- | --- |
| `rank` | integer | 1-based position. |
| `date` | string | Day (YYYY-MM-DD, local time). |
| `weather` | string · nullable | Conditions label. |
| `weather_code` | integer · nullable | WMO code. |
| `temp_max_c` | number · nullable | Max temperature °C. |
| `temp_min_c` | number · nullable | Min temperature °C. |
| `precipitation_mm` | number · nullable | Precipitation sum, mm. |
| `precipitation_probability` | number · nullable | Max precipitation probability %. |
| `wind_max_kmh` | number · nullable | Max wind speed km/h. |
| `location` | string · nullable | Resolved place name. |
| `country` | string · nullable | Country. |
| `latitude` | number | Latitude used. |
| `longitude` | number | Longitude used. |

## Inputs

The whole request. Anything you leave out falls back to the default shown in the catalog.

| Input | Type | Required | What it does |
| --- | --- | --- | --- |
| `location` | string | no | City or place name (geocoded). |
| `latitude` | number | no | Exact latitude (skips geocoding). |
| `longitude` | number | no | Exact longitude. |
| `days` | integer | no | Days ahead (1-16). |
| `past_days` | integer | no | Recent history to prepend (0-92). |
| `max_results` | integer | no | How many days to deliver at most (1–30). You pay only for delivered days. |

Pricing

## Weather API pricing

$0.0002 per delivered day. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 10,000 days before you spend anything.

**$0.0002**per delivered day*$0.2 per 1,000 delivered days*

**10,000 days**on the free allowance*$2 every month, no card*

**Zero rows**zero charge*blocks, captchas and retries are on us*

**−30%**on volume tiers*the catalog returns your key's price*

### Pay as you go

$0/mo

- $2 free credit / month

- 60 requests / min

- List unit prices

### Starter

$19/mo

- $15 free credit / month

- 300 requests / min

- 10% off unit prices

Most popular

### Growth

$79/mo

- $50 free credit / month

- 600 requests / min

- 20% off unit prices

### Scale

$299/mo

- $250 free credit / month

- 1,200 requests / min

- 30% off unit prices

Same wallet, same key and same $2 monthly allowance as every other [Data API](https://quanticdata.io/web-data-api-for-ai/). Prices are launch pricing read live from the billing config — `GET /v1/scraper/collectors` returns the price your key actually pays.

Integration

## One POST, typed rows

Base URL `https://api.quanticdata.io/v1`, Bearer auth, the same key as every other Data API. Endpoint: `POST /v1/scraper/collectors/weather_forecast/run`.

```
curl -X POST https://api.quanticdata.io/v1/scraper/collectors/weather_forecast/run \
  -H "Authorization: Bearer $QD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

```
import requests

r = requests.post(
    "https://api.quanticdata.io/v1/scraper/collectors/weather_forecast/run",
    headers={"Authorization": f"Bearer {QD_API_KEY}"},
    json={},
    timeout=120,
)
for row in r.json()["payload"]["results"]:
    print(row)
```

```
const res = await fetch(
  "https://api.quanticdata.io/v1/scraper/collectors/weather_forecast/run",
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.QD_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({}),
  },
);
const { payload } = await res.json();
console.table(payload.results);
```

```
claude mcp add quantumproxies \
  -e QUANTUMPROXIES_API_KEY=qd_live_your_key_here \
  -- npx -y quantumproxies-mcp

# then, in the chat:
> run the weather_forecast collector with
```

## What people build with the weather API

Three shapes of work this endpoint was designed around.

### Demand modelling features

Join daily temperature and precipitation onto sales or footfall by date, and the weather becomes a feature column instead of an anecdote.

### Operational planning rows

A 16-day outlook for a site — wind, rain probability, temperature bands — lands as a table a scheduler or a dashboard reads directly.

### Recent-weather backfill

Rebuild the last weeks of daily conditions with `past_days` to test whether an anomaly in your numbers tracks an anomaly in the weather.

## Weather API versus rolling your own

The differences that actually cost time when you build this in-house.

|  | DIY scraper | This collector |
| --- | --- | --- |
| Key management | A weather account and token to babysit | None at the source; your one key covers it |
| Place input | Look up coordinates before you can ask | A place name is geocoded for you |
| History | A separate archive product and format | past_days prepends history as identical rows |

## FAQ

Questions we get about the weather API.

[Something else? Ask us →](mailto:hello@quanticdata.io)

### Is this weather API really free of a weather-specific key?

Yes — Open-Meteo is keyless at origin and the collector keeps it that way. The only credential involved is your QuanticData key, the same one that meters every other collector, so there is no second account to hold.

### Can I get historical weather as well as the forecast?

Recent history, yes: set `past_days` up to 92 and those days are prepended to the forecast in the same daily shape — enough to join weather onto a quarter's worth of business metrics. Deeper archives are out of scope for this collector.

### Is the data hourly or daily?

Daily — one row per day with temperature extremes, precipitation, wind and the WMO condition code, for up to 16 forecast days. There is no hourly breakdown, which keeps a multi-week series compact enough to join anywhere.

### Is there a free weather API?

Every account gets $2 of credit every month with no card, which is about 10,000 delivered days on this endpoint at $0.0002 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.

### How much does one run cost?

Multiply the rows you actually receive by $0.0002. A run capped at 30 days — the maximum for this collector — costs $0.006 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and `GET /v1/scraper/collectors` returns the price your key actually pays.

## Run the weather API now

$2 of free credit every month, no card. Your key returns its own prices from `GET /v1/scraper/collectors`.

[Get my free API key](https://app.quanticdata.io/register)

Related: [All 74 collectors](https://quanticdata.io/collectors/) [Google Trends API](https://quanticdata.io/collectors/google-trends-api/) [World Bank API](https://quanticdata.io/collectors/world-bank-api/) [Exchange rate API](https://quanticdata.io/collectors/exchange-rate-api/) [Documentation](https://quanticdata.io/docs/)

---

Source: https://quanticdata.io/collectors/weather-api/ · Site index for AI: https://quanticdata.io/llms.txt
