0Pricing
FastAPI Backend Development Bootcamp · Lesson

Path & Query Parameters

Understand how to capture dynamic data from URLs using path parameters and process optional query parameters.

Path & Query Parameters is a free FastAPI Backend Development Bootcamp lesson on CoddyKit — lesson 3 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the FastAPI Backend Development Bootcamp learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

Dynamic URLs for APIs

APIs often carry data right in the URL — fetching a product by ID or filtering a list. FastAPI gives you clean ways to capture that. Let's dig in.

Meet Path Parameters

Path parameters are URL segments that pin down a specific resource, written in curly braces like /items/{item_id}. Perfect for one exact item.

Your First Path Parameter

Match a path segment to a function arg by name: /items/{item_id} maps to item_id. The type hint int auto-converts it.

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id, "message": "Here is your item!"}

Power of Type Hints

Type hints like item_id: int drive validation. Hit /items/abc and FastAPI returns a clean error automatically. Use str, int, float, bool, UUID.

Handling Multiple Paths

You can take several path parameters in one route. FastAPI matches them by name, so the order in your function signature doesn't matter.

from fastapi import FastAPI

app = FastAPI()

@app.get("/users/{user_id}/items/{item_id}")
async def read_user_item(user_id: int, item_id: str):
    return {"user_id": user_id, "item_id": item_id}

What are Query Parameters?

Query parameters are key-value pairs after a ?, like /items?skip=0&limit=10. They are optional — ideal for filtering, paging, or sorting.

Your First Query Parameter

Any function arg that is not in the path becomes a query parameter automatically. Here, skip and limit are typed integers.

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/")
async def read_items(skip: int = 0, limit: int = 10):
    return {"skip": skip, "limit": limit}

Optional Queries & Defaults

Make a query parameter optional by giving it a default. For a None default, type it as Optional[str] so FastAPI knows it may be missing.

from typing import Optional
from fastapi import FastAPI

app = FastAPI()

@app.get("/products/")
async def read_products(q: Optional[str] = None, page_size: int = 20):
    results = {"page_size": page_size}
    if q:
        results.update({"search_query": q})
    return results

Path + Query Power

Combine both: path parameters are required, query parameters stay optional with defaults. FastAPI sorts out which is which seamlessly.

from typing import Optional
from fastapi import FastAPI

app = FastAPI()

@app.get("/users/{user_id}/orders/")
async def get_user_orders(user_id: int, status: Optional[str] = None, limit: int = 10):
    return {"user_id": user_id, "status": status, "limit": limit, "message": "User orders fetched."}

Quick Check on Parameters

Consider the following FastAPI endpoint:

from typing import Optional
from fastapi import FastAPI

app = FastAPI()

@app.get("/books/{book_id}")
async def get_book(book_id: int, author: str = "Unknown", published_year: Optional[int] = None):
    return {
        "book_id": book_id,
        "author": author,
        "published_year": published_year
    }

Which of the following URLs would successfully call this endpoint and return a published_year?

Recap: Dynamic API Routes

Great work! You made routes dynamic with path parameters for required IDs, query parameters for optional filters, and type hints for free validation.

Frequently asked questions

Is the “Path & Query Parameters” lesson free?

Yes — the full text of “Path & Query Parameters” is free to read here on the web, and the FastAPI Backend Development Bootcamp course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the FastAPI Backend Development Bootcamp course, upgrade to CoddyKit PRO.

What will I learn in “Path & Query Parameters”?

Understand how to capture dynamic data from URLs using path parameters and process optional query parameters. You practise FastAPI Backend Development Bootcamp with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start FastAPI Backend Development Bootcamp?

No prior experience is required. FastAPI Backend Development Bootcamp on CoddyKit is structured for beginners through advanced learners; this is — lesson 3 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “Path & Query Parameters” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this FastAPI Backend Development Bootcamp lesson?

Yes. Every FastAPI Backend Development Bootcamp lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Introduction to FastAPI & Setup
  2. Your First API Endpoint
  3. Path & Query Parameters
  4. Interactive API Docs with Swagger UI
← Back to FastAPI Backend Development Bootcamp