1gateway Weather API

The Weather API from 1gateway — 2 operation(s) for weather.

Operations 2

GET /v1/weather/forecast Korea short-term weather forecast (KMA) by latitude/longitude #
GET /v1/weather/global Worldwide weather forecast: current, hourly (72 h) and 10-day daily for any… #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/1gateway-dev:1gateway-dev-weather-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

1gateway-dev-weather-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: 1gateway Weather API
  version: 0.1.1
  description: '1gateway lets AI agents buy the data and APIs they need, one call at a time: no signup, no API key, paid per request with USDC on Base or Solana via x402. Coverage: company and compliance checks (sanctions, KYB, SEC filings, Korean companies), Korean real estate, trade and macro data, onchain and market data, and agent utilities such as document-to-Markdown. Every response names its source. Failed calls are never charged.'
  x-guidance: 'Use this API when an agent needs data as English JSON with pay-per-call access and no signup. Common tasks: Korea apartment sale transactions and district price summaries, Korean public holidays, Korea company KYB (company resolve, profile, NTS business status, DART filings, supplier check), Korean HWP/HWPX to Markdown, web page to Markdown (web read), and document extract (PDF, DOCX, HWP/HWPX or web page to structured JSON). Current coverage is South Korea: apartment sale prices (MOLIT), exports/imports and 10-day export flash (Korea Customs), Bank of Korea statistics (ECOS), weather forecast by lat/lon (KMA), holidays (KASI); more APIs and countries are coming. Base onchain reads: token risk, wallet balances, token info, transaction status. Also: document → Markdown conversion for web pages, PDF, DOCX and Korean HWP/HWPX (price by detected type, decided before payment). Every /v1 endpoint is paid: call it, receive HTTP 402 with PAYMENT-REQUIRED, pay with an x402 client (USDC on Base or Solana, same price) and retry. No charge on failure: settlement happens only on 2xx; 4xx/5xx are never charged. Agent guide: https://1gateway.dev/agents.md. Status: https://1gateway.dev/status. MCP (Streamable HTTP) is available at https://1gateway.dev/mcp: initialize and tools/list are free, tools/call is paid via x402 _meta.'
  contact:
    email: contact@1gateway.dev
servers:
- url: https://1gateway.dev
tags:
- name: Weather
paths:
  /v1/weather/forecast:
    get:
      operationId: kr_weather_forecast
      summary: Korea short-term weather forecast (KMA) by latitude/longitude
      description: 'Use when you need the official weather forecast for a point in South Korea for the next ~3-5 days. Data: KMA (Korea Meteorological Administration) village forecast on a 5 km grid, issued 8 times a day. Input: lat, lon (WGS84 decimal; Korea only). Output: JSON hourly then 3-hourly temperature C, sky, precipitation type and probability %, rain and snow amounts, humidity %, wind; plus daily min/max. Example: ?lat=37.5665&lon=126.978'
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.004500'
        protocols:
        - x402: {}
      x-x402:
        price: $0.0045
        scheme: exact
        network: eip155:8453
        networks:
        - eip155:8453
        - solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
        asset: USDC
        kind: single
        source: 'KMA via data.go.kr #15084084'
      parameters:
      - name: lat
        in: query
        required: true
        description: Latitude, WGS84 decimal degrees (KMA domain ≈ 32–44; outside → 400, not charged)
        schema:
          type: number
          minimum: 32
          maximum: 44
          example: 37.5665
      - name: lon
        in: query
        required: true
        description: Longitude, WGS84 decimal degrees (KMA domain ≈ 123–133)
        schema:
          type: number
          minimum: 123
          maximum: 133
          example: 126.978
      responses:
        '200':
          description: OK (payment settled). Example is a trimmed real output.
          content:
            application/json:
              schema:
                type: object
                properties:
                  location:
                    type: object
                    properties:
                      lat:
                        type: number
                      lon:
                        type: number
                      gridNx:
                        type: integer
                      gridNy:
                        type: integer
                      gridResolutionKm:
                        type: integer
                  issuedAt:
                    type: string
                  timezone:
                    type: string
                  attribution:
                    type: string
                  cache:
                    type: string
                  hourly:
                    type: array
                    items:
                      type: object
                      properties:
                        time:
                          type: string
                        temperatureC:
                          type: integer
                        sky:
                          type: string
                        precipitationType:
                          type: string
                        precipitationProbabilityPct:
                          type: integer
                        precipitation1h:
                          type: object
                          properties:
                            mm:
                              type:
                              - integer
                              - 'null'
                            category:
                              type: string
                            raw:
                              type: string
                        snowfall1h:
                          type: object
                          properties:
                            cm:
                              type: integer
                            category:
                              type: string
                            raw:
                              type: string
                        humidityPct:
                          type: integer
                        windSpeedMs:
                          type:
                          - number
                          - 'null'
                        windCategory:
                          type:
                          - string
                          - 'null'
                        windDirectionDeg:
                          type: integer
                        windEastwardMs:
                          type: number
                        windNorthwardMs:
                          type: number
                        waveHeightM:
                          type: integer
                        resolution:
                          type: string
                  daily:
                    type: array
                    items:
                      type: object
                      properties:
                        date:
                          type: string
                        minTempC:
                          type:
                          - integer
                          - 'null'
                        maxTempC:
                          type:
                          - integer
                          - 'null'
                        maxPopPct:
                          type: integer
                required:
                - location
                - issuedAt
                - timezone
                - attribution
                - cache
                - hourly
                - daily
              example:
                location:
                  lat: 37.5665
                  lon: 126.978
                  gridNx: 60
                  gridNy: 127
                  gridResolutionKm: 5
                issuedAt: '2026-10-09T14:00:00+09:00'
                timezone: Asia/Seoul
                attribution: 'Source: Korea Meteorological Administration (기상청) Short-term Forecast via data.go.kr (dataset 15084084, KOGL Type 1 — attribution required). Normalized/transla…'
                cache: miss
                hourly:
                - time: '2026-10-09T15:00:00+09:00'
                  temperatureC: 25
                  sky: mostly_cloudy
                  precipitationType: none
                  precipitationProbabilityPct: 20
                  precipitation1h:
                    mm: 0
                    category: none
                    raw: 강수없음
                  snowfall1h:
                    cm: 0
                    category: none
                    raw: 적설없음
                  humidityPct: 35
                  windSpeedMs: 0.4
                  windCategory: null
                  windDirectionDeg: 297
                  windEastwardMs: 0.3
                  windNorthwardMs: -0.1
                  waveHeightM: 0
                  resolution: 1h
                daily:
                - date: '2026-10-09'
                  minTempC: null
                  maxTempC: null
                  maxPopPct: 20
        '400':
          description: Invalid or missing parameters, or URL/domain not allowed (validated before payment where possible; not charged)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Machine-readable error code, e.g. bad_request, not_found, upstream_error, upstream_unreachable, upstream_not_configured
                    examples:
                    - bad_request
                  message:
                    type: string
                    description: Human-readable explanation
                    examples:
                    - month must be YYYYMM (e.g. 202409)
                required:
                - error
        '402':
          description: Payment Required (x402 v2). Returned for every unpaid request. PAYMENT-REQUIRED response header carries base64 JSON PaymentRequired; retry with PAYMENT-SIGNATURE.
        '500':
          description: Unexpected server error (not charged)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Machine-readable error code, e.g. bad_request, not_found, upstream_error, upstream_unreachable, upstream_not_configured
                    examples:
                    - bad_request
                  message:
                    type: string
                    description: Human-readable explanation
                    examples:
                    - month must be YYYYMM (e.g. 202409)
                required:
                - error
        '502':
          description: Upstream source returned an error or an unreadable response (not charged)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Machine-readable error code, e.g. bad_request, not_found, upstream_error, upstream_unreachable, upstream_not_configured
                    examples:
                    - bad_request
                  message:
                    type: string
                    description: Human-readable explanation
                    examples:
                    - month must be YYYYMM (e.g. 202409)
                required:
                - error
        '503':
          description: Endpoint temporarily disabled or upstream not configured on this server; no 402 is issued (not charged). Check /status, retry later
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Machine-readable error code, e.g. bad_request, not_found, upstream_error, upstream_unreachable, upstream_not_configured
                    examples:
                    - bad_request
                  message:
                    type: string
                    description: Human-readable explanation
                    examples:
                    - month must be YYYYMM (e.g. 202409)
                required:
                - error
        '504':
          description: Upstream source timed out or was unreachable (not charged). Retry after 1-5 min with backoff
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Machine-readable error code, e.g. bad_request, not_found, upstream_error, upstream_unreachable, upstream_not_configured
                    examples:
                    - bad_request
                  message:
                    type: string
                    description: Human-readable explanation
                    examples:
                    - month must be YYYYMM (e.g. 202409)
                required:
                - error
      tags:
      - Weather
  /v1/weather/global:
    get:
      operationId: weather_global
      summary: 'Worldwide weather forecast: current, hourly (72 h) and 10-day daily for any…'
      description: 'Use when an agent needs the weather anywhere in the world. Input: lat, lon, optional hours (0-72 hourly steps, default 24), tz (IANA zone for daily summaries, default UTC). Output: JSON current temperature, symbol, wind, humidity, cloud, pressure; hourly series; daily min/max, precipitation, max wind, symbol for ~10 days. Data: MET Norway. Example: ?lat=51.5072&lon=-0.1276&tz=Europe/London'
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.002000'
        protocols:
        - x402: {}
      x-x402:
        price: $0.002
        scheme: exact
        network: eip155:8453
        networks:
        - eip155:8453
        - solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
        asset: USDC
        kind: aggregate
        source: MET Norway Locationforecast 2.0 (CC BY 4.0), cached 30 min per ~1 km cell
      parameters:
      - name: lat
        in: query
        required: true
        description: Latitude, WGS84 decimal degrees (rounded to 0.01)
        schema:
          type: number
          minimum: -90
          maximum: 90
          example: 51.5072
      - name: lon
        in: query
        required: true
        description: Longitude, WGS84 decimal degrees (rounded to 0.01)
        schema:
          type: number
          minimum: -180
          maximum: 180
          example: -0.1276
      - name: hours
        in: query
        required: false
        description: Hourly steps to return (default 24)
        schema:
          type: integer
          minimum: 0
          maximum: 72
          example: 24
      - name: tz
        in: query
        required: false
        description: IANA time zone for daily summaries and local hours (default UTC)
        schema:
          type: string
          maxLength: 64
          example: Europe/London
      responses:
        '200':
          description: OK (payment settled). Example is a trimmed real output.
          content:
            application/json:
              schema:
                type: object
                properties:
                  location:
                    type: object
                    properties:
                      lat:
                        type: number
                      lon:
                        type: number
                      elevationM:
                        type:
                        - integer
                        - 'null'
                      timezone:
                        type: string
                  updatedAt:
                    type:
                    - string
                    - 'null'
                  current:
                    type: object
                    properties:
                      time:
                        type: string
                      temperatureC:
                        type: number
                      symbol:
                        type:
                        - string
                        - 'null'
                      precipitationNextHourMm:
                        type:
                        - number
                        - 'null'
                      windMs:
                        type: number
                      windFromDeg:
                        type: integer
                      humidityPct:
                        type: number
                      cloudPct:
                        type: number
                      pressureHpa:
                        type: number
                  hourly:
                    type: array
                    items:
                      type: object
                      properties:
                        time:
                          type: string
                        localHour:
                          type: integer
                        temperatureC:
                          type: number
                        precipitationMm:
                          type: number
                        symbol:
                          type:
                          - string
                          - 'null'
                        windMs:
                          type: number
                        windFromDeg:
                          type: integer
                        humidityPct:
                          type: number
                        cloudPct:
                          type: number
                  daily:
                    type: array
                    items:
                      type: object
                      properties:
                        date:
                          type: string
                        minC:
                          type: number
                        maxC:
                          type: number
                        precipitationMm:
                          type: number
                        maxWindMs:
                          type: number
                        symbol:
                          type:
                          - string
                          - 'null'
                  units:
                    type: object
                    properties:
                      temperature:
                        type: string
                      precipitation:
                        type: string
                      wind:
                        type: string
                      pressure:
                        type: string
                  attribution:
                    type: string
                  note:
                    type: string
                required:
                - location
                - updatedAt
                - current
                - hourly
                - daily
                - units
                - attribution
                - note
              example:
                location:
                  lat: 51.51
                  lon: -0.13
                  elevationM: 17
                  timezone: Europe/London
                updatedAt: '2026-10-18T13:17:51Z'
                current:
                  time: '2026-10-18T15:00:00Z'
                  temperatureC: 13.1
                  symbol: partlycloudy_day
                  precipitationNextHourMm: 0
                  windMs: 5.2
                  windFromDeg: 19
                  humidityPct: 52.1
                  cloudPct: 80.5
                  pressureHpa: 1027.7
                hourly:
                - time: '2026-10-18T15:00:00Z'
                  localHour: 16
                  temperatureC: 13.1
                  precipitationMm: 0
                  symbol: partlycloudy_day
                  windMs: 5.2
                  windFromDeg: 19
                  humidityPct: 52.1
                  cloudPct: 80.5
                daily:
                - date: '2026-10-18'
                  minC: 9.1
                  maxC: 13.1
                  precipitationMm: 1
                  maxWindMs: 5.2
                  symbol: rainshowers_night
                units:
                  temperature: °C
                  precipitation: mm
                  wind: m/s
                  pressure: hPa
                attribution: Weather forecast data from MET Norway (The Norwegian Meteorological Institute), CC BY 4.0.
                note: Coordinates rounded to 0.01° (~1 km). Symbols are MET Norway weather symbol codes (e.g. clearsky_day, lightrain). Daily values use the requested time zone; the…
        '400':
          description: Invalid or missing parameters, or URL/domain not allowed (validated before payment where possible; not charged)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Machine-readable error code, e.g. bad_request, not_found, upstream_error, upstream_unreachable, upstream_not_configured
                    examples:
                    - bad_request
                  message:
                    type: string
                    description: Human-readable explanation
                    examples:
                    - month must be YYYYMM (e.g. 202409)
                required:
                - error
        '402':
          description: Payment Required (x402 v2). Returned for every unpaid request. PAYMENT-REQUIRED response header carries base64 JSON PaymentRequired; retry with PAYMENT-SIGNATURE.
        '500':
          description: Unexpected server error (not charged)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Machine-readable error code, e.g. bad_request, not_found, upstream_error, upstream_unreachable, upstream_not_configured
                    examples:
                    - bad_request
                  message:
                    type: string
                    description: Human-readable explanation
                    examples:
                    - month must be YYYYMM (e.g. 202409)
                required:
                - error
        '502':
          description: Upstream source returned an error or an unreadable response (not charged)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Machine-readable error code, e.g. bad_request, not_found, upstream_error, upstream_unreachable, upstream_not_configured
                    examples:
                    - bad_request
                  message:
                    type: string
                    description: Human-readable explanation
                    examples:
                    - month must be YYYYMM (e.g. 202409)
                required:
                - error
        '503':
          description: Endpoint temporarily disabled or upstream not configured on this server; no 402 is issued (not charged). Check /status, retry later
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Machine-readable error code, e.g. bad_request, not_found, upstream_error, upstream_unreachable, upstream_not_configured
                    examples:
                    - bad_request
                  message:
                    type: string
                    description: Human-readable explanation
                    examples:
                    - month must be YYYYMM (e.g. 202409)
                required:
                - error
        '504':
          description: Upstream source timed out or was unreachable (not charged). Retry after 1-5 min with backoff
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Machine-readable error code, e.g. bad_request, not_found, upstream_error, upstream_unreachable, upstream_not_configured
                    examples:
                    - bad_request
                  message:
                    type: string
                    description: Human-readable explanation
                    examples:
                    - month must be YYYYMM (e.g. 202409)
                required:
                - error
      tags:
      - Weather
x-x402-network: eip155:8453
x-billing-policy: 'No charge on failure: payment is settled only after the endpoint returns a 2xx response. Any 4xx or 5xx (bad input, no data, upstream error, timeout, disabled endpoint) is not settled, so the signed payment is never collected. Input is validated before the 402 wherever possible. Over MCP, a tool result with isError is not settled either.'
x-error-codes:
- status: 400
  codes:
  - bad_request
  - url_not_allowed
  - bad_checksum
  - not_a_contract
  meaning: Invalid or missing parameters, or a URL/domain that is not allowed.
  retry: Fix the input; do not retry as is.
- status: 402
  codes: []
  meaning: Payment required (x402 v2). The PAYMENT-REQUIRED header holds the exact price.
  retry: Pay with an x402 client and retry with PAYMENT-SIGNATURE.
- status: 403
  codes:
  - not_bok_authored
  meaning: Requested table/resource is not served (e.g. statistics not authored by the Bank of Korea).
  retry: Do not retry.
- status: 404
  codes:
  - not_found
  - tx_not_found
  - tx_not_mined
  meaning: No data for the requested period/code yet.
  retry: Try an earlier period or another code.
- status: 413
  codes:
  - too_large
  meaning: Document is larger than this server's conversion cap (checked before payment).
  retry: Send a smaller document.
- status: 415
  codes:
  - unsupported_type
  - type_mismatch
  meaning: Document type not supported or not matching the declared type (before payment).
  retry: Do not retry as is.
- status: 502
  codes:
  - upstream_error
  - upstream_bad_response
  - upstream_http_error
  - rpc_unavailable
  - source_http_error
  meaning: The upstream source (government API, RPC, target site) returned an error or unreadable data.
  retry: Retry after 30-60 s with backoff.
- status: 503
  codes:
  - endpoint_disabled
  - upstream_not_configured
  - payment_not_configured
  meaning: Endpoint temporarily disabled on this server, or its upstream is not configured. No 402 is issued.
  retry: Check /status; retry later.
- status: 504
  codes:
  - upstream_unreachable
  meaning: The upstream source timed out or was unreachable (Korean public data APIs have occasional outages, esp. holidays).
  retry: Retry after 1-5 min with backoff.