---
title: Hotspots
description: Near-real-time satellite fire detections with full history since January 2025 — attributes, the active flag, and example queries.
---

`deepfire:hotspots` — near-real-time satellite fire detections, current and historical,
global coverage. Geometry: **Point** (EPSG:4326). Feature IDs: `hotspots.<uuid>`.

## Attributes

| Property               | Type                 | Notes                                        |
| ---------------------- | -------------------- | -------------------------------------------- |
| `id`                   | uuid                 | Feature key (surfaced as `hotspots.<uuid>`)  |
| `cluster_id`           | uuid                 | Owning cluster — joins to [`deepfire:clusters`](/api/clusters) |
| `observed_at`          | timestamp (ISO 8601) | Detection time                               |
| `source`               | string               | Detecting satellite — see [data sources](/api/data-sources) |
| `confidence`           | string               | `LOW` \| `MEDIUM` \| `HIGH`                  |
| `fire_radiative_power` | number, nullable     | FRP in MW                                    |
| `country`              | string, nullable     | ISO 3166-1 alpha-2 country code              |
| `active`               | boolean              | Live working set vs. historical — see below and [how `active` is computed](/api/clusters#the-active-lifecycle) |

## Current vs. historical

The collection serves the full history — detections going back to **January 2025**;
`active = true` narrows it to the current live set. **An unfiltered query returns
everything** — filter `active = true` if you only want live fires.

A hotspot's `active` flag follows its owning cluster: detections are ingested
`active = true` and flip to `false` — permanently — once the cluster has gone 24 hours
without any new detection. See
[how `active` is computed](/api/clusters#the-active-lifecycle).

## Examples

Live, high-confidence, energetic detections:

```bash
curl -sG -H "Authorization: Bearer $TOKEN" \
  "https://api.deepfire.co/ogc/features/v1/collections/deepfire:hotspots/items" \
  --data-urlencode "filter-lang=cql2-text" \
  --data-urlencode "filter=active = true AND confidence = 'HIGH' AND fire_radiative_power > 50" \
  --data-urlencode "f=application/geo+json"
```

Detections in a time window (`observed_at` is indexed — this is fast):

```bash
curl -sG -H "Authorization: Bearer $TOKEN" \
  "https://api.deepfire.co/ogc/features/v1/collections/deepfire:hotspots/items" \
  --data-urlencode "filter-lang=cql2-text" \
  --data-urlencode "filter=observed_at >= TIMESTAMP('2026-07-01T00:00:00Z') AND observed_at < TIMESTAMP('2026-07-02T00:00:00Z')" \
  --data-urlencode "limit=10000" \
  --data-urlencode "f=application/geo+json"
```

Live detections in one country:

```bash
curl -sG -H "Authorization: Bearer $TOKEN" \
  "https://api.deepfire.co/ogc/features/v1/collections/deepfire:hotspots/items" \
  --data-urlencode "filter-lang=cql2-text" \
  --data-urlencode "filter=active = true AND country = 'US'" \
  --data-urlencode "limit=10000" \
  --data-urlencode "f=application/geo+json"
```

All detections for one fire (a [cluster](/api/clusters)):

```bash
curl -sG -H "Authorization: Bearer $TOKEN" \
  "https://api.deepfire.co/ogc/features/v1/collections/deepfire:hotspots/items" \
  --data-urlencode "filter-lang=cql2-text" \
  --data-urlencode "filter=cluster_id = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'" \
  --data-urlencode "f=application/geo+json"
```

Full parameter reference: [Get hotspots](/reference/hotspots/items-deepfire-hotspots).
