FastAPI Parameter Declaration Quick Reference

Query Parameters

from fastapi import Query

username: str = Query(..., title="User name", min_length=5, max_length=30)
Detail Example
Purpose Extracts values from the URL query string
URL Pattern /items?username=alice
Required/Optional Query(...) required; Query(None) optional
Default role: str = Query("user")

Path Parameters

from fastapi import Path

item_id: int = Path(..., title="Item ID", ge=0, le=10000)
Detail Example
Purpose Extracts a variable from the URL path
Path Pattern /items/42
Validation Supports ge, le, min_length, etc.
Route Example @app.get("/items/{item_id}")

Header Parameters

from fastapi import Header

authorization: str = Header(...)
Detail Example
Purpose Extracts values from HTTP headers
Header Example Authorization: Bearer token123
Case Sensitivity Case‑insensitive by default; convert_underscores=True available

Cookie Parameters

from fastapi import Cookie

session_token: str = Cookie(None)
Detail Example
Purpose Extracts a value from the request Cookie
Cookie Example session_token=xyz789

Body Parameters (JSON)

from fastapi import Body
from pydantic import BaseModel

class ItemCreate(BaseModel):
    name: str
    price: float

item: ItemCreate = Body(...)
Detail Example
Purpose Reads JSON data from the request body of POST/PUT
Validation Leverages Pydantic model constraints

Form Parameters

from fastapi import Form

email: str = Form(...)
password: str = Form(...)
Detail Example
Purpose Processes application/x-www-form-urlencoded or multipart/form-data
Use Case Login forms, registration, traditional front‑end submissions

File Uploads

from fastapi import File, UploadFile

document: UploadFile = File(...)
Detail Example
Purpose Handles uploaded files
Type UploadFile enables streaming file reading

Dependency Injection (Depends)

from fastapi import Depends

def get_db_session():
    return DatabaseSession()

@app.get("/users/")
def list_users(db = Depends(get_db_session)):
    ...
Detail Example
Purpose Injects shared logic (e.g., authentication, database access)
Advanced Class‑based dependencies with __call__ for dynamic behvaior

Quick Comparison

Type Source Example Usage Common Scenario
Query URL query string ?page=2&size=10 Pagination, filtering
Path URL path variable /users/7 Resource identification (IDs)
Header HTTP header Authorization Authentication, client info
Cookie Cookie value session_id Session management
Body Request body (JSON) { "title": "foo" } Creating/updating resources
Form Form submission Login form Classic web forms
File Uploaded file File input field Image or document upload
Depends Custom logic Function or class Auth, DB, reusable utilities

Tags: FastAPI Query Path Header Cookie

Posted on Wed, 03 Jun 2026 17:04:25 +0000 by duhhh33