Every request sent from an X client to the X server in the X11 protocol is identified by an opcode. Opcodes 0-127 are reserved for the core X11 protocol. Opcodes 128-255 are used by extensions.

For the core protocol request opcodes, you can find their definitions in any of these places:

Opcodes 128-255 are dynamically assigned to X extensions, depending on which are supported and active in your current X server version/configuration. To see which are which in your currently running X server, run:

        xdpyinfo -queryExt | grep opcode

Each extension is assigned a single opcode from that range, also known as it's “major opcode.” For each operation provided by that extension, typically a second byte is used as a “minor opcode.” Minor opcodes for each extension are defined by the extension. For definitions of those, see any of these: