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

# Event

> One ordered step in the life of an action (SPEC-v0.1 §6.2).

`ctrlrun.Event` — class, defined at `src/ctrlrun/receipt.py:154`

```python theme={null}
class Event()
    def __init__(type: EventType, action_id: str | None, ts: datetime, data: Mapping[str, Any], effect_key: str | None, approval_id: str | None, event_id: int | None)
```

One ordered step in the life of an action (SPEC-v0.1 §6.2).

`event_id` is assigned by the StateStore on append, not by the caller.

`action_id` is `None` for the three `DELEGATION_*` types (SPEC-v0.3 §7): they are about an
authority record, created and revoked outside any action's life, and they name the
delegation in `data.delegation_id`. Inventing a synthetic `action_id` would put a value in
a field every reader takes to name a real proposal.

## Next

* [Python API index](/reference/api/index).
* [Get started](/get-started/quickstart) · [Why](/why).


## Related topics

- [Receipt and event schemas](/reference/receipt-and-event-schemas.md)
- [EventSink](/reference/api/EventSink.md)
- [JSONLEventSink](/reference/api/JSONLEventSink.md)
- [OTelEventSink](/reference/api/otel-OTelEventSink.md)
- [Receipts and evidence](/concepts/receipts-and-evidence.md)
