---
title: "Delivered data events of one chain; each successful page costs 25 CU."
method: GET
path: "/push/subscriptions/{subscription_id}/events"
tags: ["Subscriptions"]
---

# Delivered data events of one chain; each successful page costs 25 CU.

`GET /push/subscriptions/{subscription_id}/events`

## Request

- Base URL: `https://api.blockvectra.com/v1`
- URL: `https://api.blockvectra.com/v1/push/subscriptions/{subscription_id}/events`
- Auth: API key in header `x-api-key`

Only delivered data events, ordered by (block, position in block, replay_epoch).
Both block bounds omitted selects the last hour by block time up to delivered_through_block;
one omitted bound selects an hour relative to the other. A window longer than 24 hours
or from_block after to_block is 400 invalid_request. History is retained for at most
30 days and may restart after storage loss; an older from_block is 422 block_out_of_range.
Offline subscriptions can read history. Tokens bind all query parameters. Each
account has at most two concurrent queries; the platform storage share is also bounded.

## Query parameters

- `chain` string, required: lower(chain_slug), ES-030 rule 10.
- `from_block` integer
- `to_block` integer
- `limit` integer
- `page_token` string

## Response `200`

One page of delivered events.

- EventHistoryPage
  - `events` DeliveredEvent[], required
    - `event` union, required
      - NativeTransfer: Successful top-level transaction with value > 0 where a watched address is from or to (for a contract creation, to is the new contract). Internal transfers are not delivered.
        - `id` string, required
        - `type` 'native.transfer', required
        - `ref` string, required
        - `from` string, required
        - `to` string, required
        - `amount` string, required
        - `block_number` integer, required
        - `block_hash` string, required
        - `block_timestamp` string, required
        - `tx_hash` string, required
        - `tx_index` integer, required
        - `matched` TransferMatch[], required
          - `address` string, required
          - `role` 'from' | 'to', required
      - TokenTransfer: ERC-20 Transfer (3 topics), ERC-721 Transfer (4 topics) or ERC-1155 TransferSingle / TransferBatch of any contract, where a watched address is from or to. One event per (id, value) of a TransferBatch (batch_index from 0).
        - `id` string, required
        - `type` 'token.transfer', required
        - `ref` string, required
        - `standard` 'erc20' | 'erc721' | 'erc1155', required
        - `token` string, required
        - `from` string, required
        - `to` string, required
        - `token_id` string, nullable, required: null for erc20.
        - `amount` string, required
        - `batch_index` integer, nullable, required: Only for an ERC-1155 TransferBatch.
        - `block_number` integer, required
        - `block_hash` string, required
        - `block_timestamp` string, required
        - `tx_hash` string, required
        - `tx_index` integer, required
        - `log_index` integer, required
        - `matched` TransferMatch[], required
          - `address` string, required
          - `role` 'from' | 'to', required
      - LogEvent: Any other log that names a watched address, as the emitting contract or in topics[1] to topics[3] (left-padded to 32 bytes).
        - `id` string, required
        - `type` 'log', required
        - `ref` string, required
        - `address` string, required
        - `topics` Hash32[], required
        - `data` string, required
        - `block_number` integer, required
        - `block_hash` string, required
        - `block_timestamp` string, required
        - `tx_hash` string, required
        - `tx_index` integer, required
        - `log_index` integer, required
        - `matched` object[], required
          - `address` string, required
          - `role` 'emitter' | 'topic1' | 'topic2' | 'topic3', required
    - `replay_epoch` integer, required: Replay epoch of the stream: 0 at first, plus one at each replay, at each automatic re-delivery after a reorg and at each re-delivery after a chain reorg is cleared.
    - `orphaned` boolean, required: true when the block of this row was later replaced by a reorg and is no longer canonical.
    - `delivered_at` string, required
  - `next_page_token` string, nullable, required

## Other responses

- `default`: Error envelope; the codes, statuses and retry rules are in root x-push-errors. 429 and 503 carry Retry-After.

---

[API](https://skmtc.dev/blockvectra/apis/blockvectra-push-api.md) · [All operations](https://skmtc.dev/blockvectra/apis/blockvectra-push-api/llms.txt) · [OpenAPI document](https://skmtc.dev/blockvectra/apis/blockvectra-push-api/revisions/396dd7621c54?raw)
