#1589 removed /api/onboarding/account-status as unused. Its two remaining siblings look to be in the same state, and I wanted to check before assuming.
What I can see
Neither route has a caller anywhere in the repo. Searching current main:
extract-content: one hit, its own route file (the EXA_API_KEY warning string)
onboarding/research: zero hits
ExaContentResult is exported from the extract-content route but imported nowhere
Both were added in #672 (Jan 2026) and last changed functionally in #994 (Jun 2026). Everything after that is hardening rather than use.
Why removal might be preferable to maintaining them
Each request spends metered third-party quota:
extract-content calls Exa with livecrawl: "fallback"
research calls xAI grok-4-fast with the web_search and x_search tools
#1589 added session verification, which closes the unauthenticated case. What remains is that any authenticated user can call both freely, with no rate limit, against endpoints nothing in the product appears to use. Deleting them drops ~246 lines and two billable surfaces, rather than carrying bounds on code with no callers.
The question
Is either route being kept deliberately, for an onboarding flow that isn't wired up yet or a caller outside this repository? I can only see this repo, so I can't rule that out, which is why this is an issue rather than a PR.
If they are dead, I'm happy to open the deletion PR. apps/web/lib/verify-session.ts would stay as-is, since /api/og uses it too.
For context, I opened #1528 and #1530 to bound these two routes; both were closed in favour of #1589.
#1589 removed
/api/onboarding/account-statusas unused. Its two remaining siblings look to be in the same state, and I wanted to check before assuming.What I can see
Neither route has a caller anywhere in the repo. Searching current
main:extract-content: one hit, its own route file (theEXA_API_KEYwarning string)onboarding/research: zero hitsExaContentResultis exported from the extract-content route but imported nowhereBoth were added in #672 (Jan 2026) and last changed functionally in #994 (Jun 2026). Everything after that is hardening rather than use.
Why removal might be preferable to maintaining them
Each request spends metered third-party quota:
extract-contentcalls Exa withlivecrawl: "fallback"researchcalls xAIgrok-4-fastwith theweb_searchandx_searchtools#1589 added session verification, which closes the unauthenticated case. What remains is that any authenticated user can call both freely, with no rate limit, against endpoints nothing in the product appears to use. Deleting them drops ~246 lines and two billable surfaces, rather than carrying bounds on code with no callers.
The question
Is either route being kept deliberately, for an onboarding flow that isn't wired up yet or a caller outside this repository? I can only see this repo, so I can't rule that out, which is why this is an issue rather than a PR.
If they are dead, I'm happy to open the deletion PR.
apps/web/lib/verify-session.tswould stay as-is, since/api/oguses it too.For context, I opened #1528 and #1530 to bound these two routes; both were closed in favour of #1589.