{"format":"opendoc-document","version":1,"url":"https://docs.storm.tg/developers/operations/geteventsbyaccount","title":"List account events","description":"GET /v3-node-0/smartaccount/{account}/events: Returns protocol events filtered by smart account address with pagination","kind":"api-operation","locale":"en","inLanguage":"en","lastModified":"2026-10-09T14:26:32+03:00","revision":"d36475e7b456c737fae6933fa27b7e1bc2687f2c19291b05725ab2c4e8f79d7a","section":{"title":"For Developers","url":"https://docs.storm.tg/developers"},"representations":{"html":"https://docs.storm.tg/developers/operations/geteventsbyaccount","markdown":"https://docs.storm.tg/developers/operations/geteventsbyaccount.md","json":"https://docs.storm.tg/developers/operations/geteventsbyaccount.json"},"translations":{"en":"https://docs.storm.tg/developers/operations/geteventsbyaccount"},"operation":{"id":"GetEventsByAccount","method":"GET","path":"/v3-node-0/smartaccount/{account}/events","summary":"List account events","description":"Returns protocol events filtered by smart account address with pagination","tags":["Smart accounts"],"deprecated":false,"parameters":[{"name":"account","location":"path","schema":{"type":"string","types":["string"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]},"type":"string","required":true,"description":"Smart account address","example":"string"},{"name":"order","location":"query","schema":{"type":"string","types":["string"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]},"type":"string","required":false,"description":"Sort order (ASC or DESC, default: DESC)","example":"string"},{"name":"limit","location":"query","schema":{"type":"integer","types":["integer"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]},"type":"integer","required":false,"description":"Maximum number of events to return (default: 100, max: 1000)","example":"0"},{"name":"offset","location":"query","schema":{"type":"integer","types":["integer"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]},"type":"integer","required":false,"description":"Number of events to skip (default: 0)","example":"0"},{"name":"event_type","location":"query","schema":{"type":"string","types":["string"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]},"type":"string","required":false,"description":"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","example":"string"}],"bodies":[],"responses":[{"status":"200","description":"OK","mediaType":"application/json","properties":[],"schema":{"type":"object[]","types":["array"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"items":{"type":"object","types":["object"],"reference":"#/components/schemas/Trading.proto.ProtocolEvents","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"account","type":"string","required":false,"example":"string","schema":{"type":"string","types":["string"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"event","type":"any","required":false,"description":"Types that are valid to be assigned to Event:\n\n\t*ProtocolEvents_TradeNotificationV2\n\t*ProtocolEvents_ReferralFees\n\t*ProtocolEvents_BundleExternalBody\n\t*ProtocolEvents_NotifyUpdatePosition\n\t*ProtocolEvents_AddGasUnits\n\t*ProtocolEvents_Withdraw\n\t*ProtocolEvents_AddPublicKey\n\t*ProtocolEvents_RemovePublicKey\n\t*ProtocolEvents_RemoveAllExceptCurrentPublicKey\n\t*ProtocolEvents_DepositNotify\n\t*ProtocolEvents_DepositNotifyWithDeploy\n\t*ProtocolEvents_Excess\n\t*ProtocolEvents_TakePositionV2\n\t*ProtocolEvents_FailedBundleExecution\n\t*ProtocolEvents_WithdrawRequest\n\t*ProtocolEvents_InitSa","schema":{"type":"any","types":[],"description":"Types that are valid to be assigned to Event:\n\n\t*ProtocolEvents_TradeNotificationV2\n\t*ProtocolEvents_ReferralFees\n\t*ProtocolEvents_BundleExternalBody\n\t*ProtocolEvents_NotifyUpdatePosition\n\t*ProtocolEvents_AddGasUnits\n\t*ProtocolEvents_Withdraw\n\t*ProtocolEvents_AddPublicKey\n\t*ProtocolEvents_RemovePublicKey\n\t*ProtocolEvents_RemoveAllExceptCurrentPublicKey\n\t*ProtocolEvents_DepositNotify\n\t*ProtocolEvents_DepositNotifyWithDeploy\n\t*ProtocolEvents_Excess\n\t*ProtocolEvents_TakePositionV2\n\t*ProtocolEvents_FailedBundleExecution\n\t*ProtocolEvents_WithdrawRequest\n\t*ProtocolEvents_InitSa","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"hash","type":"integer[]","required":false,"example":"[\n  0\n]","schema":{"type":"integer[]","types":["array"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"items":{"type":"integer","types":["integer"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]},"variants":[]}},{"name":"sender","type":"object","required":false,"example":"{\n  \"value\": \"string\"\n}","schema":{"type":"object","types":["object"],"reference":"#/components/schemas/Trading.proto.Address","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"value","type":"string","required":false,"example":"string","schema":{"type":"string","types":["string"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}}],"variants":[]}},{"name":"sequence","type":"integer","required":false,"example":"0","schema":{"type":"integer","types":["integer"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"timestamp","type":"integer","required":false,"example":"0","schema":{"type":"integer","types":["integer"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"tx_status","type":"object","required":false,"example":"{\n  \"action_result_code\": 0,\n  \"exit_code\": 0,\n  \"success\": true\n}","schema":{"type":"object","types":["object"],"reference":"#/components/schemas/Trading.proto.TransactionStatus","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"action_result_code","type":"integer","required":false,"example":"0","schema":{"type":"integer","types":["integer"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"exit_code","type":"integer","required":false,"example":"0","schema":{"type":"integer","types":["integer"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"success","type":"boolean","required":false,"example":"true","schema":{"type":"boolean","types":["boolean"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}}],"variants":[]}}],"variants":[]},"variants":[]},"example":"[\n  {\n    \"account\": \"string\",\n    \"hash\": [\n      0\n    ],\n    \"sender\": {\n      \"value\": \"string\"\n    },\n    \"sequence\": 0,\n    \"timestamp\": 0,\n    \"tx_status\": {\n      \"action_result_code\": 0,\n      \"exit_code\": 0,\n      \"success\": true\n    }\n  }\n]","headers":[]}],"security":[],"codeSamples":[{"label":"cURL","language":"bash","source":"curl --request GET 'https://api.storm.tg/v3-node-0/smartaccount/{account}/events' \\\n  --header 'Accept: application/json'"},{"label":"JavaScript","language":"javascript","source":"const response = await fetch(\"https://api.storm.tg/v3-node-0/smartaccount/{account}/events\", {\n  method: \"GET\",\n  headers: {\n    \"Accept\": \"application/json\"\n  },\n});\nconsole.log(response.status, await response.text());"},{"label":"Python","language":"python","source":"import requests\n\nresponse = requests.request(\n    \"GET\",\n    \"https://api.storm.tg/v3-node-0/smartaccount/{account}/events\",\n    headers={\"Accept\":\"application/json\"},\n    timeout=30,\n)\nprint(response.status_code, response.text)"}]},"breadcrumbs":[{"title":"⚡ About Storm Trade","url":"https://docs.storm.tg"},{"title":"For Developers","url":"https://docs.storm.tg/developers"},{"title":"List account events","url":"https://docs.storm.tg/developers/operations/geteventsbyaccount"}],"headings":[{"depth":2,"id":"parameters","title":"Parameters"},{"depth":2,"id":"examples","title":"Examples"},{"depth":2,"id":"responses","title":"Responses"}],"markdown":"# List account events\n\n`GET /v3-node-0/smartaccount/{account}/events`\n\nReturns protocol events filtered by smart account address with pagination\n\n## Authorization\n\n\n\n## Parameters\n\n- path: account (string; required). Smart account address\n\nType: string\n\n- query: order (string; optional). Sort order (ASC or DESC, default: DESC)\n\nType: string\n\n- query: limit (integer; optional). Maximum number of events to return (default: 100, max: 1000)\n\nType: integer\n\n- query: offset (integer; optional). Number of events to skip (default: 0)\n\nType: integer\n\n- 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\n\nType: string\n\n## Example · cURL\n\n```bash\ncurl --request GET 'https://api.storm.tg/v3-node-0/smartaccount/{account}/events' \\\n  --header 'Accept: application/json'\n```\n\n## Example · JavaScript\n\n```javascript\nconst response = await fetch(\"https://api.storm.tg/v3-node-0/smartaccount/{account}/events\", {\n  method: \"GET\",\n  headers: {\n    \"Accept\": \"application/json\"\n  },\n});\nconsole.log(response.status, await response.text());\n```\n\n## Example · Python\n\n```python\nimport requests\n\nresponse = requests.request(\n    \"GET\",\n    \"https://api.storm.tg/v3-node-0/smartaccount/{account}/events\",\n    headers={\"Accept\":\"application/json\"},\n    timeout=30,\n)\nprint(response.status_code, response.text)\n```\n\n## Response 200 · Trading.proto.ProtocolEvents\n\n**200** application/json — OK\n\nType: object[]\n\n[]Schema: Trading.proto.ProtocolEvents\n\n[]Type: object\n\n[]Required fields: none\n\n- []account (string; optional)\n\n[]account example: string\n\n[]account.Type: string\n\n- []event (any; optional)\n\n[]event.Type: any\n\n[]event.Types that are valid to be assigned to Event:\n\n\t*ProtocolEvents_TradeNotificationV2\n\t*ProtocolEvents_ReferralFees\n\t*ProtocolEvents_BundleExternalBody\n\t*ProtocolEvents_NotifyUpdatePosition\n\t*ProtocolEvents_AddGasUnits\n\t*ProtocolEvents_Withdraw\n\t*ProtocolEvents_AddPublicKey\n\t*ProtocolEvents_RemovePublicKey\n\t*ProtocolEvents_RemoveAllExceptCurrentPublicKey\n\t*ProtocolEvents_DepositNotify\n\t*ProtocolEvents_DepositNotifyWithDeploy\n\t*ProtocolEvents_Excess\n\t*ProtocolEvents_TakePositionV2\n\t*ProtocolEvents_FailedBundleExecution\n\t*ProtocolEvents_WithdrawRequest\n\t*ProtocolEvents_InitSa\n\n- []hash (integer[]; optional)\n\n[]hash example: [\n  0\n]\n\n[]hash.Type: integer[]\n\n[]hash.[]Type: integer\n\n- []sender (object; optional)\n\n[]sender example: {\n  \"value\": \"string\"\n}\n\n[]sender.Schema: Trading.proto.Address\n\n[]sender.Type: object\n\n[]sender.Required fields: none\n\n- []sender.value (string; optional)\n\n[]sender.value example: string\n\n[]sender.value.Type: string\n\n- []sequence (integer; optional)\n\n[]sequence example: 0\n\n[]sequence.Type: integer\n\n- []timestamp (integer; optional)\n\n[]timestamp example: 0\n\n[]timestamp.Type: integer\n\n- []tx_status (object; optional)\n\n[]tx_status example: {\n  \"action_result_code\": 0,\n  \"exit_code\": 0,\n  \"success\": true\n}\n\n[]tx_status.Schema: Trading.proto.TransactionStatus\n\n[]tx_status.Type: object\n\n[]tx_status.Required fields: none\n\n- []tx_status.action_result_code (integer; optional)\n\n[]tx_status.action_result_code example: 0\n\n[]tx_status.action_result_code.Type: integer\n\n- []tx_status.exit_code (integer; optional)\n\n[]tx_status.exit_code example: 0\n\n[]tx_status.exit_code.Type: integer\n\n- []tx_status.success (boolean; optional)\n\n[]tx_status.success example: true\n\n[]tx_status.success.Type: boolean\n\nExample\n\n\n\n```json\n[\n  {\n    \"account\": \"string\",\n    \"hash\": [\n      0\n    ],\n    \"sender\": {\n      \"value\": \"string\"\n    },\n    \"sequence\": 0,\n    \"timestamp\": 0,\n    \"tx_status\": {\n      \"action_result_code\": 0,\n      \"exit_code\": 0,\n      \"success\": true\n    }\n  }\n]\n```","text":"List account events Returns protocol events filtered by smart account address with pagination GET /v3-node-0/smartaccount/{account}/events Smart accounts account Smart account address string order Sort order (ASC or DESC, default: DESC) string limit Maximum number of events to return (default: 100, max: 1000) integer offset Number of events to skip (default: 0) integer event_type 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 string 200 OK","api":{"title":"Storm API reference","version":"3.0","documentation":"https://docs.storm.tg/developers/overview","playgroundServer":"https://api.storm.tg"}}