Every HTTP response begins with a three-digit status code that tells you, before you read a single byte of
the body, whether the request worked. The first digit sets the category: 2xx succeeded,
4xx means your request was wrong, and 5xx means the server failed. Reading it
correctly is the first step in debugging any API call — you can check it for any endpoint with the
API tester.
1xx — Informational
The request was received and the process is continuing. These are interim responses you rarely handle directly.
| Code | Meaning |
|---|---|
100 Continue | The server received the request headers and the client should proceed to send the request body. |
101 Switching Protocols | The server is switching to a different protocol as requested by the client's Upgrade header. |
102 Processing | The server has accepted the request but has not yet completed it. |
103 Early Hints | The server is sending preliminary headers, typically Link headers for preloading, before the final response. |
2xx — Success
The request was received, understood and accepted.
| Code | Meaning |
|---|---|
200 OK | The request succeeded and the response body contains the result. |
201 Created | The request succeeded and a new resource was created as a result. |
202 Accepted | The request was accepted for processing, but the processing has not finished. |
204 No Content | The request succeeded and there is deliberately no response body. |
206 Partial Content | The server is delivering only part of the resource, as requested by a Range header. |
3xx — Redirection
Further action is needed to complete the request, usually following a different URL.
| Code | Meaning |
|---|---|
301 Moved Permanently | The resource has permanently moved to the URL in the Location header. |
302 Found | The resource is temporarily at a different URL, but future requests should still use the original. |
304 Not Modified | The cached copy the client already has is still valid, so no body is sent. |
303 See Other | The response to the request can be found at another URL, and should be retrieved with GET. |
307 Temporary Redirect | Like 302, but the HTTP method and body must be preserved when following the redirect. |
308 Permanent Redirect | Like 301, but the method and body must be preserved. |
4xx — Client Error
The request contains bad syntax or cannot be fulfilled. Something about the request needs to change.
| Code | Meaning |
|---|---|
400 Bad Request | The server could not understand the request because it is malformed. |
401 Unauthorized | The request lacks valid authentication credentials. Despite the name, this means unauthenticated. |
402 Payment Required | The request cannot be processed until payment is made. |
403 Forbidden | The server understood the request and knows who you are, but refuses to authorise it. |
404 Not Found | The server cannot find the requested resource. |
405 Method Not Allowed | The endpoint exists but does not support the HTTP method you used. |
406 Not Acceptable | The server cannot produce a response matching the client's Accept header. |
408 Request Timeout | The server timed out waiting for the client to finish sending the request. |
409 Conflict | The request conflicts with the current state of the resource. |
410 Gone | The resource was deliberately removed and will not come back. |
413 Payload Too Large | The request body is larger than the server is willing to process. |
411 Length Required | The server refuses the request because it does not specify a Content-Length header. |
412 Precondition Failed | A condition the client set in the request headers evaluated to false on the server. |
415 Unsupported Media Type | The request body is in a format the endpoint does not accept. |
422 Unprocessable Entity | The syntax is valid but the content fails the server's validation rules. |
429 Too Many Requests | You have sent too many requests in a given amount of time and are being rate limited. |
428 Precondition Required | The server requires the request to be conditional. |
431 Request Header Fields Too Large | The server refuses to process the request because its headers are too large. |
451 Unavailable For Legal Reasons | The resource is unavailable because of a legal demand. |
5xx — Server Error
The server failed to fulfil an apparently valid request. The problem is on the server side.
| Code | Meaning |
|---|---|
500 Internal Server Error | The server hit an unexpected condition and could not complete the request. |
501 Not Implemented | The server does not support the functionality required to fulfil the request. |
502 Bad Gateway | A server acting as a gateway or proxy received an invalid response from the upstream server. |
503 Service Unavailable | The server is temporarily unable to handle the request. |
504 Gateway Timeout | A gateway or proxy did not receive a timely response from the upstream server. |
507 Insufficient Storage | The server cannot store the representation needed to complete the request. |
Debugging by status code class
A 4xx means the fix is in your request: check the
method, the URL, the
headers and the body. The most common culprits are a missing
Content-Type, a malformed Authorization header, or a typo in the path.
A 5xx means the fix is on the server, and resending the identical request usually will not
help. Capture the exact request that reproduces it — the API tester's
Copy as cURL button gives you something you can hand straight to whoever owns the API.