HTTP Status Codes Reference

Complete list of HTTP status codes

1xx 1xx Informational

100
Continue
Server received request headers, client should proceed
101
Switching Protocols
Server is switching protocols as requested
102
Processing
Server is processing the request (WebDAV)
103
Early Hints
Used to return response headers before final response

2xx 2xx Success

200
OK
Request succeeded
201
Created
Request succeeded, new resource created
202
Accepted
Request accepted for processing
203
Non-Authoritative Information
Metadata from third-party copy
204
No Content
No content to send, headers may be useful
205
Reset Content
Reset the document that sent this request
206
Partial Content
Partial resource due to Range header
207
Multi-Status
Multiple status codes (WebDAV)
208
Already Reported
DAV binding already reported (WebDAV)

3xx 3xx Redirection

300
Multiple Choices
Multiple options for the resource
301
Moved Permanently
Resource moved permanently to new URL
302
Found
Resource temporarily moved to different URL
303
See Other
Response found at another URI using GET
304
Not Modified
Resource not modified since last request
307
Temporary Redirect
Temporary redirect, keep HTTP method
308
Permanent Redirect
Permanent redirect, keep HTTP method

4xx 4xx Client Error

400
Bad Request
Server cannot process due to client error
401
Unauthorized
Authentication required
402
Payment Required
Reserved for future use
403
Forbidden
Server refuses to authorize
404
Not Found
Resource not found
405
Method Not Allowed
HTTP method not allowed
406
Not Acceptable
No content conforming to Accept headers
407
Proxy Authentication Required
Proxy authentication needed
408
Request Timeout
Server timed out waiting for request
409
Conflict
Request conflicts with server state
410
Gone
Resource permanently deleted
411
Length Required
Content-Length header required
412
Precondition Failed
Precondition in headers not met
413
Payload Too Large
Request entity too large
414
URI Too Long
URI too long for server
415
Unsupported Media Type
Media format not supported
416
Range Not Satisfiable
Range specified can't be fulfilled
417
Expectation Failed
Expect header cannot be met
418
I'm a teapot
Server refuses to brew coffee with teapot
422
Unprocessable Entity
Request well-formed but has semantic errors
423
Locked
Resource is locked (WebDAV)
424
Failed Dependency
Request failed due to previous request
425
Too Early
Server unwilling to risk early request
426
Upgrade Required
Client should switch protocols
428
Precondition Required
Request must be conditional
429
Too Many Requests
Rate limited, too many requests
431
Request Header Fields Too Large
Headers too large
451
Unavailable For Legal Reasons
Blocked for legal reasons

5xx 5xx Server Error

500
Internal Server Error
Generic server error
501
Not Implemented
Server does not support functionality
502
Bad Gateway
Invalid response from upstream server
503
Service Unavailable
Server not ready, often overloaded
504
Gateway Timeout
Gateway did not get response in time
505
HTTP Version Not Supported
HTTP version not supported
506
Variant Also Negotiates
Content negotiation error
507
Insufficient Storage
Server unable to store (WebDAV)
508
Loop Detected
Infinite loop detected (WebDAV)
510
Not Extended
Further extensions required
511
Network Authentication Required
Network authentication needed
Last updated:

About this tool

A searchable HTTP status code reference covers every standard response code grouped by class: 1xx informational, 2xx success, 3xx redirection, 4xx client error, and 5xx server error. Each entry shows the canonical name and a short explanation so you can answer "what does 422 actually mean" or "should I return 401 or 403" without leaving your editor.

How to use

  1. Type a code (404), partial name (gateway), or keyword (auth) into the search box.
  2. Browse the filtered list grouped by status class.
  3. Read the canonical name and one-line description for the matching codes.
  4. Use the colour coding to quickly spot 4xx (client error) vs 5xx (server error).
  5. Reference the result in your API design, log analysis, or error handling code.

Common use cases

  • Choosing the right status code for a new REST API endpoint.
  • Investigating a strange status code (e.g., 418, 451) you saw in a server log.
  • Deciding between 401 Unauthorized and 403 Forbidden for an auth flow.
  • Documenting expected error responses in an OpenAPI / Swagger spec.
  • Understanding why a CDN returned 503 vs 504 during an outage.
  • Mapping HTTP errors to user-facing error messages with consistent semantics.

Frequently asked questions

Q. When should I return 401 vs 403?

A. 401 means "not authenticated, present credentials"; 403 means "authenticated but not allowed". If the client has no valid session, send 401. If they are logged in but lack permission, send 403.

Q. Is 422 the same as 400?

A. Both are 4xx, but 400 means the request itself is malformed (bad JSON, missing header) while 422 means the request is well-formed but semantically invalid (validation failed).

Q. Should I always use 200 for successful POSTs?

A. 201 Created is more precise when you create a new resource and 204 No Content when you succeed but return no body. 200 is correct when you do return a representation.

Q. What does 429 mean for rate limiting?

A. 429 Too Many Requests signals the client should slow down. Pair it with a Retry-After header so clients know when to try again.