HTTP 201 Created vs 300 Multiple Choices
HTTP 201 (Created) is a 2xx Success response, while 300 (Multiple Choices) is a 3xx Redirection response. 201 indicates that the request succeeded and a new resource was created. Typically returned after POST or PUT requests that create a new entity. In contrast, 300 means that the request has more than one possible response. The client should choose one of them.
Description
The request succeeded and a new resource was created. Typically returned after POST or PUT requests that create a new entity.
When You See It
After successfully creating a new user, post, order, or other resource via a REST API.
How to Fix
No fix needed. Check the Location header for the URL of the new resource.
Description
The request has more than one possible response. The client should choose one of them.
When You See It
When a resource is available in multiple formats (e.g., different languages or media types).
How to Fix
Select the appropriate resource variant. Send an Accept header with your preferred content type.
Key Differences
201 is a 2xx Success response, while 300 is a 3xx Redirection response.
HTTP 201: The request succeeded and a new resource was created. Typically returned after POST or PUT requests that create a new entity.
HTTP 300: The request has more than one possible response. The client should choose one of them.
You encounter 201 when after successfully creating a new user, post, order, or other resource via a REST API.
You encounter 300 when when a resource is available in multiple formats (e.g., different languages or media types).
When to Use Which
For 201 (Created): No fix needed. Check the Location header for the URL of the new resource. For 300 (Multiple Choices): Select the appropriate resource variant. Send an Accept header with your preferred content type.