Start here. This is the direct spoken answer to practice first.
Why this question matters
A list endpoint needs bounded result size, deterministic ordering, validated filter and sort options, and a pagination model that matches database access patterns. The public contract and supporting indexes need to evolve together as data volume grows.
I make list endpoints bounded and deterministic. The API provides a default page size, enforces a maximum, accepts only documented filters and sort fields, and always adds a unique tie-breaker such as Id to the ordering. The response returns the items plus the paging information the client needs. That prevents an ordinary list request from becoming an unlimited database and memory operation.