Clients request events from relays using filters. A filter is a JSON object specifying what you want: you can filter by event IDs, authors (pubkeys), kinds, tags, and time ranges. For example: give me all kind 1 events from this pubkey since yesterday. The relay returns matching events. Filters can be broad or narrow. Request all posts from everyone you follow, or just one specific event by ID. Relays can limit what filters they support: some don't allow unrestricted queries, some limit how far back you can search. The protocol defines the syntax; relays decide what they'll actually process. Understanding filters helps you understand what clients are doing under the hood.