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

# GetUpdates

> Stream ledger updates from a given offset

**Server-streaming RPC.** Streams ledger updates from a starting offset (exclusive) up to an optional end offset (inclusive). Each message is either a committed `LedgerTransaction` or a bare `LedgerOffsetCheckpoint`. Typically used to confirm transaction submission or to tail the ledger.

## Request

<ParamField path="begin_exclusive" type="int64" required>
  Offset to start streaming from (exclusive). Use the result of [`GetLedgerEnd`](/agentic-api/core/get-ledger-end) to start from "now".
</ParamField>

<ParamField path="end_inclusive" type="int64 (optional)">
  Optional end offset (inclusive). Omit to stream indefinitely.
</ParamField>

<ParamField path="template_filters" type="string[]">
  Optional Daml template filters.
</ParamField>

```proto theme={null}
message GetUpdatesRequest {
  int64 begin_exclusive        = 1;
  optional int64 end_inclusive = 2;
  repeated string template_filters = 3;
}
```

## Response

```proto theme={null}
message GetUpdatesResponse {
  oneof update {
    LedgerTransaction       transaction       = 1;
    LedgerOffsetCheckpoint  offset_checkpoint = 2;
  }
}
```

<Note>
  `offset_checkpoint` messages let the server advance your cursor even when no transactions match your filter — always persist the latest observed offset to resume cleanly.
</Note>

## See also

* [`GetLedgerEnd`](/agentic-api/core/get-ledger-end) — fetch the current offset to use as `begin_exclusive`.
* [`GetActiveContracts`](/agentic-api/core/get-active-contracts) — snapshot of currently active contracts (one-shot, not a tail).
* [`ExecuteTransaction`](/agentic-api/transaction-flow) — `update_id` from its response can be matched against `LedgerTransaction` events here for confirmation.
