swathapi-com Storms API

The Storms API from swathapi-com — 3 operation(s) for storms.

Operations 4

GET /v1/storms/proof Printable storm proof document for one address (HTML) #
GET /v1/storms/at Radar-verified storm history at one coordinate #
POST /v1/storms/at Storm history for many coordinates in one request (up to 500) #
GET /v1/storms List detected storms (one row per storm/swath) with optional time, area, and… #

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/swathapi-com:swathapi-com-storms-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

swathapi-com-storms-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Swath Storms API
  version: '1.0'
  description: 'Verified severe-weather intelligence. Swath detects hail storms from live NEXRAD/MRMS radar and damaging-wind events from measured NWS storm reports, builds verified damage swath polygons, and joins them against parcel data to answer: which properties were hit, and how hard. Authentication: every /v1 endpoint takes `Authorization: Bearer sk_...`. Self-serve keys via POST /v1/signup (free tier: 2 trial credits, 60 requests/min — paid plans from $35/mo). Credit costs per successful call: Swath Report (GET /v1/swaths/{id}/properties) = 1 credit per property returned plus 25 credits per record fetched fresh from the parcel vendor, 10-credit minimum; report quote (GET /v1/swaths/{id}/properties/quote) = 1 credit; property lookup (GET /v1/property) = 2 credits; billing endpoints = 0; everything else = 1 credit. Failed requests are never billed. Paid plans: developer (40,000 credits/mo) and scale (600,000 credits/mo) via POST /v1/billing/checkout.'
servers:
- url: https://swathapi.com
security:
- ApiKeyAuth: []
tags:
- name: Storms
paths:
  /v1/storms/proof:
    get:
      operationId: storm_proof_document
      summary: Printable storm proof document for one address (HTML)
      description: The dated, per-address verification document behind the $8 report, rendered bare for embedding in your own product (no search form, no swathapi.com navigation). Pass lat and lng with the address to pin the document to an exact coordinate; address alone is geocoded. Returns text/html; the x-swath-events header carries the event count. Costs 1 credit.
      parameters:
      - name: address
        in: query
        required: true
        schema:
          type: string
      - name: lat
        in: query
        required: false
        schema:
          type: number
      - name: lng
        in: query
        required: false
        schema:
          type: number
      - name: brand
        in: query
        required: false
        schema:
          type: string
          maxLength: 80
        description: Your product name, shown as "Prepared by …"
      - name: accent
        in: query
        required: false
        schema:
          type: string
        description: Hex accent color (#rrggbb) so the document matches your app
      responses:
        '200':
          description: HTML document
          content:
            text/html:
              schema:
                type: string
      tags:
      - Storms
  /v1/storms/at:
    get:
      operationId: storms_at_point
      summary: Radar-verified storm history at one coordinate
      description: Every verified storm whose damage swath contains the point, newest first (max 25), with hail size measured at that location where per-cell radar data covers it. The same lookup that powers the $8 address report. Database only, no vendor call. Costs 1 credit.
      parameters:
      - name: lat
        in: query
        required: true
        schema:
          type: number
        description: WGS84 latitude
      - name: lng
        in: query
        required: true
        schema:
          type: number
        description: WGS84 longitude
      responses:
        '200':
          description: Storm events at the point
          content:
            application/json:
              schema:
                type: object
                properties:
                  lat:
                    type: number
                  lng:
                    type: number
                  county:
                    type: string
                    nullable: true
                  events:
                    type: array
                    items:
                      type: object
                      properties:
                        storm_id:
                          type: string
                        type:
                          type: string
                          enum:
                          - hail
                          - wind
                        date:
                          type: string
                          description: ISO 8601 verification time
                        hail_in:
                          type: number
                          nullable: true
                          description: Hail size in inches at this point (null for wind)
                        basis:
                          type: string
                          nullable: true
                          enum:
                          - at_address
                          - swath_max
                          description: '"at_address" = measured in the radar cell covering the point; "swath_max" = the storm peak, used when no per-cell reading covers the point'
                        wind_mph:
                          type: number
                          nullable: true
                        link:
                          type: string
                          description: Public storm page path
                  total:
                    type: integer
                  coverage_since:
                    type: string
                    nullable: true
                    description: Earliest verified storm in the archive; bounds any "no events" claim
      tags:
      - Storms
    post:
      operationId: storms_at_points
      summary: Storm history for many coordinates in one request (up to 500)
      description: Batch form of GET /v1/storms/at. Send every roof in a map box and get the verified storm list per point back in one round trip, in input order. Costs 1 credit per request regardless of point count.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - points
              properties:
                points:
                  type: array
                  minItems: 1
                  maxItems: 500
                  items:
                    type: object
                    required:
                    - lat
                    - lng
                    properties:
                      lat:
                        type: number
                      lng:
                        type: number
                      ref:
                        type: string
                        maxLength: 64
                        description: Your own id for this point; echoed back
      responses:
        '200':
          description: One result per input point, same order
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        ref:
                          type: string
                          nullable: true
                        lat:
                          type: number
                        lng:
                          type: number
                        events:
                          type: array
                          items:
                            type: object
                            properties:
                              storm_id:
                                type: string
                              type:
                                type: string
                                enum:
                                - hail
                                - wind
                              date:
                                type: string
                                description: ISO 8601 verification time
                              hail_in:
                                type: number
                                nullable: true
                                description: Hail size in inches at this point (null for wind)
                              basis:
                                type: string
                                nullable: true
                                enum:
                                - at_address
                                - swath_max
                                description: '"at_address" = measured in the radar cell covering the point; "swath_max" = the storm peak, used when no per-cell reading covers the point'
                              wind_mph:
                                type: number
                                nullable: true
                              link:
                                type: string
                                description: Public storm page path
                        total:
                          type: integer
                  coverage_since:
                    type: string
                    nullable: true
      tags:
      - Storms
  /v1/storms:
    get:
      operationId: find_storms
      summary: List detected storms (one row per storm/swath) with optional time, area, and…
      description: Returns radar-detected storms, newest first. Each row pairs the storm with its damage swath summary. Costs 1 credit.
      parameters:
      - name: since
        in: query
        required: false
        schema:
          type: string
        description: ISO 8601 timestamp; only storms last seen at or after this time (e.g. 2026-07-18 or 2026-07-18T00:00:00Z)
      - name: bbox
        in: query
        required: false
        schema:
          type: string
        description: Bounding box as "west,south,east,north" in WGS84 degrees, e.g. -103.0,25.8,-93.5,36.5 for Texas
      - name: type
        in: query
        required: false
        schema:
          type: string
          enum:
          - hail
          - wind
        description: Filter by storm type
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 100
          maximum: 500
        description: Max rows (default 100, cap 500)
      responses:
        '200':
          description: Matching storms
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/StormSwath'
        '400':
          description: Invalid since/type/bbox parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: 'Missing, invalid, or revoked API key. Fix: pass Authorization: Bearer sk_... (get a key at /v1/signup).'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: 'Monthly credit limit reached (code credits_exhausted). Fix: upgrade via POST /v1/billing/checkout or wait for the monthly reset.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Per-minute rate limit for the plan exceeded (code rate_limited). Retry after a short wait.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Storms
components:
  schemas:
    Error:
      type: object
      required:
      - error
      properties:
        error:
          type: object
          required:
          - code
          - message
          properties:
            code:
              type: string
              description: Machine-readable error code, e.g. invalid_request, unauthorized, credits_exhausted, rate_limited, not_found, account_exists, billing_not_configured
            message:
              type: string
            used:
              type: number
              description: Credits used this month (present on credits_exhausted)
            plan:
              type: string
              description: Current plan (present on credits_exhausted)
    StormSwath:
      type: object
      description: One storm with its damage-swath summary
      properties:
        storm_id:
          type: string
          description: Storm id (sw_...)
        type:
          type: string
          enum:
          - hail
          - wind
        started_at:
          type: string
          format: date-time
        last_seen_at:
          type: string
          format: date-time
        verified_at:
          type:
          - string
          - 'null'
          format: date-time
          description: When radar verification confirmed the swath
        status:
          type: string
          description: e.g. active
        swath_id:
          type: string
          description: Swath id (swath_...)
        mesh_max_in:
          type:
          - number
          - 'null'
          description: Max radar-estimated hail size in the swath, inches
        mesh_mean_in:
          type:
          - number
          - 'null'
          description: Mean radar-estimated hail size, inches
        wind_max_mph:
          type:
          - number
          - 'null'
          description: Max wind speed, mph (wind storms)
        area_km2:
          type:
          - number
          - 'null'
          description: Swath footprint area, square km
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      description: 'Swath API key, e.g. Authorization: Bearer sk_live_... Get one at POST /v1/signup or https://swathapi.com/signup'