openapi: 3.1.0 info: title: WeatherAPI.com Alerts Marine API description: 'WeatherAPI.com provides real-time, forecast, historical, marine, future, astronomy, air quality, pollen, sports, IP lookup, timezone, and geolocation data via a JSON/XML REST API. Trusted by 850,000+ developers worldwide. Average response time ~200ms. ## Authentication All endpoints require an API key passed as the `key` query parameter. ## Base URL `https://api.weatherapi.com/v1` ## Location Query (`q` parameter) Accepts: city name, lat/lon decimal, US zip, UK postcode, Canada postal code, METAR code (`metar:EGLL`), IATA airport code (`iata:DXB`), IP lookup (`auto:ip`), IPv4/IPv6 address, or location ID (`id:2801268`). ## Plans - **Free**: 100K calls/month, 3-day forecast, 1-day history - **Starter**: $7/mo — 3M calls, 7-day forecast, 7-day history - **Pro+**: $25/mo — 5M calls, 300-day future, 365-day history - **Business**: $65/mo — 10M calls, evapotranspiration - **Enterprise**: Custom — 15-min interval, pollen history, wind@100m, SLA' version: 1.0.2 contact: name: WeatherAPI.com Support url: https://www.weatherapi.com/contact.aspx license: name: Commercial / Non-Commercial url: https://www.weatherapi.com/terms.aspx x-logo: url: https://cdn.weatherapi.com/v4/images/weatherapi_logo.png x-last-validated: '2026-05-28' x-generated-from: provider-openapi servers: - url: https://api.weatherapi.com/v1 description: Production (HTTPS) - url: http://api.weatherapi.com/v1 description: Production (HTTP) security: - ApiKeyAuth: [] tags: - name: Marine description: Marine and sailing weather paths: /marine.json: get: tags: - Marine summary: WeatherAPI Marine Weather description: Returns marine and sailing weather forecast (up to 7 days depending on plan) including tide data (Pro+ and above), wave height, swell, and water temperature. operationId: getMarine parameters: - $ref: '#/components/parameters/key' - $ref: '#/components/parameters/q' - name: days in: query required: true description: Number of forecast days (1–7 depending on plan). schema: type: integer minimum: 1 maximum: 7 example: 1 - $ref: '#/components/parameters/dt' - $ref: '#/components/parameters/hour' - name: tides in: query required: false description: Enable/disable tide data (Pro+ and above). schema: type: string enum: - 'yes' - 'no' example: 'yes' responses: '200': description: Marine weather data content: application/json: schema: $ref: '#/components/schemas/MarineWeatherResponse' examples: GetMarine200Example: summary: Default getMarine 200 response x-microcks-default: true value: location: name: London region: City of London, Greater London country: United Kingdom lat: 51.5074 lon: -0.1278 tz_id: Europe/London localtime_epoch: 1748441400 localtime: 2026-05-28 15:30 forecast: forecastday: - date: '2026-05-28' date_epoch: 1748441400 tides: [] hour: [] '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: parameters: hour: name: hour in: query required: false description: Restrict output to a specific hour (0–23) in 24-hour format. schema: type: integer minimum: 0 maximum: 23 q: name: q in: query required: true description: 'Location query. Accepts: city name, lat/lon, US zip, UK postcode, Canada postal code, METAR code (metar:EGLL), IATA (iata:DXB), auto:ip, IPv4/IPv6, or location ID (id:2801268).' schema: type: string example: London key: name: key in: query required: true description: Your WeatherAPI.com API key. schema: type: string example: YOUR_API_KEY dt: name: dt in: query required: false description: Restrict date output in yyyy-MM-dd format. schema: type: string format: date schemas: ForecastDay: type: object properties: maxtemp_c: type: number example: 18.5 maxtemp_f: type: number example: 65.3 mintemp_c: type: number example: 18.5 mintemp_f: type: number example: 65.3 avgtemp_c: type: number example: 18.5 avgtemp_f: type: number example: 65.3 maxwind_mph: type: number example: 12.4 maxwind_kph: type: number example: 12.4 totalprecip_mm: type: number example: 0.5 totalprecip_in: type: number example: 0.5 totalsnow_cm: type: number example: 1.0 avgvis_km: type: number example: 10.0 avgvis_miles: type: number example: 10.0 avghumidity: type: integer example: 65 daily_will_it_rain: type: integer example: 1 daily_chance_of_rain: type: integer example: 1 daily_will_it_snow: type: integer example: 1 daily_chance_of_snow: type: integer example: 1 condition: $ref: '#/components/schemas/Condition' uv: type: number example: 4.0 air_quality: $ref: '#/components/schemas/AirQuality' HourForecast: type: object properties: time_epoch: type: integer example: 1748441400 time: type: string example: sample value temp_c: type: number example: 18.5 temp_f: type: number example: 65.3 is_day: type: integer example: 1 condition: $ref: '#/components/schemas/Condition' wind_mph: type: number example: 12.4 wind_kph: type: number example: 12.4 wind_degree: type: integer example: 1 wind_dir: type: string example: WSW pressure_mb: type: number example: 1013.0 pressure_in: type: number example: 1013.0 precip_mm: type: number example: 0.5 precip_in: type: number example: 0.5 snow_cm: type: number example: 1.0 humidity: type: integer example: 65 cloud: type: integer example: 40 feelslike_c: type: number example: 17.8 feelslike_f: type: number example: 17.8 windchill_c: type: number example: 12.4 windchill_f: type: number example: 12.4 heatindex_c: type: number example: 1.0 heatindex_f: type: number example: 1.0 dewpoint_c: type: number example: 1.0 dewpoint_f: type: number example: 1.0 will_it_rain: type: integer example: 1 chance_of_rain: type: integer example: 1 will_it_snow: type: integer example: 1 chance_of_snow: type: integer example: 1 vis_km: type: number example: 10.0 vis_miles: type: number example: 10.0 gust_mph: type: number example: 22.1 gust_kph: type: number example: 22.1 uv: type: number example: 4.0 short_rad: type: number example: 1.0 diff_rad: type: number example: 1.0 et0: type: number description: Evapotranspiration (Business+) example: 1.0 air_quality: $ref: '#/components/schemas/AirQuality' pollen: $ref: '#/components/schemas/Pollen' AstroElement: type: object properties: sunrise: type: string example: 05:30 AM sunset: type: string example: 08:45 PM moonrise: type: string example: 10:15 PM moonset: type: string example: 06:42 AM moon_phase: type: string example: Waxing Crescent moon_illumination: type: number example: 35.0 is_moon_up: type: integer example: 1 is_sun_up: type: integer example: 1 ErrorResponse: type: object properties: error: type: object properties: code: type: integer description: WeatherAPI error code message: type: string example: error: code: 1006 message: No location found matching parameter 'q' MarineWeatherResponse: type: object properties: location: $ref: '#/components/schemas/Location' forecast: type: object properties: forecastday: type: array items: $ref: '#/components/schemas/MarineForecastDay' AirQuality: type: object description: Air quality data. Returned when aqi=yes. properties: co: type: number description: Carbon monoxide µg/m³ example: 1.0 o3: type: number description: Ozone µg/m³ example: 1.0 no2: type: number description: Nitrogen dioxide µg/m³ example: 1.0 so2: type: number description: Sulphur dioxide µg/m³ example: 1.0 pm2_5: type: number description: PM2.5 µg/m³ example: 1.0 pm10: type: number description: PM10 µg/m³ example: 1.0 us-epa-index: type: integer description: US EPA index 1–6 (1=Good, 6=Hazardous) example: 1 gb-defra-index: type: integer description: UK DEFRA index 1–10 example: 1 MarineHour: type: object allOf: - $ref: '#/components/schemas/HourForecast' properties: sig_ht_mt: type: number description: Significant wave height in metres example: 1.0 swell_ht_mt: type: number example: 0.8 swell_ht_ft: type: number example: 0.8 swell_dir: type: number example: 0.8 swell_dir_16_point: type: string example: sample value swell_period_secs: type: number example: 0.8 water_temp_c: type: number description: Water temp °C (Pro+ and above) example: 18.5 water_temp_f: type: number example: 65.3 Condition: type: object properties: text: type: string description: Weather condition description example: Partly Cloudy icon: type: string description: URL to condition icon example: //cdn.weatherapi.com/weather/64x64/day/116.png code: type: integer description: Condition code (see conditions.json) example: 1003 Pollen: type: object description: Pollen data in grains/m³. Returned when pollen=yes (Pro+ and above). properties: Hazel: type: number example: 1.0 Alder: type: number example: 1.0 Birch: type: number example: 1.0 Oak: type: number example: 1.0 Grass: type: number example: 1.0 Mugwort: type: number example: 1.0 Ragweed: type: number example: 1.0 Tide: type: object properties: tide_time: type: string example: 2026-05-28 04:30 tide_height_mt: type: number example: 1.0 tide_type: type: string enum: - High - Low example: High MarineForecastDay: type: object properties: date: type: string format: date example: '2026-05-28' date_epoch: type: integer example: 1748441400 day: $ref: '#/components/schemas/ForecastDay' astro: $ref: '#/components/schemas/AstroElement' tides: type: array items: type: object properties: tide: type: array items: $ref: '#/components/schemas/Tide' hour: type: array items: $ref: '#/components/schemas/MarineHour' Location: type: object description: Location metadata returned with every weather response. properties: name: type: string description: Location name example: London region: type: string description: Region or state example: City of London, Greater London country: type: string description: Country name example: United Kingdom lat: type: number format: float description: Latitude example: 51.5074 lon: type: number format: float description: Longitude example: -0.1278 tz_id: type: string description: IANA timezone ID, e.g. Europe/London example: Europe/London localtime_epoch: type: integer description: Local time as Unix epoch example: 1748441400 localtime: type: string description: Local date and time string example: 2026-05-28 15:30 responses: Forbidden: description: Forbidden — API key quota exceeded, disabled, or plan does not include this resource. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Unauthorized: description: Unauthorized — API key missing or invalid. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' BadRequest: description: Bad request — invalid parameter or location not found. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' securitySchemes: ApiKeyAuth: type: apiKey in: query name: key description: API key obtained from https://www.weatherapi.com/my/. Pass as `?key=YOUR_API_KEY` query parameter. externalDocs: description: Official WeatherAPI.com Documentation url: https://www.weatherapi.com/docs/