If the URL represents a resource that never existed return 404 Not Found If the URL represents a resource that is an empty list return an empty list and 200 OK. Example: { total: 0, items: [] } If the URL represents a resource that used to exist return 410 Gone. Regarding Lego Stormtrooper's dialog: Alien: Computer, please tell me all planets that humans inhabit. GET /planets?inhabitedBy=humans Computer: 200 OK. { total: 1, items:[{name:'Earth'}] } Alien: Computer, please tell me about Earth. GET /planets/earth Computer: 200 OK. {name:'Earth', status: 'Mostly Harmless'} Alien: Computer, please tell me about all planets humans inhabit, outside the asteroid belt. GET /planets?inhabitedBy=humans&distanceFromSun=lots Computer: 200 OK. {total:0, items:[] } Alien: Computer, please destroy Earth. DELETE /planets/earth Computer: 204 No Content. (or 202 Accepted if it takes some time to destroy Earth) Alien: Computer, please tell me about Earth. GET /planets/earth Computer: 410 Gone Alien: Computer, please tell me all planets that humans inhabit. GET /planets?inhabitedBy=humans Computer: 200 OK 0 {total: 0, items:[] } Alien: Victory for the mighty Irken Empire!