---
title: "Get hourly forecast"
method: GET
path: "/api/v1/weather/forecast/hourly"
---

# Get hourly forecast

`GET /api/v1/weather/forecast/hourly`

## Request

- Base URL: `https://api.virga.dev`
- URL: `https://api.virga.dev/api/v1/weather/forecast/hourly`
- Auth: API key in header `X-API-Key`

Returns 3-hour interval forecast data.

## Query parameters

- `lat` number, required
- `lon` number, required
- `hours` integer

## Response `200`

Hourly forecast data

- ForecastResponse
  - `data` NormalizedWeather[]
    - `temperature` Temperature
      - `current` number
      - `feelsLike` number
      - `min` number
      - `max` number
      - `unit` 'celsius'
    - `humidity` number
    - `pressure` number
    - `wind` Wind
      - `speed` number
      - `direction` number
      - `gust` number, nullable
      - `unit` 'm/s'
    - `precipitation` Precipitation
      - `probability` number, nullable
      - `amount` number
      - `unit` 'mm'
    - `conditions` Conditions
      - `code` integer
      - `description` string
      - `icon` string
    - `visibility` number
    - `uv` number, nullable
    - `clouds` number
  - `location` Location
    - `lat` number
    - `lon` number
    - `name` string, nullable
  - `meta` Meta
    - `source` string
    - `upstreamTimestamp` string, date-time
    - `cacheTTL` integer: Cache TTL in seconds
    - `cached` boolean
    - `confidence` number
    - `creditsCost` integer
    - `creditsRemaining` integer
    - `environment` 'stage' | 'production'
    - `rateLimitRemaining` integer
    - `rateLimitReset` integer: Unix timestamp

## Other responses

- `400`: Invalid request parameters
- `401`: Missing or invalid API key
- `402`: Insufficient credits
- `429`: Rate limit exceeded
- `500`: Internal server error

---

[API](https://skmtc.dev/virga/apis/virga-api.md) · [All operations](https://skmtc.dev/virga/apis/virga-api/llms.txt) · [OpenAPI document](https://skmtc.dev/virga/apis/virga-api/revisions/5f5b639b1da3?raw)
