Every team builds APIs. Few build ones that survive their second rewrite. After inheriting three different REST APIs in as many years — one with endpoints named /getAllUsers, another that returned { "status": "ok" } for both success and 500 errors — I started keeping a list of the practices that actually distinguish robust APIs from ones that generate PagerDuty alerts at 3 AM.

This guide distills six rules I've validated across production services handling tens of millions of requests. None are theoretical. All come with working code.

1. Resource-Oriented Naming — Not Action-Oriented

The single biggest smell in a REST API is action verbs in URLs:

# Bad — these are RPC, not REST