# GET /events

> Talos next · Since 0.6

## Request

#### Query parameters

| Parameter | Shape | Meaning |
|---|---|---|
| `since` | integer | only events with `frame >= since`. Default 0. |
| `after_seq` | integer | only events with `seq > after_seq`. The precise polling cursor. |
| `filter` | string | match `type` or the custom/trigger event name. Comma-separated for alternatives: `filter=trigger,door-opened`. |
| `entity` | string | only events naming this entity id |
| `limit` | integer | at most this many, keeping the most recent |

## Response

#### Response: array of `EventRecord`

One frame-stamped thing that happened.

| Field | Type | Present | Description |
|---|---|---|---|
| `seq` | `integer` | always | Monotonic per-process sequence number. Strictly increasing, no gaps. |
| `frame` | `integer` | always | The frame the event fired on. |
| `time` | `number` | always | Simulated seconds since the scene loaded. |
| `kind` | `EventKind` | always | What happened. |

#### Response: `EventKind`

The payload of an `EventRecord`, tagged by `type` on the wire.

| Value | Meaning |
|---|---|
| `collision` | Two colliders started or stopped touching. Mirrors `argus_host::GameEvent::Collision`. |
| `trigger` | A sensor volume was entered or left. Mirrors `argus_host::GameEvent::Trigger`. |
| `custom` | `ctx.events.emit(name, data)` from a behavior, or `ctx.events.emitTo(to, name, data)`. |
| `script_error` | A behavior threw, ran away or blew its per-tick budget and was disabled — or, with `disabled` false, keeps running: it threw a stale handle (`entity-despawned`) from a per-tick hook, or its `update` stayed over its wall-clock budget (phase `budget`) under the host's default `OverrunPolicy::Warn`. |
| `script_warning` | A behavior did something the engine let pass but its author almost certainly did not mean. The behavior keeps running; nothing is disabled. |
| `ui` | The game UI's stack, focus or an activation changed (`PLAN-UI.md` §3). |
| `log` | `ctx.log(...)` from a behavior. |

## Example

```sh
curl "http://127.0.0.1:7700/events"
```

Start a server with `argus run --serve`; the port is `--port` (7700 by default). The request and response fields are in the query API guide.
