Query parameters let users send extra information in the URL to customize what the server returns.
Basic query parameter declaration in FastAPI
from fastapi import FastAPI app = FastAPI() @app.get("/items/") async def read_items(q: str = None): return {"query": q}
Query parameters are declared as function parameters with default values.
If you give a default value, the parameter is optional.
q is a required query parameter. The user must provide it in the URL.from fastapi import FastAPI app = FastAPI() @app.get("/search/") async def search(q: str): return {"query": q}
q is optional. If the user does not provide it, q will be None.from fastapi import FastAPI app = FastAPI() @app.get("/search/") async def search(q: str = None): return {"query": q}
q has a default value of "default" if not provided by the user.from fastapi import FastAPI app = FastAPI() @app.get("/items/") async def read_items(q: str = "default"): return {"query": q}
This program creates a simple API endpoint /items/ that accepts an optional query parameter q. If the user provides q, it returns a message showing what was searched. Otherwise, it says no query was provided.
from fastapi import FastAPI app = FastAPI() @app.get("/items/") async def read_items(q: str = None): if q: return {"message": f"You searched for: {q}"} else: return {"message": "No search query provided."}
Query parameters appear after a question mark in the URL, like /items/?q=book.
FastAPI automatically converts query parameters to the declared type, like int or str.
Use None as a default to make parameters optional.
Query parameters let users send extra info in the URL to customize responses.
Declare them as function parameters with default values in FastAPI.
Parameters with defaults are optional; without defaults are required.