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

# Pagination

> Follow opaque forward-only cursors through deliveries and the event feed

The [delivery list](/webhooks/deliveries) and the [PULL feed](/webhooks/pull-feed) use opaque, forward-only cursors.

<Steps>
  <Step title="Request the first page">
    Call the endpoint with no `after`. Optionally set `limit` and any filters.
  </Step>

  <Step title="Read data.nextCursor">
    A non-null value means there are more results.
  </Step>

  <Step title="Request the next page">
    Call again with `after=<nextCursor>` and the **same** filters. Stop when `nextCursor` is `null`.
  </Step>
</Steps>

`limit` defaults to `25` and caps at `100` — a larger value is silently capped, while a value below `1` is a `400`.

<Warning>
  **A short page is not the end.** Filters are applied after the query, so a page can return fewer than `limit` items — even zero — while `nextCursor` is still non-null. Keep following the cursor until it is `null`.
</Warning>

## Cursor scope

Cursors are bound both to you and to a single feed, either `DELIVERIES` or `EVENTS`. Tampering with one, forging one, or reusing another partner's returns `400 INVALID_CURSOR`.

| Feed                                   | Order        |
| -------------------------------------- | ------------ |
| [Deliveries](/webhooks/deliveries)     | Newest first |
| [PULL event feed](/webhooks/pull-feed) | Oldest first |

<Tip>
  The feeds are ordered in opposite directions on purpose. The delivery log answers "what just broke?", so it leads with the newest. The event feed is a replayable stream you checkpoint through in order, so it leads with the oldest.
</Tip>
