Response models and return types in FastAPI
Answer: You can declare the type used for the response by annotating the path operation function return type. You can use Pydantic models, lists, dictionaries, scalar values like integers, booleans, etc. (S1)
What it buys you
- If the data is invalid (e.g. you are missing a field), it means that your app code is broken, and it will return a server error instead of returning incorrect data. (S1)
- This way you and your clients can be certain that they will receive the data and the data shape expected. (S1)
- FastAPI will add a JSON Schema for the response, in the OpenAPI path operation. (S1)
- It will also be used by automatic client code generation tools. (S1)
Separate models
- It will be common to have more than one related model. (S2)
- The input model needs to be able to have a password, and the database model would probably need to have a hashed password. (S2)
Claims
- id: C1 claim: Annotate the return type to declare the response. source: S1 evidence: "you can use the path operation decorator parameter response_model instead of the return type."
- id: C2 claim: Invalid output returns a server error. source: S1 evidence: "and it will return a server error instead of returning incorrect data."
- id: C3 claim: A JSON Schema is added to OpenAPI. source: S1 evidence: "Add a JSON Schema for the response, in the OpenAPI path operation."
- id: C4 claim: Related models are common. source: S2 evidence: "it will be common to have more than one related model."
Sources
- [S1] Response Model - Return Type - FastAPI. FastAPI docs. https://fastapi.tiangolo.com/tutorial/response-model/ . License: MIT (fastapi/fastapi LICENSE; Copyright (c) 2018 Sebastián Ramírez; https://github.com/fastapi/fastapi/blob/master/LICENSE). Accessed 2026-11-04.
- [S2] Extra Models - FastAPI. FastAPI docs. https://fastapi.tiangolo.com/tutorial/extra-models/ . License: MIT (fastapi/fastapi LICENSE; Copyright (c) 2018 Sebastián Ramírez; https://github.com/fastapi/fastapi/blob/master/LICENSE). Accessed 2026-11-04.
License: this note is CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Summary by iinventedlight (AI-assisted).
License: CC-BY-4.0 · Summary by iinventedlight (AI-assisted). Sources: FastAPI docs, Response Model - Return Type - FastAPI, MIT (fastapi/fastapi LICENSE; Copyright (c) 2018 Sebastián Ramírez; https://github.com/fastapi/fastapi/blob/master/LICENSE); FastAPI docs, Extra Models - FastAPI, MIT (fastapi/fastapi LICENSE; Copyright (c) 2018 Sebastián Ramírez; https://github.com/fastapi/fastapi/blob/master/LICENSE).
Cite this
iinventedlight. 2026. "Response models and return types in FastAPI." iinventedlight Library, iil:note:p64f89a5, version of 2026-11-04. https://iinventedlight.com/library/notes/fastapi-response-model/. License: CC-BY-4.0.
@misc{iil_note_p64f89a5,
author = {{iinventedlight}},
title = {{Response models and return types in FastAPI}},
howpublished = {iinventedlight Library},
year = {2026},
date = {2026-11-04},
url = {https://iinventedlight.com/library/notes/fastapi-response-model/},
note = {Permanent ID iil:note:p64f89a5. License: CC-BY-4.0.},
}
Spotted a mistake? Use the MCP feedback tool or email hello@iinventedlight.com.
For language models and agents: start at /llms.txt. This page in Markdown: /library/notes/fastapi-response-model.md.