> ## Documentation Index
> Fetch the complete documentation index at: https://enhancedradar.com/docs/api/llms.txt
> Use this file to discover all available pages before exploring further.

# Search events

> Searches notable things that happened on frequency, such as go-arounds, laser strikes, diversions, and gate returns, ranked by meaning.

Searches events: notable things that happened on frequency, such as a go-around, a laser strike, a diversion, or a gate return, each summarized and linked to the transmissions it was found in. Describe what you are looking for in plain words; results are ranked by how closely they match its meaning, not by exact words.

An event is reported once and then updated as more transmissions about it arrive. Each event is returned as it was first reported, with all its updates nested under it in `updates`. Every update has its own `event_update_id`.

<video controls preload="none" playsInline src="https://enhancedradar.com/media/api/api-02-events-v1.mp4" poster="https://enhancedradar.com/media/api/api-02-events-poster-v1.jpg" />

## Query parameters

Takes `since`, `until`, `callsign`, `facility_id`, `atc_channel_ids`, and `airline_id` as described in [Selecting data](https://enhancedradar.com/docs/api/docs/api/concepts/selecting-data.md). The window selects by `happened_at`, not `received_at`: an event matches when its `happened_at` as first reported, or the `happened_at` of any of its updates, is in it. See [Time windows by endpoint](https://enhancedradar.com/docs/api/docs/api/concepts/selecting-data.md#time-windows-by-endpoint).

**q** `string` *required*

What you are looking for, e.g. `laser strike on approach` or `aircraft returning to the gate`.

**since** `string` *required*

Start of the window, inclusive. RFC 3339.

**until** `string` *required*

End of the window, inclusive. Must be after `since` and at most 48 hours later.

**callsign** `string`

ICAO callsign, e.g. `UAL406`. Case-insensitive.

**facility\_id** `string`

A `facility_id` from `GET /api/v0/facilities`.

**atc\_channel\_ids** `string`

Comma-separated `atc_channel_id` values, e.g. `4,7,8`. Every channel must be available.

**airline\_id** `integer`

An `airline_id` from `GET /api/v0/airlines`.

**limit** `integer` (default: 10)

Maximum events to return, 1 to 25.

Results are the best matches in one page; there is no cursor. With `facility_id` or `atc_channel_ids`, a page can hold fewer than `limit` events.

## Response

**events** `array`

The events, best match first.

**event**

**event\_id** `integer`

Id of the event as first reported.

**atc\_channel\_id** `integer`

The channel the event happened on.

**facility\_ids** `string[]`

Facilities that channel belongs to.

**happened\_at** `string`

When the event happened, as first reported, in UTC, accurate to within 20 seconds. See [Times](https://enhancedradar.com/docs/api/docs/api/concepts/times.md).

**summary** `string`

One-line summary as first reported, usually with a quote from the frequency.

**callsigns** `string[]`

ICAO callsigns of the flights involved, as first reported.

**evidence\_audio\_sample\_ids** `string[]`

Transmissions the event was first found in. Fetch them with [Get transcript](https://enhancedradar.com/docs/api/docs/api/api-reference/transcripts/get.md) and [Get transcript audio](https://enhancedradar.com/docs/api/docs/api/api-reference/transcripts/audio.md).

**updates** `array`

Every later update of the event, oldest first; empty if it was never updated. The last one is the most complete.

**update**

**event\_update\_id** `integer`

Id of this update.

**update\_to\_event\_id** `integer`

What this update revised: the `event_id`, or the `event_update_id` of an earlier update. An event can branch when two updates revise the same one.

**happened\_at** `string`

When the event happened, as of this update.

**summary** `string`

One-line summary as of this update.

**callsigns** `string[]`

ICAO callsigns of the flights involved, as of this update.

**evidence\_audio\_sample\_ids** `string[]`

Transmissions the event was found in, as of this update.

**similarity\_score** `number`

How closely the event matches `q`: the cosine similarity between `q` and the event's description, at most 1; higher is better. Scores are comparable across requests for the same `q`. It is the same score the live [`events`](https://enhancedradar.com/docs/api/docs/api/api-reference/live/events) topic compares with `minimum_similarity_score`.

## Billing

Each search is charged as one `event_query_page`, at \$1.00, even when nothing matches. Each event returned is charged as one `event_pull`, at \$1.00. An event's updates are included in its `event_pull`. See [Pricing](https://enhancedradar.com/docs/api/docs/api/pricing.md) and [Billing](https://enhancedradar.com/docs/api/docs/api/concepts/billing.md).

## Errors

| Status | Meaning |
| - | - |
| `400` | `q`, `since`, or `until` is missing, or a parameter is invalid. |

```bash cURL theme={null}
curl -H "Authorization: Bearer $ER_API_KEY" \
  "https://api.enhancedradar.com/api/v0/events?since=2026-10-22T12:00:00Z&until=2026-10-23T12:00:00Z&q=returning+to+the+gate"
```

```json 200 theme={null}
{
  "events": [
    {
      "event_id": 5176678,
      "atc_channel_id": 997,
      "facility_ids": ["36bb4190-36e1-4aaf-b677-d9861a66cebb"],
      "happened_at": "2026-10-23T00:14:32.653120731Z",
      "summary": "Gate return, operations coordination, \"we're gonna have to head back to the gate\"",
      "callsigns": ["DAL1042"],
      "evidence_audio_sample_ids": ["9c9cfd6b-5de0-4a68-8ae1-5da0bb5a772a", "…"],
      "updates": [
        {
          "event_update_id": 5176727,
          "update_to_event_id": 5176678,
          "happened_at": "2026-10-23T00:14:32.653120731Z",
          "summary": "Gate return, operations coordination, \"we're gonna have to head back to the gate\"",
          "callsigns": ["DAL1042"],
          "evidence_audio_sample_ids": ["0b4d1e1a-8240-43b4-8710-0429be5c48f6", "…"]
        },
        {
          "event_update_id": 5176921,
          "update_to_event_id": 5176727,
          "happened_at": "2026-10-23T00:14:32.653120731Z",
          "summary": "Gate return, operations coordination, \"they're gonna send us back to gate 10\"",
          "callsigns": ["DAL1042"],
          "evidence_audio_sample_ids": ["0b4d1e1a-8240-43b4-8710-0429be5c48f6", "…"]
        }
      ],
      "similarity_score": 0.71
    }
  ]
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.