HTTP Status Codes

Quick reference for all HTTP status codes.

58 status codes
100
Continue
The server has received the request headers and the client should proceed to send the request body.
101
Switching Protocols
The server is switching protocols as requested by the client.
102
Processing
The server has received and is processing the request, but no response is available yet.
103
Early Hints
Used to return some response headers before final HTTP message.
200
OK
The request has succeeded. The meaning depends on the HTTP method used.
201
Created
The request has been fulfilled and a new resource has been created.
202
Accepted
The request has been accepted for processing, but the processing has not been completed.
203
Non-Authoritative Information
The returned information is from a local or third-party copy, not the original server.
204
No Content
The server successfully processed the request but is not returning any content.
205
Reset Content
The server successfully processed the request and is asking the client to reset the document view.
206
Partial Content
The server is delivering only part of the resource due to a range header sent by the client.
207
Multi-Status
Conveys information about multiple resources in situations where multiple status codes might be appropriate.
208
Already Reported
Used inside a DAV: propstat response to avoid enumerating the internal members of multiple bindings.
226
IM Used
The server has fulfilled a GET request and the response represents the result of instance-manipulations applied.
300
Multiple Choices
The request has more than one possible response. The user-agent should choose one.
301
Moved Permanently
The URL of the requested resource has been changed permanently. The new URL is given in the response.
302
Found
The URI of the requested resource has been changed temporarily. Further changes may be made in the future.
303
See Other
The server sent this response to direct the client to get the requested resource at another URI with a GET request.
304
Not Modified
Used for caching. The response has not been modified, so the client can use the cached version.
307
Temporary Redirect
The server sends this to direct the client to the requested resource at another URI with the same method used.
308
Permanent Redirect
The resource is now permanently located at another URI, specified in the response Location header.
400
Bad Request
The server could not understand the request due to invalid syntax.
401
Unauthorized
The client must authenticate itself to get the requested response.
402
Payment Required
Reserved for future use. Initially created for digital payment systems.
403
Forbidden
The client does not have access rights to the content. Unlike 401, the server knows the client identity.
404
Not Found
The server cannot find the requested resource. The URL is not recognized.
405
Method Not Allowed
The request method is known by the server but is not supported by the target resource.
406
Not Acceptable
The server cannot produce a response matching the list of acceptable values defined in the request headers.
407
Proxy Authentication Required
Similar to 401 but authentication is needed to be done by a proxy.
408
Request Timeout
The server would like to shut down this unused connection. Sent on an idle connection by some servers.
409
Conflict
This response is sent when a request conflicts with the current state of the server.
410
Gone
The requested content has been permanently deleted from the server, with no forwarding address.
411
Length Required
The server rejected the request because the Content-Length header field is not defined.
412
Precondition Failed
The client has indicated preconditions in its headers which the server does not meet.
413
Payload Too Large
The request entity is larger than limits defined by server.
414
URI Too Long
The URI requested by the client is longer than the server is willing to interpret.
415
Unsupported Media Type
The media format of the requested data is not supported by the server.
416
Range Not Satisfiable
The range specified by the Range header field in the request cannot be fulfilled.
417
Expectation Failed
The expectation indicated by the Expect request header field cannot be met by the server.
418
I'm a Teapot
The server refuses the attempt to brew coffee with a teapot. An April Fools joke from 1998.
422
Unprocessable Entity
The request was well-formed but was unable to be followed due to semantic errors.
425
Too Early
The server is unwilling to risk processing a request that might be replayed.
426
Upgrade Required
The server refuses to perform the request using the current protocol but might after the client upgrades.
428
Precondition Required
The origin server requires the request to be conditional to prevent lost update conflicts.
429
Too Many Requests
The user has sent too many requests in a given amount of time (rate limiting).
431
Request Header Fields Too Large
The server is unwilling to process the request because its header fields are too large.
451
Unavailable For Legal Reasons
The user-agent requested a resource that cannot legally be provided.
500
Internal Server Error
The server has encountered a situation it does not know how to handle.
501
Not Implemented
The request method is not supported by the server and cannot be handled.
502
Bad Gateway
The server, while working as a gateway, got an invalid response from the upstream server.
503
Service Unavailable
The server is not ready to handle the request. Common causes include maintenance or overloading.
504
Gateway Timeout
The server is acting as a gateway and cannot get a response in time from the upstream server.
505
HTTP Version Not Supported
The HTTP version used in the request is not supported by the server.
506
Variant Also Negotiates
The server has an internal configuration error: transparent content negotiation results in a circular reference.
507
Insufficient Storage
The server is unable to store the representation needed to complete the request.
508
Loop Detected
The server detected an infinite loop while processing the request.
510
Not Extended
Further extensions to the request are required for the server to fulfill it.
511
Network Authentication Required
The client needs to authenticate to gain network access.

Frequently Asked Questions

What are the HTTP status code categories?

1xx (Informational) — request received, processing. 2xx (Success) — request received, understood, accepted. 3xx (Redirection) — further action needed. 4xx (Client Error) — bad request or unauthorized. 5xx (Server Error) — server failed to fulfill a valid request. Each category has specific codes with precise meanings.

What is the difference between 301 and 302 redirects?

301 (Moved Permanently) tells browsers and search engines the resource has permanently moved — update all bookmarks and links. 302 (Found) indicates a temporary redirect — the original URL should be used for future requests. For SEO, 301 passes link equity to the new URL; 302 does not.

What does 403 vs 401 mean?

401 (Unauthorized) means the request lacks valid authentication credentials — the user needs to log in or provide a valid API key. 403 (Forbidden) means the server understood the request and the user is authenticated, but they do not have permission to access the resource. Different problems, different solutions.

What causes a 500 Internal Server Error?

500 is a generic server error indicating something went wrong on the server side. Common causes: unhandled exceptions in application code, misconfigured server, database connection failures, or insufficient server resources. The server log typically contains the specific error details — the 500 status alone does not reveal the cause.

What is HTTP 418 "I'm a teapot"?

HTTP 418 was defined in RFC 2324 (Hyper Text Coffee Pot Control Protocol) as an April Fools' joke in 1998. A teapot should return 418 when asked to brew coffee. Despite being a joke, it is a real registered status code and is sometimes used by APIs to indicate deliberate refusal to process a request or as an easter egg.