I'm creating a RESTful API for creating users that enforces unique email addresses:
Successful POST /users
: HTTP 201 Created
If I POST
the same email address again, what should the response code be? Is 409 Conflict
the appropriate response code?
Yes, 409 is the most appropriate response code here. Even though you are most likely returning 201 on success, you're still POSTing to a resource which is described as a collection, and POSTing a duplicate email is definitely a conflict with "the current state of the resource" as a collection. You should return a response body with a description of the problem, and hyperlinks to help resolve the problem, if possible.