FastAPI - GET HTTP Headers using the request module

by
Jeremy Canfield |
Updated: March 13 2025
| FastAPI articles
Let's say a request is submitted to the /Test route of your FastAPI application with the following parameters.
http://api.example.com/v1
Request can be used to get the request URL.
from fastapi import FastAPI, Request
app = FastAPI()
@app.get("/")
async def root(request: Reqest):
print(f"request.url = {request.url}")
print(f"request.url.scheme = {request.url.scheme}")
print(f"request.url.netloc = {request.url.netloc}")
print(f"request.url.path = {request.url.path}")
print(f"request.url.query = {request.url.query}")
print(f"request.url.fragment = {request.url.fragment}")
print(f"request.url.username = {request.url.username}")
print(f"request.url.password = {request.url.password}")
print(f"request.url.hostname = {request.url.hostname}")
print(f"request.url.port = {request.url.port}")
return {"foo":"bar"}
Something like this should be returned.
[2025-03-13 03:42:34 INFO] request.url = http://api.example.com/v1
[2025-03-13 03:42:34 INFO] request.url.scheme = http
[2025-03-13 03:42:34 INFO] request.url.netloc = api.example.com
[2025-03-13 03:42:34 INFO] request.url.path = /v1
[2025-03-13 03:42:34 INFO] request.url.query =
[2025-03-13 03:42:34 INFO] request.url.fragment =
[2025-03-13 03:42:34 INFO] request.url.username = None
[2025-03-13 03:42:34 INFO] request.url.password = None
[2025-03-13 03:42:34 INFO] request.url.hostname = api.example.com
[2025-03-13 03:42:34 INFO] request.url.port = None
Did you find this article helpful?
If so, consider buying me a coffee over at