The Richardson Maturity Model (RMM) grades how "RESTful" an API is across four levels, and HATEOAS is the top level — the constraint most people skip.
The four levels
Level 0 — "The Swamp of POX": one URI, one method (RPC over HTTP).
POST /api { "action": "getUser", "id": 42 }
Level 1 — Resources: many URIs, but still one verb.
POST /users/42 , POST /users/42/delete
Level 2 — HTTP Verbs: proper methods + status codes (where most "REST" APIs live).
GET /users/42 → 200 , DELETE /users/42 → 204
Level 3 — Hypermedia Controls (HATEOAS): responses link to what you can do next.
Most production "REST" APIs are — correct resources, methods, and status codes. That's usually good enough, and it's a perfectly reasonable target.
