Your FastAPI service, reviewed against the routes you actually wrote
Paste main.py — or your routers, dependency module, Pydantic schemas, models and
requirements.txt, whichever you have. You get a readiness verdict, a check-by-check
table, the findings that matter with a corrected fragment each, one route rewritten properly, and
the commands to prove it worked.
Both examples ship with a saved model run, so you can see the whole review — including the refactored route — without signing in and without spending a credit.
What this does, and what it does not
The prescan is real parsing, not a keyword search. Every route decorator is read into its method,
path, handler, async-ness, response_model and status_code;
each handler's body is walked to the point where the indentation returns, so a blocking call is
attributed to the handler it actually sits in. That matters, because the same call is a different
answer in a different place: requests.get() inside async def stalls the
event loop for every concurrent request and is flagged, the identical line inside a plain
def handler is correct — FastAPI runs those in a threadpool — and is not
flagged, and the same work wrapped in await asyncio.to_thread(...) is recognised as
the fix and left alone. Everything it finds is handed to the model as facts it must reconcile, and
the review is checked against them afterwards — if the model skips a flag, this page says so.
It reads; it does not run anything, and it never reaches your servers. This is a review of the
text you pasted, not a load test, a dependency CVE scan or a substitute for
pytest — which is the command every review here ends with. A secret you paste is a
secret you should rotate: the review is told to name it rather than repeat it, and this page
checks the rewritten route for any value it echoed back anyway.
Nothing to hand? Load the ,
a single-module app that calls requests inside async def and ships a
committed secret, or the ,
which is mostly right and wants confirmation plus a pagination bound. Both replay a saved run for free.