--- title: 'Opcodes' description: 'Gateway opcodes used for communication between client and server.' --- Gateway opcodes indicate the type of payload being sent or received. Clients send and receive different opcodes depending on their role in the connection lifecycle. ## Opcode reference | Opcode | Name | Description | Client Action | |--------|------|-------------|---------------| | `0` | `DISPATCH` | Dispatches an event to the client | Receive | | `1` | `HEARTBEAT` | Fired periodically to keep the connection alive | Send/Receive | | `2` | `IDENTIFY` | Starts a new session during the initial handshake | Send | | `3` | `PRESENCE_UPDATE` | Updates the client presence | Send | | `4` | `VOICE_STATE_UPDATE` | Joins, moves, or disconnects from a voice channel | Send | | `5` | `VOICE_SERVER_PING` | Pings the voice server | Send | | `6` | `RESUME` | Resumes a previous session after a disconnect | Send | | `7` | `RECONNECT` | Indicates the client should reconnect to the gateway | Receive | | `8` | `REQUEST_GUILD_MEMBERS` | Requests members for a guild | Send | | `9` | `INVALID_SESSION` | Session has been invalidated; client should reconnect and identify | Receive | | `10` | `HELLO` | Sent immediately after connecting; contains heartbeat interval | Receive | | `11` | `HEARTBEAT_ACK` | Acknowledgement of a heartbeat | Receive | | `12` | `GATEWAY_ERROR` | Indicates an error occurred while processing a gateway message | Receive | | `14` | `LAZY_REQUEST` | Requests lazy-loaded guild data | Send |