Real-Time Satellite Lightning Flashes: Introducing the Bounding Box API
The Foreca Weather API has a new endpoint for satellite lightning observations: Lightning Flashes bounding box (/api/v1/lightning/bbox). It returns every lightning flash inside a rectangle you choose, up to the whole world, in a single request.
Each flash is its own point, with its coordinates, its detection time and the satellite that detected it. The data comes from the same satellite feed as Foreca's lightning map layers, delivered as points you plot, animate and style yourself instead of pre-rendered map tiles.
Key Highlights & Benefits
- One Request for the Whole Map View: Query all flashes inside any bounding box in one call, instead of one call per map tile. The whole world is -180,-90,180,90.
- Fixed 10-Minute Frames: Data arrives from the satellites every 10 minutes and is served in the same 10-minute frames. A frame is named by its end time, and once a newer frame exists, its flashes no longer change. Frames sit exactly 10 minutes apart, so you can compute the timestamps of an animation loop and fetch the frames in parallel. Roughly the last 24 hours, about 140 frames, are available.
- Compact Format: With format=compact, the flashes come back as one array per field instead of a list of objects, ready to copy into typed arrays or a graphics buffer. That is about 3.5x less JSON to parse and hold in memory.
- Total Lightning: Each point is one flash seen from orbit, covering both in-cloud and cloud-to-ground lightning.
Global Coverage & Total Lightning Detection
Flashes are detected by three geostationary satellites: GOES-19 and GOES-18 with their Geostationary Lightning Mapper (GLM), and EUMETSAT's Meteosat Third Generation with its Lightning Imager (MTG-LI). New data arrives about every 10 minutes, typically 5 to 15 minutes after the flash.
- Coverage: The Americas, Europe, Africa and the Middle East, between latitudes 60°S and 75°N. A request for any other area returns an empty list of flashes.
- Position Accuracy: Roughly 8 to 15 km, a little coarser toward the edge of each satellite's view.
How It Works
Give the corners of your map view as west,south,east,north, longitude first. Without the time parameter, you get the newest frame:
GET /api/v1/lightning/bbox/-125,24,-66,50?format=compact
To fetch an earlier frame, pass its end time, for example ?time=2026-10-21T12:00:00Z. A time between frame boundaries is rounded down to the boundary before it, and the response always states the frame you received.
Response Example (format=compact, shortened to three flashes)
- frame, prev and next: frame is the end time of the frame served, and prev and next name the frames on either side. next is null at the newest frame, which is still filling. When frame moves on, there is new data to draw.
- dt: The number of seconds before frame that each flash was detected, from 0 to 599. Use it to drive a fade or flash animation. Frame minus dt gives the detection time.
- src: An index into sources, which always lists the satellites in the same order, so an index means the same satellite in every frame.
Get Started
- Explore the Docs: Parameters and response fields are in the Lightning Flashes section of our Developer Portal.
- Get Access: The bounding box endpoint is a separately agreed add-on. Contact your Foreca account manager or our sales team to enable it for your account.