I am trying to have an endpoint like /services?status=New status is going to be either New or Old Here is my code: from fastapi import APIRouter, Depends from pydantic import BaseModel from enum import Enum router = APIRouter() class ServiceStatusEnum(str, Enum): new = "New" old = "Old" class ServiceStatusQueryParam(BaseModel): status: ServiceStatusEnum @router.get("/services") def get_services( status: ServiceStatusQueryParam = Query(..., title="Services", description="my desc"), ): pass #my code for handling this route..... The result is that I get an error that seems to be relevant to this issue here The error says AssertionError: Param: status can only be a request body, using Body() Then I found another solution explained here. So, my code will be like this: from fastapi import APIRouter, Depends from pydantic import BaseModel from enum import Enum router = APIRouter() class ServiceStatusEnum(str, Enum): new = "New" old = "Old" class ServicesQueryParam(BaseModel): status: ServiceStatusEnum @router.get("/services") def get_services( q: ServicesQueryParam = Depends(), ): pass #my code for handling this route..... It is working (and I don't understand why) - but the question is how and where do I add the description and title? Continue reading...