---
title: "Error events (paginated)"
method: GET
path: "/errors/events"
tags: ["Errors"]
---

# Error events (paginated)

`GET /errors/events`

## Request

- Base URL: `https://api.tatum.io/v4/logs`
- URL: `https://api.tatum.io/v4/logs/errors/events`
- Auth: API key in header `x-api-key`

Individual error events, paginated with a keyset cursor over
`(timestamp, req_id)`. Pass `next_cursor` from the previous response back as
`cursor` to fetch the next page.

## Query parameters

- `cursor` string
- `limit` integer
- `time_range` union
  - '5m'
  - '15m'
  - '1h'
  - '6h'
  - '24h'
  - '7d'
  - '14d'
  - '30d'
- `from` string, date-time
- `to` string, date-time
- `search` string
- `rank_by` union
  - 'errors'
  - 'usage'
- `filter[network][in]` string[]
- `filter[network][nin]` string[]
- `filter[chain][in]` string[]
- `filter[chain][nin]` string[]
- `filter[source][in]` string[]
- `filter[source][nin]` string[]
- `filter[operation][in]` string[]
- `filter[operation][nin]` string[]
- `filter[operation][contains]` string
- `filter[error_code][in]` integer[]
- `filter[error_code][nin]` integer[]
- `filter[error_code][between]` integer[]
- `filter[req_id][in]` string[]
- `filter[event_id][in]` string[]

## Response `200`

A keyset-paginated page of individual error events.

- ErrorEventPage: Keyset-paginated page of error events.
  - `data` ErrorEvent[], required: Rows for the current page, in the query's sort order. **May hold more than the requested `limit`.** On the event endpoints `req_id` is not unique — one request emits one error row per failing JSON-RPC batch member — so a page that would end in the middle of a request is extended with that request's remaining rows. Ending mid-request is what would let the keyset cursor skip rows, so the overshoot is deliberate. Size a viewport on the rows actually returned, not on `limit`.
    - `event_id` string, required: Opaque identifier for this individual error row, and the only stable address for it. `req_id` is NOT unique — one request emits one error row per failing JSON-RPC batch member — so use this for `GET /errors/events/{id}` and `filter[event_id][in]`, never `req_id`.
    - `req_id` string, required: Request identifier, and the join key across access and error logs. **Not unique**: a JSON-RPC batch request emits one error row per failing member, all sharing this value. Use `event_id` to address a single error.
    - `timestamp` string, required: When the error occurred, ISO-8601 UTC.
    - `operation` string, required: RPC method / operation that failed.
    - `error_code` number, required: Error / status code (JSON-RPC codes are negative).
    - `error_message` string, required: Human-readable error message.
    - `error_data` string, required: Raw error payload / provider detail (may be JSON-encoded).
    - `request_context` string, required: Serialized request context captured with the error (redacted).
    - `source` string, required: Error source / originating layer.
    - `trace_id` string, required: Distributed-trace identifier for correlating across services.
    - `json_rpc_id` string, required: JSON-RPC `id` of the failing call, when applicable.
    - `gateway_id` string, required: Gateway that served the request.
    - `interface_id` string, required: Interface (chain-network endpoint) that handled the request.
    - `chain` string, required: Blockchain the request targeted.
    - `network` string, required: Chain-qualified network the request targeted.
    - `region` string, required: Serving region.
    - `type` string, required: Error classification / bucket.
  - `next_cursor` string: Opaque cursor pointing at the row after the last one in `data`. Pass it back as `cursor` to retrieve the next page. Omitted when there are no more rows.

## Other responses

- `401`: Unauthorized

---

[API](https://skmtc.dev/tatum/apis/logs-api.md) - [All operations](https://skmtc.dev/tatum/apis/logs-api/llms.txt) - [OpenAPI document](https://skmtc.dev/tatum/apis/logs-api/revisions/e47603e0f75f?raw)
