# minuteTemp API

REST and WebSocket APIs for live settlement-station temperatures, forecasts, Kalshi Weather Index minutes and prediction-market metadata, built for trading bots.

## Base URL and authentication

REST endpoints live under `https://api.minutetemp.com/api/v1/`. Every request needs an API key from a Starter or Pro plan, sent as an `X-API-Key` header or as `Authorization: Bearer <key>`. Create keys on your profile page after signing up.

```
curl -H "X-API-Key: $MINUTETEMP_API_KEY" https://api.minutetemp.com/api/v1/stations
```

## Plans and rate limits

-   **Starter** ($29.99/mo): 15 req/min sustained (about 21,600 requests a day), 30 request burst, WebSocket subscriptions for 6 market + 30 neighbour stations, 7 days of history.
-   **Pro** ($89.99/mo): 100 req/min sustained (about 144,000 requests a day), 200 request burst, WebSocket subscriptions for 60 market + 300 neighbour stations, 30 days of history.

See [pricing](https://minutetemp.com/pricing) for every plan. `GET /api/v1/limits` returns your key's effective limits.

## REST endpoints

### Today

-   `GET /api/v1/today` — Today's consensus and observed data

### Cities

-   `GET /api/v1/cities` — List all cities
-   `GET /api/v1/cities/{slug}` — Get city by slug

### Stations

-   `GET /api/v1/stations` — List all stations
-   `GET /api/v1/stations/{station_id}` — Get station details

### Observations

-   `GET /api/v1/stations/{station_id}/observations/latest` — Get latest observation
-   `GET /api/v1/stations/{station_id}/observations` — Get historical observations

### Reports

-   `GET /api/v1/stations/{station_id}/reports/latest` — Get latest reports by type
-   `GET /api/v1/stations/{station_id}/reports` — Get station reports
-   `GET /api/v1/stations/{station_id}/reports/history` — List historical station reports

### Weather Events

-   `GET /api/v1/stations/{station_id}/weather-events` — Get station weather events

### Forecasts

-   `GET /api/v1/forecasts/models` — List forecast models
-   `GET /api/v1/stations/{station_id}/forecast` — Get latest forecast
-   `GET /api/v1/stations/{station_id}/oracle-scores` — Get oracle forecast scores
-   `GET /api/v1/stations/{station_id}/oracle-score-days` — Get raw daily oracle score components
-   `GET /api/v1/stations/{station_id}/forecast/runs` — List forecast runs
-   `GET /api/v1/stations/{station_id}/forecast/runs/{run_id}` — Get forecast run details
-   `GET /api/v1/data/access` — Get access to forecast data files

### Markets

-   `GET /api/v1/markets` — List prediction markets
-   `GET /api/v1/markets/{market_id}` — Get market details
-   `GET /api/v1/markets/{market_id}/history` — Get market snapshot history

### Hourly Indexes

-   `GET /api/v1/hourly-indexes` — List hourly index cities
-   `GET /api/v1/hourly-indexes/{city}` — Get an hourly index city
-   `GET /api/v1/hourly-indexes/{city}/minutes` — Get hourly index minutes
-   `GET /api/v1/hourly-indexes/{city}/settlements` — Get hourly index settlements
-   `GET /api/v1/hourly-indexes/{city}/calibrations` — Get hourly index calibrations
-   `GET /api/v1/hourly-indexes/{city}/forecast` — Get the hourly index forecast
-   `GET /api/v1/hourly-indexes/{city}/forecast/history` — Get the stitched hourly index forecast history
-   `GET /api/v1/hourly-indexes/{city}/match-rate` — Get the settlement match rate
-   `GET /api/v1/hourly-indexes/{city}/forecast-accuracy` — Get the index forecast accuracy

### Limits

-   `GET /api/v1/limits` — Get effective limits for current authenticated user

### WebSocket

-   `POST /api/v1/ws-ticket` — Get a WebSocket ticket

## WebSocket

Get a 90-second ticket with `POST /api/v1/ws-ticket`, connect with the WebSocket subprotocols `bearer` and the ticket, then send `subscribe` messages for stations, cities and hourly indexes. Observations, forecast updates, station reports, weather events and market updates arrive as they happen.

-   `wss://api.minutetemp.com/ws/api/1m` — 1-minute cadence unified channel (Starter/Pro/Clanker plans).
-   `wss://api.minutetemp.com/ws/api/5m` — Legacy compatibility unified channel (Starter/Pro/Clanker plans).

Message shapes and the subscribe protocol are in the [WebSocket docs](https://minutetemp.com/docs/ws).

## Machine-readable specs

-   OpenAPI 3.1 (REST): [https://api.minutetemp.com/v1/openapi.json](https://api.minutetemp.com/v1/openapi.json) (JSON) and [https://api.minutetemp.com/v1/openapi.yaml](https://api.minutetemp.com/v1/openapi.yaml) (YAML)
-   AsyncAPI 3.0 (WebSocket): [https://api.minutetemp.com/v1/asyncapi.yaml](https://api.minutetemp.com/v1/asyncapi.yaml)
-   Site summary for AI assistants: [/llms.txt](https://minutetemp.com/llms.txt) and [/llms-full.txt](https://minutetemp.com/llms-full.txt)

The [interactive API reference](https://minutetemp.com/docs/api) renders the OpenAPI spec with request and response examples.

[Interactive API reference](https://minutetemp.com/docs/api)

[Back to Docs](https://minutetemp.com/docs)
