Lightning API · Documentation

API Reference

One endpoint. Pass your API key and get back a JSON array of lightning flashes. Filter by time window and geographic bounding box. No SDK required.


Authentication

All requests must include your API key in the X-API-Key header. Keys are generated from your dashboard and can be rotated at any time. Never expose your key in client-side code, proxy requests through your own backend.

curl "https://api.warpulse.com/v1/flashes?since_minutes=15" \
  -H "X-API-Key: YOUR_API_KEY"

Endpoint

GEThttps://api.warpulse.com/v1/flashes

Returns an array of lightning flash events matching the given filters.


Query Parameters

All parameters are optional. Without a bounding box, the response covers the full Americas and Atlantic region.

Parameter

Type

Default

Description

since_minutes

integer

15

Return flashes from the last N minutes. Minimum: 1. Maximum: 20,160 (14 days). Defaults to 15.

min_lat

float

Minimum latitude of bounding box (-90 to 90). Must be provided with max_lat, min_lon, max_lon.

max_lat

float

Maximum latitude of bounding box (-90 to 90).

min_lon

float

Minimum longitude of bounding box (-180 to 180).

max_lon

float

Maximum longitude of bounding box (-180 to 180).

limit

integer

2000

Maximum number of flashes to return. Free cap: 500 per call. Starter cap: 2,000 per call. Pro/Ultimate/Enterprise cap: 20,000 per call.


Geographic Filtering

Narrow results to any rectangular region by passing all four bounding box parameters together. All four must be present, a partial set returns a 400 error. Coordinates use decimal degrees (WGS84).

Bounding box format

# Florida
curl "https://api.warpulse.com/v1/flashes" \
  -H "X-API-Key: YOUR_API_KEY" \
  -G \
  -d since_minutes=15 \
  -d min_lat=24.52 \
  -d max_lat=31.00 \
  -d min_lon=-87.63 \
  -d max_lon=-80.03

# Custom box, NYC metro area
curl "https://api.warpulse.com/v1/flashes" \
  -H "X-API-Key: YOUR_API_KEY" \
  -G \
  -d since_minutes=30 \
  -d min_lat=40.45 \
  -d max_lat=41.15 \
  -d min_lon=-74.30 \
  -d max_lon=-73.65

Response Format

Successful responses return HTTP 200 with a JSON object containing a flashes array. Each flash has four fields.

{
  "flashes": [
    {
      "flash_id": 58097,
      "lat": -5.91299,
      "lon": -77.38203,
      "flash_timestamp_utc": "2026-06-25T21:58:59.348063"
    },
    ...
  ]
}

Field

Type

Description

flash_id

integer

Unique identifier for this flash event.

lat

float

Latitude of the flash centroid in decimal degrees (WGS84).

lon

float

Longitude of the flash centroid in decimal degrees (WGS84).

flash_timestamp_utc

string

UTC timestamp of the flash in ISO 8601 format.


Rate Limits

Limits apply per API key, not per account. Exceeding the rate limit returns HTTP 429. Per-second rate limits are governed by a fair usage policy and scale with your plan.

Plan

Monthly calls

Rate limit

Free

50,000

Non-commercial use only

Starter

750,000

Fair usage policy

Pro

5,000,000

Fair usage policy

Ultimate

25,000,000

Fair usage policy

Enterprise

100,000,000+

Fair usage policy

Monthly quotas reset on your billing anniversary each month, not the calendar month. Usage is visible on your dashboard.

Quota is consumed based on how many flashes a request returns, not per request: every 100 flashes returned costs 1 unit of your monthly quota, with a minimum of 1 unit per call. A request returning 50 flashes still costs 1 unit; a request returning 5,000 flashes costs 50. The X-Quota-Cost response header on every /v1/flashes call tells you exactly what that call cost.


Error Codes

400

Bad Request

Invalid parameter value or combination (e.g. min_lat without max_lat, limit exceeds plan cap).

401

Unauthorized

Missing or invalid X-API-Key header.

429

Too Many Requests

Rate limit exceeded for your plan. Back off and retry.

500

Server Error

Unexpected server error. Contact support if the issue persists.


Interactive Query Builder

Pick a US state or region, draw a custom bounding box, or enter coordinates manually. The query updates live in your chosen language.

Starter caps at 2,000/call. Pro, Ultimate & Enterprise cap at 20,000/call.

Bounding box (or use the map below)

Regions

US States

Generated query

curl "https://api.warpulse.com/v1/flashes" \
  -H "X-API-Key: YOUR_API_KEY" \
  -G \
  -d since_minutes=15