[
  {
    "category": "1xx",
    "code": 100,
    "description": "The initial part of the request was received; the client should continue sending the rest, or ignore this if the request is already finished.",
    "name": "Continue"
  },
  {
    "category": "1xx",
    "code": 101,
    "description": "The server agrees to switch protocols, as requested by the client's Upgrade header (commonly used to open a WebSocket connection).",
    "name": "Switching Protocols"
  },
  {
    "category": "1xx",
    "code": 102,
    "description": "WebDAV: the server has accepted the request but processing will take a while; prevents the client from timing out.",
    "name": "Processing"
  },
  {
    "category": "1xx",
    "code": 103,
    "description": "Lets the server send preload/preconnect hints for resources before the final response headers are ready.",
    "name": "Early Hints"
  },
  {
    "category": "2xx",
    "code": 200,
    "description": "The request succeeded; the response body contains the requested resource or result.",
    "name": "OK"
  },
  {
    "category": "2xx",
    "code": 201,
    "description": "The request succeeded and a new resource was created as a result, usually returned from a POST.",
    "name": "Created"
  },
  {
    "category": "2xx",
    "code": 202,
    "description": "The request was accepted for processing, but that processing isn't complete yet (async/queued work).",
    "name": "Accepted"
  },
  {
    "category": "2xx",
    "code": 203,
    "description": "The request succeeded, but the returned metadata is from a copy or transforming proxy, not the origin server.",
    "name": "Non-Authoritative Information"
  },
  {
    "category": "2xx",
    "code": 204,
    "description": "The request succeeded but there's no content to return \u2014 common for successful DELETE or PUT requests.",
    "name": "No Content"
  },
  {
    "category": "2xx",
    "code": 205,
    "description": "The request succeeded; the client should reset the document view that sent the request (e.g. clear a form).",
    "name": "Reset Content"
  },
  {
    "category": "2xx",
    "code": 206,
    "description": "Returns only part of a resource, as requested via a Range header \u2014 used for resumable downloads and video streaming.",
    "name": "Partial Content"
  },
  {
    "category": "2xx",
    "code": 207,
    "description": "WebDAV: the body is an XML document that can describe multiple independent status codes for sub-operations.",
    "name": "Multi-Status"
  },
  {
    "category": "2xx",
    "code": 208,
    "description": "WebDAV: avoids repeatedly listing the members of a binding that were already reported in a previous DAV response.",
    "name": "Already Reported"
  },
  {
    "category": "2xx",
    "code": 226,
    "description": "The server fulfilled the request using one or more instance-manipulations applied to the current instance.",
    "name": "IM Used"
  },
  {
    "category": "3xx",
    "code": 300,
    "description": "There are multiple possible responses for the request; the client or user should pick one (rarely used in practice).",
    "name": "Multiple Choices"
  },
  {
    "category": "3xx",
    "code": 301,
    "description": "The resource has permanently moved to a new URL; clients and search engines should update their links.",
    "name": "Moved Permanently"
  },
  {
    "category": "3xx",
    "code": 302,
    "description": "The resource temporarily lives at a different URL; the original URL should still be used for future requests.",
    "name": "Found"
  },
  {
    "category": "3xx",
    "code": 303,
    "description": "Redirects the client to a different resource using GET, regardless of the original request's method \u2014 common after a POST.",
    "name": "See Other"
  },
  {
    "category": "3xx",
    "code": 304,
    "description": "The cached version the client already has is still valid, so the body isn't resent \u2014 saves bandwidth via conditional requests.",
    "name": "Not Modified"
  },
  {
    "category": "3xx",
    "code": 305,
    "description": "Deprecated: the requested resource must be accessed through the proxy in the response's Location header.",
    "name": "Use Proxy"
  },
  {
    "category": "3xx",
    "code": 306,
    "description": "Reserved but no longer used; defined in an earlier HTTP spec version.",
    "name": "(Unused)"
  },
  {
    "category": "3xx",
    "code": 307,
    "description": "Like 302, but guarantees the method and body of the original request are repeated on the new URL.",
    "name": "Temporary Redirect"
  },
  {
    "category": "3xx",
    "code": 308,
    "description": "Like 301, but guarantees the method and body of the original request are repeated on the new URL.",
    "name": "Permanent Redirect"
  },
  {
    "category": "4xx",
    "code": 400,
    "description": "The server can't process the request due to a client error \u2014 malformed syntax, invalid request message framing, etc.",
    "name": "Bad Request"
  },
  {
    "category": "4xx",
    "code": 401,
    "description": "Authentication is required and either missing or invalid; despite the name, this is really about identity, not permission.",
    "name": "Unauthorized"
  },
  {
    "category": "4xx",
    "code": 402,
    "description": "Reserved for future use; occasionally repurposed by APIs for billing/paywall scenarios.",
    "name": "Payment Required"
  },
  {
    "category": "4xx",
    "code": 403,
    "description": "The server understood the request and refuses to authorize it \u2014 the client's identity is known but not permitted.",
    "name": "Forbidden"
  },
  {
    "category": "4xx",
    "code": 404,
    "description": "The server can't find the requested resource; the most well-known status code on the web.",
    "name": "Not Found"
  },
  {
    "category": "4xx",
    "code": 405,
    "description": "The request method (e.g. DELETE) isn't supported for this particular resource.",
    "name": "Method Not Allowed"
  },
  {
    "category": "4xx",
    "code": 406,
    "description": "The server can't produce a response matching the Accept headers sent by the client.",
    "name": "Not Acceptable"
  },
  {
    "category": "4xx",
    "code": 407,
    "description": "Like 401, but authentication must happen with a proxy sitting in front of the server.",
    "name": "Proxy Authentication Required"
  },
  {
    "category": "4xx",
    "code": 408,
    "description": "The server timed out waiting for the request; the client took too long to send it.",
    "name": "Request Timeout"
  },
  {
    "category": "4xx",
    "code": 409,
    "description": "The request conflicts with the current state of the resource on the server (e.g. an edit conflict).",
    "name": "Conflict"
  },
  {
    "category": "4xx",
    "code": 410,
    "description": "The resource is permanently gone with no forwarding address \u2014 stronger than 404, signals it won't come back.",
    "name": "Gone"
  },
  {
    "category": "4xx",
    "code": 411,
    "description": "The server requires a Content-Length header that the request didn't include.",
    "name": "Length Required"
  },
  {
    "category": "4xx",
    "code": 412,
    "description": "A condition in the request's headers (e.g. If-Match) wasn't met by the server.",
    "name": "Precondition Failed"
  },
  {
    "category": "4xx",
    "code": 413,
    "description": "The request body is larger than the server is willing or able to process.",
    "name": "Payload Too Large"
  },
  {
    "category": "4xx",
    "code": 414,
    "description": "The requested URI is longer than the server is willing to interpret.",
    "name": "URI Too Long"
  },
  {
    "category": "4xx",
    "code": 415,
    "description": "The request body's format isn't supported by the server for this endpoint.",
    "name": "Unsupported Media Type"
  },
  {
    "category": "4xx",
    "code": 416,
    "description": "The Range header's value can't be fulfilled \u2014 usually the requested byte range is outside the resource's size.",
    "name": "Range Not Satisfiable"
  },
  {
    "category": "4xx",
    "code": 417,
    "description": "The server can't meet the requirements of the Expect request header.",
    "name": "Expectation Failed"
  },
  {
    "category": "4xx",
    "code": 418,
    "description": "An April Fools' joke from RFC 2324 (Hyper Text Coffee Pot Control Protocol): a teapot refuses to brew coffee. Still formally reserved in RFC 9110 and used by some APIs/tools as an Easter egg.",
    "name": "I'm a teapot"
  },
  {
    "category": "4xx",
    "code": 421,
    "description": "The request was routed to a server that can't produce a response for the combination of scheme and authority in the URI.",
    "name": "Misdirected Request"
  },
  {
    "category": "4xx",
    "code": 422,
    "description": "The request is well-formed but semantically invalid \u2014 common for validation errors on otherwise-valid JSON.",
    "name": "Unprocessable Entity"
  },
  {
    "category": "4xx",
    "code": 423,
    "description": "WebDAV: the resource being accessed is locked.",
    "name": "Locked"
  },
  {
    "category": "4xx",
    "code": 424,
    "description": "WebDAV: the request failed because it depended on another request that failed.",
    "name": "Failed Dependency"
  },
  {
    "category": "4xx",
    "code": 425,
    "description": "The server is unwilling to risk processing a request that might be replayed (used with TLS 0-RTT early data).",
    "name": "Too Early"
  },
  {
    "category": "4xx",
    "code": 426,
    "description": "The server refuses to continue on the current protocol and wants the client to switch, per the Upgrade header.",
    "name": "Upgrade Required"
  },
  {
    "category": "4xx",
    "code": 428,
    "description": "The server requires the request to be conditional (e.g. include If-Match) to avoid the lost-update problem.",
    "name": "Precondition Required"
  },
  {
    "category": "4xx",
    "code": 429,
    "description": "The client has sent too many requests in a given time window \u2014 the standard status code for rate limiting.",
    "name": "Too Many Requests"
  },
  {
    "category": "4xx",
    "code": 431,
    "description": "The request's header fields are too large for the server to process.",
    "name": "Request Header Fields Too Large"
  },
  {
    "category": "4xx",
    "code": 451,
    "description": "The resource is withheld due to a legal demand, such as a government-mandated content block. Named after Fahrenheit 451.",
    "name": "Unavailable For Legal Reasons"
  },
  {
    "category": "5xx",
    "code": 500,
    "description": "A generic catch-all for an unexpected condition on the server that prevented it from fulfilling the request.",
    "name": "Internal Server Error"
  },
  {
    "category": "5xx",
    "code": 501,
    "description": "The server doesn't support the functionality required to fulfill the request (e.g. an unrecognized method).",
    "name": "Not Implemented"
  },
  {
    "category": "5xx",
    "code": 502,
    "description": "A server acting as a gateway or proxy got an invalid response from the upstream server it was contacting.",
    "name": "Bad Gateway"
  },
  {
    "category": "5xx",
    "code": 503,
    "description": "The server is temporarily unable to handle the request \u2014 overloaded or down for maintenance; often paired with a Retry-After header.",
    "name": "Service Unavailable"
  },
  {
    "category": "5xx",
    "code": 504,
    "description": "A gateway or proxy didn't get a timely response from the upstream server it needed to complete the request.",
    "name": "Gateway Timeout"
  },
  {
    "category": "5xx",
    "code": 505,
    "description": "The server doesn't support the HTTP protocol version used in the request.",
    "name": "HTTP Version Not Supported"
  },
  {
    "category": "5xx",
    "code": 506,
    "description": "The server has an internal content-negotiation configuration error.",
    "name": "Variant Also Negotiates"
  },
  {
    "category": "5xx",
    "code": 507,
    "description": "WebDAV: the server can't store the representation needed to complete the request.",
    "name": "Insufficient Storage"
  },
  {
    "category": "5xx",
    "code": 508,
    "description": "WebDAV: the server detected an infinite loop while processing a request with sub-requests.",
    "name": "Loop Detected"
  },
  {
    "category": "5xx",
    "code": 510,
    "description": "Further extensions to the request are required for the server to fulfill it.",
    "name": "Not Extended"
  },
  {
    "category": "5xx",
    "code": 511,
    "description": "The client needs to authenticate to gain network access \u2014 common on captive portals (hotel/airport Wi-Fi).",
    "name": "Network Authentication Required"
  }
]
