# List account events

`GET /v3-node-0/smartaccount/{account}/events`

Returns protocol events filtered by smart account address with pagination

## Authorization



## Parameters

- path: account (string; required). Smart account address

Type: string

- query: order (string; optional). Sort order (ASC or DESC, default: DESC)

Type: string

- query: limit (integer; optional). Maximum number of events to return (default: 100, max: 1000)

Type: integer

- query: offset (integer; optional). Number of events to skip (default: 0)

Type: integer

- query: event_type (string; optional). Filter by event type. Supports comma-separated list. Case-insensitive. Examples: DEPOSIT_NOTIFY or deposit_notify,withdraw,excess. Available types: trade_notification_v2, referral_fees, bundle_external_body, notify_update_position, add_gas_units, withdraw, add_public_key, remove_public_key, remove_all_except_current_public_key, deposit_notify, deposit_notify_with_deploy, excess, take_position_v2, failed_bundle_execution, withdraw_request

Type: string

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/v3-node-0/smartaccount/{account}/events' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/v3-node-0/smartaccount/{account}/events", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/v3-node-0/smartaccount/{account}/events",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Trading.proto.ProtocolEvents

**200** application/json — OK

Type: object[]

[]Schema: Trading.proto.ProtocolEvents

[]Type: object

[]Required fields: none

- []account (string; optional)

[]account example: string

[]account.Type: string

- []event (any; optional)

[]event.Type: any

[]event.Types that are valid to be assigned to Event:

	*ProtocolEvents_TradeNotificationV2
	*ProtocolEvents_ReferralFees
	*ProtocolEvents_BundleExternalBody
	*ProtocolEvents_NotifyUpdatePosition
	*ProtocolEvents_AddGasUnits
	*ProtocolEvents_Withdraw
	*ProtocolEvents_AddPublicKey
	*ProtocolEvents_RemovePublicKey
	*ProtocolEvents_RemoveAllExceptCurrentPublicKey
	*ProtocolEvents_DepositNotify
	*ProtocolEvents_DepositNotifyWithDeploy
	*ProtocolEvents_Excess
	*ProtocolEvents_TakePositionV2
	*ProtocolEvents_FailedBundleExecution
	*ProtocolEvents_WithdrawRequest
	*ProtocolEvents_InitSa

- []hash (integer[]; optional)

[]hash example: [
  0
]

[]hash.Type: integer[]

[]hash.[]Type: integer

- []sender (object; optional)

[]sender example: {
  "value": "string"
}

[]sender.Schema: Trading.proto.Address

[]sender.Type: object

[]sender.Required fields: none

- []sender.value (string; optional)

[]sender.value example: string

[]sender.value.Type: string

- []sequence (integer; optional)

[]sequence example: 0

[]sequence.Type: integer

- []timestamp (integer; optional)

[]timestamp example: 0

[]timestamp.Type: integer

- []tx_status (object; optional)

[]tx_status example: {
  "action_result_code": 0,
  "exit_code": 0,
  "success": true
}

[]tx_status.Schema: Trading.proto.TransactionStatus

[]tx_status.Type: object

[]tx_status.Required fields: none

- []tx_status.action_result_code (integer; optional)

[]tx_status.action_result_code example: 0

[]tx_status.action_result_code.Type: integer

- []tx_status.exit_code (integer; optional)

[]tx_status.exit_code example: 0

[]tx_status.exit_code.Type: integer

- []tx_status.success (boolean; optional)

[]tx_status.success example: true

[]tx_status.success.Type: boolean

Example



```json
[
  {
    "account": "string",
    "hash": [
      0
    ],
    "sender": {
      "value": "string"
    },
    "sequence": 0,
    "timestamp": 0,
    "tx_status": {
      "action_result_code": 0,
      "exit_code": 0,
      "success": true
    }
  }
]
```