- Status Codes
- Example
- fastapi.status
- HTTP_100_CONTINUE
module-attribute
- HTTP_101_SWITCHING_PROTOCOLS
module-attribute
- HTTP_102_PROCESSING
module-attribute
- HTTP_103_EARLY_HINTS
module-attribute
- HTTP_200_OK
module-attribute
- HTTP_201_CREATED
module-attribute
- HTTP_202_ACCEPTED
module-attribute
- HTTP_203_NON_AUTHORITATIVE_INFORMATION
module-attribute
- HTTP_204_NO_CONTENT
module-attribute
- HTTP_205_RESET_CONTENT
module-attribute
- HTTP_206_PARTIAL_CONTENT
module-attribute
- HTTP_207_MULTI_STATUS
module-attribute
- HTTP_208_ALREADY_REPORTED
module-attribute
- HTTP_226_IM_USED
module-attribute
- HTTP_300_MULTIPLE_CHOICES
module-attribute
- HTTP_301_MOVED_PERMANENTLY
module-attribute
- HTTP_302_FOUND
module-attribute
- HTTP_303_SEE_OTHER
module-attribute
- HTTP_304_NOT_MODIFIED
module-attribute
- HTTP_305_USE_PROXY
module-attribute
- HTTP_306_RESERVED
module-attribute
- HTTP_307_TEMPORARY_REDIRECT
module-attribute
- HTTP_308_PERMANENT_REDIRECT
module-attribute
- HTTP_400_BAD_REQUEST
module-attribute
- HTTP_401_UNAUTHORIZED
module-attribute
- HTTP_402_PAYMENT_REQUIRED
module-attribute
- HTTP_403_FORBIDDEN
module-attribute
- HTTP_404_NOT_FOUND
module-attribute
- HTTP_405_METHOD_NOT_ALLOWED
module-attribute
- HTTP_406_NOT_ACCEPTABLE
module-attribute
- HTTP_407_PROXY_AUTHENTICATION_REQUIRED
module-attribute
- HTTP_408_REQUEST_TIMEOUT
module-attribute
- HTTP_409_CONFLICT
module-attribute
- HTTP_410_GONE
module-attribute
- HTTP_411_LENGTH_REQUIRED
module-attribute
- HTTP_412_PRECONDITION_FAILED
module-attribute
- HTTP_413_REQUEST_ENTITY_TOO_LARGE
module-attribute
- HTTP_414_REQUEST_URI_TOO_LONG
module-attribute
- HTTP_415_UNSUPPORTED_MEDIA_TYPE
module-attribute
- HTTP_416_REQUESTED_RANGE_NOT_SATISFIABLE
module-attribute
- HTTP_417_EXPECTATION_FAILED
module-attribute
- HTTP_418_IM_A_TEAPOT
module-attribute
- HTTP_421_MISDIRECTED_REQUEST
module-attribute
- HTTP_422_UNPROCESSABLE_ENTITY
module-attribute
- HTTP_423_LOCKED
module-attribute
- HTTP_424_FAILED_DEPENDENCY
module-attribute
- HTTP_425_TOO_EARLY
module-attribute
- HTTP_426_UPGRADE_REQUIRED
module-attribute
- HTTP_428_PRECONDITION_REQUIRED
module-attribute
- HTTP_429_TOO_MANY_REQUESTS
module-attribute
- HTTP_431_REQUEST_HEADER_FIELDS_TOO_LARGE
module-attribute
- HTTP_451_UNAVAILABLE_FOR_LEGAL_REASONS
module-attribute
- HTTP_500_INTERNAL_SERVER_ERROR
module-attribute
- HTTP_501_NOT_IMPLEMENTED
module-attribute
- HTTP_502_BAD_GATEWAY
module-attribute
- HTTP_503_SERVICE_UNAVAILABLE
module-attribute
- HTTP_504_GATEWAY_TIMEOUT
module-attribute
- HTTP_505_HTTP_VERSION_NOT_SUPPORTED
module-attribute
- HTTP_506_VARIANT_ALSO_NEGOTIATES
module-attribute
- HTTP_507_INSUFFICIENT_STORAGE
module-attribute
- HTTP_508_LOOP_DETECTED
module-attribute
- HTTP_510_NOT_EXTENDED
module-attribute
- HTTP_511_NETWORK_AUTHENTICATION_REQUIRED
module-attribute
- WS_1000_NORMAL_CLOSURE
module-attribute
- WS_1001_GOING_AWAY
module-attribute
- WS_1002_PROTOCOL_ERROR
module-attribute
- WS_1003_UNSUPPORTED_DATA
module-attribute
- WS_1005_NO_STATUS_RCVD
module-attribute
- WS_1006_ABNORMAL_CLOSURE
module-attribute
- WS_1007_INVALID_FRAME_PAYLOAD_DATA
module-attribute
- WS_1008_POLICY_VIOLATION
module-attribute
- WS_1009_MESSAGE_TOO_BIG
module-attribute
- WS_1010_MANDATORY_EXT
module-attribute
- WS_1011_INTERNAL_ERROR
module-attribute
- WS_1012_SERVICE_RESTART
module-attribute
- WS_1013_TRY_AGAIN_LATER
module-attribute
- WS_1014_BAD_GATEWAY
module-attribute
- WS_1015_TLS_HANDSHAKE
module-attribute
- HTTP_100_CONTINUE
Status Codes
You can import the status
module from fastapi
:
from fastapi import status
status
is provided directly by Starlette.
It containes a group of named constants (variables) with integer status codes.
For example:
- 200:
status.HTTP_200_OK
- 403:
status.HTTP_403_FORBIDDEN
- etc.
It can be convenient to quickly access HTTP (and WebSocket) status codes in your app, using autocompletion for the name without having to remember the integer status codes by memory.
Read more about it in the FastAPI docs about Response Status Code.
Example
from fastapi import FastAPI, status
app = FastAPI()
@app.get("/items/", status_code=status.HTTP_418_IM_A_TEAPOT)
def read_items():
return [{"name": "Plumbus"}, {"name": "Portal Gun"}]
fastapi.status
HTTP codes See HTTP Status Code Registry: https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
And RFC 2324 - https://tools.ietf.org/html/rfc2324
HTTP_100_CONTINUE module-attribute
HTTP_100_CONTINUE = 100
HTTP_101_SWITCHING_PROTOCOLS module-attribute
HTTP_101_SWITCHING_PROTOCOLS = 101
HTTP_102_PROCESSING module-attribute
HTTP_102_PROCESSING = 102
HTTP_103_EARLY_HINTS module-attribute
HTTP_103_EARLY_HINTS = 103
HTTP_200_OK module-attribute
HTTP_200_OK = 200
HTTP_201_CREATED module-attribute
HTTP_201_CREATED = 201
HTTP_202_ACCEPTED module-attribute
HTTP_202_ACCEPTED = 202
HTTP_203_NON_AUTHORITATIVE_INFORMATION module-attribute
HTTP_203_NON_AUTHORITATIVE_INFORMATION = 203
HTTP_204_NO_CONTENT module-attribute
HTTP_204_NO_CONTENT = 204
HTTP_205_RESET_CONTENT module-attribute
HTTP_205_RESET_CONTENT = 205
HTTP_206_PARTIAL_CONTENT module-attribute
HTTP_206_PARTIAL_CONTENT = 206
HTTP_207_MULTI_STATUS module-attribute
HTTP_207_MULTI_STATUS = 207
HTTP_208_ALREADY_REPORTED module-attribute
HTTP_208_ALREADY_REPORTED = 208
HTTP_226_IM_USED module-attribute
HTTP_226_IM_USED = 226
HTTP_300_MULTIPLE_CHOICES module-attribute
HTTP_300_MULTIPLE_CHOICES = 300
HTTP_301_MOVED_PERMANENTLY module-attribute
HTTP_301_MOVED_PERMANENTLY = 301
HTTP_302_FOUND module-attribute
HTTP_302_FOUND = 302
HTTP_303_SEE_OTHER module-attribute
HTTP_303_SEE_OTHER = 303
HTTP_304_NOT_MODIFIED module-attribute
HTTP_304_NOT_MODIFIED = 304
HTTP_305_USE_PROXY module-attribute
HTTP_305_USE_PROXY = 305
HTTP_306_RESERVED module-attribute
HTTP_306_RESERVED = 306
HTTP_307_TEMPORARY_REDIRECT module-attribute
HTTP_307_TEMPORARY_REDIRECT = 307
HTTP_308_PERMANENT_REDIRECT module-attribute
HTTP_308_PERMANENT_REDIRECT = 308
HTTP_400_BAD_REQUEST module-attribute
HTTP_400_BAD_REQUEST = 400
HTTP_401_UNAUTHORIZED module-attribute
HTTP_401_UNAUTHORIZED = 401
HTTP_402_PAYMENT_REQUIRED module-attribute
HTTP_402_PAYMENT_REQUIRED = 402
HTTP_403_FORBIDDEN module-attribute
HTTP_403_FORBIDDEN = 403
HTTP_404_NOT_FOUND module-attribute
HTTP_404_NOT_FOUND = 404
HTTP_405_METHOD_NOT_ALLOWED module-attribute
HTTP_405_METHOD_NOT_ALLOWED = 405
HTTP_406_NOT_ACCEPTABLE module-attribute
HTTP_406_NOT_ACCEPTABLE = 406
HTTP_407_PROXY_AUTHENTICATION_REQUIRED module-attribute
HTTP_407_PROXY_AUTHENTICATION_REQUIRED = 407
HTTP_408_REQUEST_TIMEOUT module-attribute
HTTP_408_REQUEST_TIMEOUT = 408
HTTP_409_CONFLICT module-attribute
HTTP_409_CONFLICT = 409
HTTP_410_GONE module-attribute
HTTP_410_GONE = 410
HTTP_411_LENGTH_REQUIRED module-attribute
HTTP_411_LENGTH_REQUIRED = 411
HTTP_412_PRECONDITION_FAILED module-attribute
HTTP_412_PRECONDITION_FAILED = 412
HTTP_413_REQUEST_ENTITY_TOO_LARGE module-attribute
HTTP_413_REQUEST_ENTITY_TOO_LARGE = 413
HTTP_414_REQUEST_URI_TOO_LONG module-attribute
HTTP_414_REQUEST_URI_TOO_LONG = 414
HTTP_415_UNSUPPORTED_MEDIA_TYPE module-attribute
HTTP_415_UNSUPPORTED_MEDIA_TYPE = 415
HTTP_416_REQUESTED_RANGE_NOT_SATISFIABLE module-attribute
HTTP_416_REQUESTED_RANGE_NOT_SATISFIABLE = 416
HTTP_417_EXPECTATION_FAILED module-attribute
HTTP_417_EXPECTATION_FAILED = 417
HTTP_418_IM_A_TEAPOT module-attribute
HTTP_418_IM_A_TEAPOT = 418
HTTP_421_MISDIRECTED_REQUEST module-attribute
HTTP_421_MISDIRECTED_REQUEST = 421
HTTP_422_UNPROCESSABLE_ENTITY module-attribute
HTTP_422_UNPROCESSABLE_ENTITY = 422
HTTP_423_LOCKED module-attribute
HTTP_423_LOCKED = 423
HTTP_424_FAILED_DEPENDENCY module-attribute
HTTP_424_FAILED_DEPENDENCY = 424
HTTP_425_TOO_EARLY module-attribute
HTTP_425_TOO_EARLY = 425
HTTP_426_UPGRADE_REQUIRED module-attribute
HTTP_426_UPGRADE_REQUIRED = 426
HTTP_428_PRECONDITION_REQUIRED module-attribute
HTTP_428_PRECONDITION_REQUIRED = 428
HTTP_429_TOO_MANY_REQUESTS module-attribute
HTTP_429_TOO_MANY_REQUESTS = 429
HTTP_431_REQUEST_HEADER_FIELDS_TOO_LARGE module-attribute
HTTP_431_REQUEST_HEADER_FIELDS_TOO_LARGE = 431
HTTP_451_UNAVAILABLE_FOR_LEGAL_REASONS module-attribute
HTTP_451_UNAVAILABLE_FOR_LEGAL_REASONS = 451
HTTP_500_INTERNAL_SERVER_ERROR module-attribute
HTTP_500_INTERNAL_SERVER_ERROR = 500
HTTP_501_NOT_IMPLEMENTED module-attribute
HTTP_501_NOT_IMPLEMENTED = 501
HTTP_502_BAD_GATEWAY module-attribute
HTTP_502_BAD_GATEWAY = 502
HTTP_503_SERVICE_UNAVAILABLE module-attribute
HTTP_503_SERVICE_UNAVAILABLE = 503
HTTP_504_GATEWAY_TIMEOUT module-attribute
HTTP_504_GATEWAY_TIMEOUT = 504
HTTP_505_HTTP_VERSION_NOT_SUPPORTED module-attribute
HTTP_505_HTTP_VERSION_NOT_SUPPORTED = 505
HTTP_506_VARIANT_ALSO_NEGOTIATES module-attribute
HTTP_506_VARIANT_ALSO_NEGOTIATES = 506
HTTP_507_INSUFFICIENT_STORAGE module-attribute
HTTP_507_INSUFFICIENT_STORAGE = 507
HTTP_508_LOOP_DETECTED module-attribute
HTTP_508_LOOP_DETECTED = 508
HTTP_510_NOT_EXTENDED module-attribute
HTTP_510_NOT_EXTENDED = 510
HTTP_511_NETWORK_AUTHENTICATION_REQUIRED module-attribute
HTTP_511_NETWORK_AUTHENTICATION_REQUIRED = 511
WebSocket codes https://www.iana.org/assignments/websocket/websocket.xml#close-code-number https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent
WS_1000_NORMAL_CLOSURE module-attribute
WS_1000_NORMAL_CLOSURE = 1000
WS_1001_GOING_AWAY module-attribute
WS_1001_GOING_AWAY = 1001
WS_1002_PROTOCOL_ERROR module-attribute
WS_1002_PROTOCOL_ERROR = 1002
WS_1003_UNSUPPORTED_DATA module-attribute
WS_1003_UNSUPPORTED_DATA = 1003
WS_1005_NO_STATUS_RCVD module-attribute
WS_1005_NO_STATUS_RCVD = 1005
WS_1006_ABNORMAL_CLOSURE module-attribute
WS_1006_ABNORMAL_CLOSURE = 1006
WS_1007_INVALID_FRAME_PAYLOAD_DATA module-attribute
WS_1007_INVALID_FRAME_PAYLOAD_DATA = 1007
WS_1008_POLICY_VIOLATION module-attribute
WS_1008_POLICY_VIOLATION = 1008
WS_1009_MESSAGE_TOO_BIG module-attribute
WS_1009_MESSAGE_TOO_BIG = 1009
WS_1010_MANDATORY_EXT module-attribute
WS_1010_MANDATORY_EXT = 1010
WS_1011_INTERNAL_ERROR module-attribute
WS_1011_INTERNAL_ERROR = 1011
WS_1012_SERVICE_RESTART module-attribute
WS_1012_SERVICE_RESTART = 1012
WS_1013_TRY_AGAIN_LATER module-attribute
WS_1013_TRY_AGAIN_LATER = 1013
WS_1014_BAD_GATEWAY module-attribute
WS_1014_BAD_GATEWAY = 1014
WS_1015_TLS_HANDSHAKE module-attribute
WS_1015_TLS_HANDSHAKE = 1015