- Example
statusHTTP_100_CONTINUEHTTP_101_SWITCHING_PROTOCOLSHTTP_102_PROCESSINGHTTP_103_EARLY_HINTSHTTP_200_OKHTTP_201_CREATEDHTTP_202_ACCEPTEDHTTP_203_NON_AUTHORITATIVE_INFORMATIONHTTP_204_NO_CONTENTHTTP_205_RESET_CONTENTHTTP_206_PARTIAL_CONTENTHTTP_207_MULTI_STATUSHTTP_208_ALREADY_REPORTEDHTTP_226_IM_USEDHTTP_300_MULTIPLE_CHOICESHTTP_301_MOVED_PERMANENTLYHTTP_302_FOUNDHTTP_303_SEE_OTHERHTTP_304_NOT_MODIFIEDHTTP_305_USE_PROXYHTTP_306_RESERVEDHTTP_307_TEMPORARY_REDIRECTHTTP_308_PERMANENT_REDIRECTHTTP_400_BAD_REQUESTHTTP_401_UNAUTHORIZEDHTTP_402_PAYMENT_REQUIREDHTTP_403_FORBIDDENHTTP_404_NOT_FOUNDHTTP_405_METHOD_NOT_ALLOWEDHTTP_406_NOT_ACCEPTABLEHTTP_407_PROXY_AUTHENTICATION_REQUIREDHTTP_408_REQUEST_TIMEOUTHTTP_409_CONFLICTHTTP_410_GONEHTTP_411_LENGTH_REQUIREDHTTP_412_PRECONDITION_FAILEDHTTP_413_CONTENT_TOO_LARGEHTTP_414_URI_TOO_LONGHTTP_415_UNSUPPORTED_MEDIA_TYPEHTTP_416_RANGE_NOT_SATISFIABLEHTTP_417_EXPECTATION_FAILEDHTTP_418_IM_A_TEAPOTHTTP_421_MISDIRECTED_REQUESTHTTP_422_UNPROCESSABLE_CONTENTHTTP_423_LOCKEDHTTP_424_FAILED_DEPENDENCYHTTP_425_TOO_EARLYHTTP_426_UPGRADE_REQUIREDHTTP_428_PRECONDITION_REQUIREDHTTP_429_TOO_MANY_REQUESTSHTTP_431_REQUEST_HEADER_FIELDS_TOO_LARGEHTTP_451_UNAVAILABLE_FOR_LEGAL_REASONSHTTP_500_INTERNAL_SERVER_ERRORHTTP_501_NOT_IMPLEMENTEDHTTP_502_BAD_GATEWAYHTTP_503_SERVICE_UNAVAILABLEHTTP_504_GATEWAY_TIMEOUTHTTP_505_HTTP_VERSION_NOT_SUPPORTEDHTTP_506_VARIANT_ALSO_NEGOTIATESHTTP_507_INSUFFICIENT_STORAGEHTTP_508_LOOP_DETECTEDHTTP_510_NOT_EXTENDEDHTTP_511_NETWORK_AUTHENTICATION_REQUIREDWS_1000_NORMAL_CLOSUREWS_1001_GOING_AWAYWS_1002_PROTOCOL_ERRORWS_1003_UNSUPPORTED_DATAWS_1005_NO_STATUS_RCVDWS_1006_ABNORMAL_CLOSUREWS_1007_INVALID_FRAME_PAYLOAD_DATAWS_1008_POLICY_VIOLATIONWS_1009_MESSAGE_TOO_BIGWS_1010_MANDATORY_EXTWS_1011_INTERNAL_ERRORWS_1012_SERVICE_RESTARTWS_1013_TRY_AGAIN_LATERWS_1014_BAD_GATEWAYWS_1015_TLS_HANDSHAKE
Status Codes¶
You can import thestatus module fromfastapi:
fromfastapiimportstatusstatus is provided directly by Starlette.
It contains 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 theFastAPI docs about Response Status Code.
Example¶
fromfastapiimportFastAPI,statusapp=FastAPI()@app.get("/items/",status_code=status.HTTP_418_IM_A_TEAPOT)defread_items():return[{"name":"Plumbus"},{"name":"Portal Gun"}]fastapi.status¶
HTTP codesSee HTTP Status Code Registry:https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
And RFC 9110 - https://www.rfc-editor.org/rfc/rfc9110
HTTP_100_CONTINUEmodule-attribute¶
HTTP_100_CONTINUE=100HTTP_101_SWITCHING_PROTOCOLSmodule-attribute¶
HTTP_101_SWITCHING_PROTOCOLS=101HTTP_102_PROCESSINGmodule-attribute¶
HTTP_102_PROCESSING=102HTTP_103_EARLY_HINTSmodule-attribute¶
HTTP_103_EARLY_HINTS=103HTTP_200_OKmodule-attribute¶
HTTP_200_OK=200HTTP_201_CREATEDmodule-attribute¶
HTTP_201_CREATED=201HTTP_202_ACCEPTEDmodule-attribute¶
HTTP_202_ACCEPTED=202HTTP_203_NON_AUTHORITATIVE_INFORMATIONmodule-attribute¶
HTTP_203_NON_AUTHORITATIVE_INFORMATION=203HTTP_204_NO_CONTENTmodule-attribute¶
HTTP_204_NO_CONTENT=204HTTP_205_RESET_CONTENTmodule-attribute¶
HTTP_205_RESET_CONTENT=205HTTP_206_PARTIAL_CONTENTmodule-attribute¶
HTTP_206_PARTIAL_CONTENT=206HTTP_207_MULTI_STATUSmodule-attribute¶
HTTP_207_MULTI_STATUS=207HTTP_208_ALREADY_REPORTEDmodule-attribute¶
HTTP_208_ALREADY_REPORTED=208HTTP_226_IM_USEDmodule-attribute¶
HTTP_226_IM_USED=226HTTP_300_MULTIPLE_CHOICESmodule-attribute¶
HTTP_300_MULTIPLE_CHOICES=300HTTP_301_MOVED_PERMANENTLYmodule-attribute¶
HTTP_301_MOVED_PERMANENTLY=301HTTP_302_FOUNDmodule-attribute¶
HTTP_302_FOUND=302HTTP_303_SEE_OTHERmodule-attribute¶
HTTP_303_SEE_OTHER=303HTTP_304_NOT_MODIFIEDmodule-attribute¶
HTTP_304_NOT_MODIFIED=304HTTP_305_USE_PROXYmodule-attribute¶
HTTP_305_USE_PROXY=305HTTP_306_RESERVEDmodule-attribute¶
HTTP_306_RESERVED=306HTTP_307_TEMPORARY_REDIRECTmodule-attribute¶
HTTP_307_TEMPORARY_REDIRECT=307HTTP_308_PERMANENT_REDIRECTmodule-attribute¶
HTTP_308_PERMANENT_REDIRECT=308HTTP_400_BAD_REQUESTmodule-attribute¶
HTTP_400_BAD_REQUEST=400HTTP_401_UNAUTHORIZEDmodule-attribute¶
HTTP_401_UNAUTHORIZED=401HTTP_402_PAYMENT_REQUIREDmodule-attribute¶
HTTP_402_PAYMENT_REQUIRED=402HTTP_403_FORBIDDENmodule-attribute¶
HTTP_403_FORBIDDEN=403HTTP_404_NOT_FOUNDmodule-attribute¶
HTTP_404_NOT_FOUND=404HTTP_405_METHOD_NOT_ALLOWEDmodule-attribute¶
HTTP_405_METHOD_NOT_ALLOWED=405HTTP_406_NOT_ACCEPTABLEmodule-attribute¶
HTTP_406_NOT_ACCEPTABLE=406HTTP_407_PROXY_AUTHENTICATION_REQUIREDmodule-attribute¶
HTTP_407_PROXY_AUTHENTICATION_REQUIRED=407HTTP_408_REQUEST_TIMEOUTmodule-attribute¶
HTTP_408_REQUEST_TIMEOUT=408HTTP_409_CONFLICTmodule-attribute¶
HTTP_409_CONFLICT=409HTTP_410_GONEmodule-attribute¶
HTTP_410_GONE=410HTTP_411_LENGTH_REQUIREDmodule-attribute¶
HTTP_411_LENGTH_REQUIRED=411HTTP_412_PRECONDITION_FAILEDmodule-attribute¶
HTTP_412_PRECONDITION_FAILED=412HTTP_413_CONTENT_TOO_LARGEmodule-attribute¶
HTTP_413_CONTENT_TOO_LARGE=413HTTP_414_URI_TOO_LONGmodule-attribute¶
HTTP_414_URI_TOO_LONG=414HTTP_415_UNSUPPORTED_MEDIA_TYPEmodule-attribute¶
HTTP_415_UNSUPPORTED_MEDIA_TYPE=415HTTP_416_RANGE_NOT_SATISFIABLEmodule-attribute¶
HTTP_416_RANGE_NOT_SATISFIABLE=416HTTP_417_EXPECTATION_FAILEDmodule-attribute¶
HTTP_417_EXPECTATION_FAILED=417HTTP_418_IM_A_TEAPOTmodule-attribute¶
HTTP_418_IM_A_TEAPOT=418HTTP_421_MISDIRECTED_REQUESTmodule-attribute¶
HTTP_421_MISDIRECTED_REQUEST=421HTTP_422_UNPROCESSABLE_CONTENTmodule-attribute¶
HTTP_422_UNPROCESSABLE_CONTENT=422HTTP_423_LOCKEDmodule-attribute¶
HTTP_423_LOCKED=423HTTP_424_FAILED_DEPENDENCYmodule-attribute¶
HTTP_424_FAILED_DEPENDENCY=424HTTP_425_TOO_EARLYmodule-attribute¶
HTTP_425_TOO_EARLY=425HTTP_426_UPGRADE_REQUIREDmodule-attribute¶
HTTP_426_UPGRADE_REQUIRED=426HTTP_428_PRECONDITION_REQUIREDmodule-attribute¶
HTTP_428_PRECONDITION_REQUIRED=428HTTP_429_TOO_MANY_REQUESTSmodule-attribute¶
HTTP_429_TOO_MANY_REQUESTS=429HTTP_431_REQUEST_HEADER_FIELDS_TOO_LARGEmodule-attribute¶
HTTP_431_REQUEST_HEADER_FIELDS_TOO_LARGE=431HTTP_451_UNAVAILABLE_FOR_LEGAL_REASONSmodule-attribute¶
HTTP_451_UNAVAILABLE_FOR_LEGAL_REASONS=451HTTP_500_INTERNAL_SERVER_ERRORmodule-attribute¶
HTTP_500_INTERNAL_SERVER_ERROR=500HTTP_501_NOT_IMPLEMENTEDmodule-attribute¶
HTTP_501_NOT_IMPLEMENTED=501HTTP_502_BAD_GATEWAYmodule-attribute¶
HTTP_502_BAD_GATEWAY=502HTTP_503_SERVICE_UNAVAILABLEmodule-attribute¶
HTTP_503_SERVICE_UNAVAILABLE=503HTTP_504_GATEWAY_TIMEOUTmodule-attribute¶
HTTP_504_GATEWAY_TIMEOUT=504HTTP_505_HTTP_VERSION_NOT_SUPPORTEDmodule-attribute¶
HTTP_505_HTTP_VERSION_NOT_SUPPORTED=505HTTP_506_VARIANT_ALSO_NEGOTIATESmodule-attribute¶
HTTP_506_VARIANT_ALSO_NEGOTIATES=506HTTP_507_INSUFFICIENT_STORAGEmodule-attribute¶
HTTP_507_INSUFFICIENT_STORAGE=507HTTP_508_LOOP_DETECTEDmodule-attribute¶
HTTP_508_LOOP_DETECTED=508HTTP_510_NOT_EXTENDEDmodule-attribute¶
HTTP_510_NOT_EXTENDED=510HTTP_511_NETWORK_AUTHENTICATION_REQUIREDmodule-attribute¶
HTTP_511_NETWORK_AUTHENTICATION_REQUIRED=511WebSocket codeshttps://www.iana.org/assignments/websocket/websocket.xml#close-code-numberhttps://developer.mozilla.org/en-US/docs/Web/API/CloseEvent
WS_1000_NORMAL_CLOSUREmodule-attribute¶
WS_1000_NORMAL_CLOSURE=1000WS_1001_GOING_AWAYmodule-attribute¶
WS_1001_GOING_AWAY=1001WS_1002_PROTOCOL_ERRORmodule-attribute¶
WS_1002_PROTOCOL_ERROR=1002WS_1003_UNSUPPORTED_DATAmodule-attribute¶
WS_1003_UNSUPPORTED_DATA=1003WS_1005_NO_STATUS_RCVDmodule-attribute¶
WS_1005_NO_STATUS_RCVD=1005WS_1006_ABNORMAL_CLOSUREmodule-attribute¶
WS_1006_ABNORMAL_CLOSURE=1006WS_1007_INVALID_FRAME_PAYLOAD_DATAmodule-attribute¶
WS_1007_INVALID_FRAME_PAYLOAD_DATA=1007WS_1008_POLICY_VIOLATIONmodule-attribute¶
WS_1008_POLICY_VIOLATION=1008WS_1009_MESSAGE_TOO_BIGmodule-attribute¶
WS_1009_MESSAGE_TOO_BIG=1009WS_1010_MANDATORY_EXTmodule-attribute¶
WS_1010_MANDATORY_EXT=1010WS_1011_INTERNAL_ERRORmodule-attribute¶
WS_1011_INTERNAL_ERROR=1011WS_1012_SERVICE_RESTARTmodule-attribute¶
WS_1012_SERVICE_RESTART=1012WS_1013_TRY_AGAIN_LATERmodule-attribute¶
WS_1013_TRY_AGAIN_LATER=1013WS_1014_BAD_GATEWAYmodule-attribute¶
WS_1014_BAD_GATEWAY=1014WS_1015_TLS_HANDSHAKEmodule-attribute¶
WS_1015_TLS_HANDSHAKE=1015






