---
title: "Get error event"
method: GET
path: "/errors/events/{id}"
tags: ["Errors"]
---

# Get error event

`GET /errors/events/{id}`

## Request

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

Returns a single error event by its `event_id`, enriched with the access
fields of its HTTP request and the other errors that request produced.

`event_id` comes from the `/errors/events` list. A raw `req_id` is not a
valid key — one request can produce many errors — and yields 400. To see
every error of one request, use `/errors/events?filter[req_id][in]=…`.

## Path parameters

- `id` string, required

## Response `200`

The error event, its request's access fields, and its siblings.

- ErrorEventDetail: One error event, enriched with the access-side fields of its HTTP request and the other errors that same request produced. `access` is request-scoped and appears once; it is `null` when no access row matches. `siblings` lists every error sharing this event's `req_id`, including this one, so a single-error request yields exactly one entry.
  - `access` ErrorEventAccess, required: Access-log fields for the HTTP request that produced an error.
    - `ua` string, nullable, required: Client user-agent string from the access log.
    - `req_time_ms` number, nullable, required: Upstream response time in milliseconds.
    - `remote_ip` string, nullable, required: Client IP as seen by the edge.
  - `siblings` ErrorEventRef[], required: Errors from the same request as this event, oldest first, including this event. Matched on `req_id` and — when the producer emits one — `trace_id`, because `req_id` is producer-generated and does collide across unrelated requests. About a third of error rows carry no `trace_id`, and those fall back to `req_id` alone, so for them an unrelated request's errors can still appear. Capped at 512 entries. When `siblings_truncated` is true this is the first 512 of the batch and the viewed event may fall outside that prefix, so a client marking "you are here" should tolerate finding no match.
    - `event_id` string, required: Opaque identifier of the sibling error, for navigating to its detail.
    - `json_rpc_id` string, required: JSON-RPC `id` of the failing call, when applicable. Empty for other protocols, and not guaranteed distinct across siblings — clients that reuse an id in one batch do occur.
    - `error_code` number, required: Error / status code (JSON-RPC codes are negative).
    - `operation` string, required: RPC method / operation that failed.
    - `error_message` string, required: Error message, truncated to 160 characters.
    - `request_context_preview` string, required: First 120 characters of the sibling's request context — the params that distinguish two otherwise-identical batch members.
  - `siblings_truncated` boolean, required: True when the request produced more errors than `siblings` can carry, so the array is a prefix rather than the whole batch.
  - `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.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `404`: Not Found

---

[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)
