Cloudflare Docs
Edit this page on GitHub
Set theme to dark (⇧+D)


The FastAPI package is supported in Python Workers.

FastAPI applications use a protocol called the Asynchronous Server Gateway Interface (ASGI). This means that FastAPI never reads from or writes to a socket itself. An ASGI application expects to be hooked up to an ASGI server, typically uvicorn. The ASGI server handles all of the raw sockets on the application’s behalf.

The Workers runtime provides an ASGI server directly to your Python Worker, which lets you use FastAPI in Python Workers.

​​ Get Started

Clone the cloudflare/python-workers-examples repository and run the FastAPI example:

git clone
cd 03-fastapi
npx wrangler@latest dev

​​ Example code
from fastapi import FastAPI, Request
from pydantic import BaseModel
async def on_fetch(request, env):
import asgi
return await asgi.fetch(app, request, env)
app = FastAPI()
async def root():
return {"message": "Hello, World!"}
async def root(req: Request):
env = req.scope["env"]
return {"message": "Here is an example of getting an environment variable: " + env.MESSAGE}
class Item(BaseModel):
name: str
description: str | None = None
price: float
tax: float | None = None"/items/")
async def create_item(item: Item):
return item
async def create_item(item_id: int, item: Item, q: str | None = None):
result = {"item_id": item_id, **item.dict()}
if q:
result.update({"q": q})
return result
async def read_item(item_id: int):
return {"item_id": item_id}