---
title: "Get events by event key"
method: GET
path: "/events/{event_key}"
tags: ["events"]
---

# Get events by event key

`GET /events/{event_key}`

## Path parameters

- `event_key` string, hex, required — All bytes data are represented as hex-encoded string prefixed with `0x` and fulfilled with two hex digits per byte. Different with `Address` type, hex-encoded bytes should not trim any zeros.

## Response `200`

Returns events

- Event[]
  - `key` string, hex, required — Event key is a global index for an event stream. It is hex-encoded BCS bytes of `EventHandle` `guid` field value, which is a combination of a `uint64` creation number and account address (without trimming leading zeros). For example, event key `0x00000000000000000000000000000000000000000a550c18` is combined by the following 2 parts: 1. `0000000000000000`: `uint64` representation of `0`. 2. `0000000000000000000000000a550c18`: 16 bytes of account address.
  - `sequence_number` string, uint64, required — Event `sequence_number` is unique id of an event in an event stream. Event `sequence_number` starts from 0 for each event key.
  - `type` string, required — String representation of an on-chain Move type tag that is exposed in transaction payload. Values: - bool - u8 - u64 - u128 - address - signer - vector: `vector<{non-reference MoveTypeId}>` - struct: `{address}::{module_name}::{struct_name}::<{generic types}>` Vector type value examples: * `vector<u8>` * `vector<vector<u64>>` * `vector<0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>>` Struct type value examples: * `0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin> * `0x1::account::Account` Note: 1. Empty chars should be ignored when comparing 2 struct tag ids. 2. When used in an URL path, should be encoded by url-encoding (AKA percent-encoding).
  - `data` string, required — Move `bool` type value is serialized into `boolean`. Move `u8` type value is serialized into `integer`. Move `u64` and `u128` type value is serialized into `string`. Move `address` type value(16 bytes Aptos account address) is serialized into hex-encoded string, which is prefixed with `0x` and leading zeros are trimmed. For example: * `0x1` * `0x1668f6be25668c1a17cd8caf6b8d2f25` Move `vector` type value is serialized into `array`, except `vector<u8>` which is serialized into hex-encoded string with `0x` prefix. For example: * `vector<u64>{255, 255}` => `["255", "255"]` * `vector<u8>{255, 255}` => `0xffff` Move `struct` type value is serialized into `object` that looks like this (except some Move stdlib types, see the following section): ```json { field1_name: field1_value, field2_name: field2_value, ...... } ``` For example: `{ "created": "0xa550c18", "role_id": "0" }` **Special serialization for Move stdlib types:** * [0x1::string::String](https://github.com/aptos-labs/aptos-core/blob/main/language/move-stdlib/docs/ascii.md) is serialized into `string`. For example, struct value `0x1::string::String{bytes: b"hello world"}` is serialized as `"hello world"` in JSON.

## Other responses

- `400` — Bad request due to a client error: invalid request headers, parameters or body. Client should not retry the request without modification.
- `404` — Resource or data not found. Client may retry the request if it is waiting for transaction execution or ledger synchronization.
- `500` — Server internal error, caused by unexpected issues.

---

[API](https://skmtc.dev/apscan/apis/aptos-dev-api-specification.md) · [All operations](https://skmtc.dev/apscan/apis/aptos-dev-api-specification/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/apscan/aptos-dev-api-specification/revisions/45caa72817c2/schema)
