Background tasks in FastAPI
Answer: You can define background tasks to be run after returning a response. This is useful for operations that need to happen after a request, but that the client doesn't really have to be waiting for the operation to complete before receiving the response. (S1)
Examples
- As sending an email tends to be "slow" (several seconds), you can return the response right away and send the email notification in the background. (S1)
- If you receive a file that must go through a slow process, you can return a response of "Accepted" (HTTP 202) and process the file in the background. (S1)
- FastAPI will create the object of type BackgroundTasks for you and pass it as that parameter. (S1)
Ordering with middleware
- A "middleware" is a function that works with every request before it is processed by any specific path operation. (S2)
- If you have dependencies with yield, the exit code will run after the middleware. (S2)
- If there were any background tasks, they will run after all the middleware. (S2)
Claims
- id: C1 claim: Background tasks run after the response. source: S1 evidence: "You can define background tasks to be run after returning a response."
- id: C2 claim: FastAPI creates the BackgroundTasks object. source: S1 evidence: "you can declare a parameter of type BackgroundTasks at multiple levels"
- id: C3 claim: Middleware works with every request. source: S2 evidence: "And also with every response before returning it."
- id: C4 claim: Background tasks run after middleware. source: S2 evidence: "they will run after all the middleware."
Sources
- [S1] Background Tasks - FastAPI. FastAPI docs. https://fastapi.tiangolo.com/tutorial/background-tasks/ . 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] Middleware - FastAPI. FastAPI docs. https://fastapi.tiangolo.com/tutorial/middleware/ . 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, Background Tasks - FastAPI, MIT (fastapi/fastapi LICENSE; Copyright (c) 2018 Sebastián Ramírez; https://github.com/fastapi/fastapi/blob/master/LICENSE); FastAPI docs, Middleware - FastAPI, MIT (fastapi/fastapi LICENSE; Copyright (c) 2018 Sebastián Ramírez; https://github.com/fastapi/fastapi/blob/master/LICENSE).
Cite this
iinventedlight. 2026. "Background tasks in FastAPI." iinventedlight Library, iil:note:r8mh3wy0, version of 2026-11-04. https://iinventedlight.com/library/notes/fastapi-background-tasks/. License: CC-BY-4.0.
@misc{iil_note_r8mh3wy0,
author = {{iinventedlight}},
title = {{Background tasks in FastAPI}},
howpublished = {iinventedlight Library},
year = {2026},
date = {2026-11-04},
url = {https://iinventedlight.com/library/notes/fastapi-background-tasks/},
note = {Permanent ID iil:note:r8mh3wy0. 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-background-tasks.md.