Engineering manualAPI route source
API route source reference
Every current Brand Studio API route handler with source-derived method and input signals.
This reference preserves each route handler verbatim and derives only shallow declaration signals. It does not infer authorization, validate request or response schemas, or prove deployed behavior. Those remain explicit contract and runtime acceptance obligations.
| Route | Methods | Input signals | Status signals | Source |
|---|---|---|---|---|
/api/account/api-keys | DELETE, GET, POST | JSON body, query | 400, 401, 403, 503 | hosted-app/app/api/account/api-keys/route.js |
/api/account/mcp-connections | DELETE, GET | No shallow signal detected | No literal status detected | hosted-app/app/api/account/mcp-connections/route.js |
/api/admin | GET, POST | JSON body, query | 400 | hosted-app/app/api/admin/route.js |
/api/admin/topup | POST | JSON body | No literal status detected | hosted-app/app/api/admin/topup/route.js |
/api/auth/google/exchange | POST | JSON body, query | 400, 401, 503 | hosted-app/app/api/auth/google/exchange/route.js |
/api/auth/google | GET | query | 503 | hosted-app/app/api/auth/google/route.js |
/api/auth | POST | JSON body, query | 200, 400, 401, 503 | hosted-app/app/api/auth/route.js |
/api/brand-check | POST | No shallow signal detected | 400, 401, 429 | hosted-app/app/api/brand-check/route.js |
/api/brand-refresh | POST | No shallow signal detected | No literal status detected | hosted-app/app/api/brand-refresh/route.js |
/api/brand-studio/ai-link | POST | No shallow signal detected | No literal status detected | hosted-app/app/api/brand-studio/ai-link/route.js |
/api/brand-studio/brand-delta | GET | query | No literal status detected | hosted-app/app/api/brand-studio/brand-delta/route.js |
/api/brand-studio/brand-kit | GET | query | 200 | hosted-app/app/api/brand-studio/brand-kit/route.js |
/api/brand-studio/brand-presence | GET | query | 200 | hosted-app/app/api/brand-studio/brand-presence/route.js |
/api/brand-studio/proxy-asset | GET | query | No literal status detected | hosted-app/app/api/brand-studio/proxy-asset/route.js |
/api/brand-studio/retry-leg | POST | JSON body | No literal status detected | hosted-app/app/api/brand-studio/retry-leg/route.js |
/api/brand-studio/run-override | POST | No shallow signal detected | 400 | hosted-app/app/api/brand-studio/run-override/route.js |
/api/brand-studio/visual-direction | POST | No shallow signal detected | 400, 403 | hosted-app/app/api/brand-studio/visual-direction/route.js |
/api/brands/basic/changes | GET | query | No literal status detected | hosted-app/app/api/brands/basic/changes/route.js |
/api/brands/basic | DELETE, GET, POST | JSON body, query | No literal status detected | hosted-app/app/api/brands/basic/route.js |
/api/brands/change-evidence | GET | query | No literal status detected | hosted-app/app/api/brands/change-evidence/route.js |
/api/brands/changes | GET | query | No literal status detected | hosted-app/app/api/brands/changes/route.js |
/api/brands/export | GET | query | 200 | hosted-app/app/api/brands/export/route.js |
/api/brands/review-changes | GET | query | No literal status detected | hosted-app/app/api/brands/review-changes/route.js |
/api/brands/review-watch | GET, POST | query | No literal status detected | hosted-app/app/api/brands/review-watch/route.js |
/api/brands/review-watch/sweep | GET, POST | No shallow signal detected | 200 | hosted-app/app/api/brands/review-watch/sweep/route.js |
/api/brands/reviews/snapshot | POST | No shallow signal detected | No literal status detected | hosted-app/app/api/brands/reviews/snapshot/route.js |
/api/brands | GET | No shallow signal detected | No literal status detected | hosted-app/app/api/brands/route.js |
/api/brands/search-changes | GET | query | No literal status detected | hosted-app/app/api/brands/search-changes/route.js |
/api/brands/search-watch | GET, POST | query | No literal status detected | hosted-app/app/api/brands/search-watch/route.js |
/api/brands/search-watch/sweep | GET, POST | No shallow signal detected | 200 | hosted-app/app/api/brands/search-watch/sweep/route.js |
/api/brands/site-pages | GET, POST | query | No literal status detected | hosted-app/app/api/brands/site-pages/route.js |
/api/brands/social-changes | GET | query | No literal status detected | hosted-app/app/api/brands/social-changes/route.js |
/api/brands/social-watch | GET, POST | query | No literal status detected | hosted-app/app/api/brands/social-watch/route.js |
/api/brands/social-watch/sweep | GET, POST | No shallow signal detected | 200 | hosted-app/app/api/brands/social-watch/sweep/route.js |
/api/brands/watch | GET, POST | JSON body | No literal status detected | hosted-app/app/api/brands/watch/route.js |
/api/brands/watch/sweep | GET, POST | No shallow signal detected | 200 | hosted-app/app/api/brands/watch/sweep/route.js |
/api/byo-keys | DELETE, GET, POST | query | 400, 401, 403, 409, 502, 503 | hosted-app/app/api/byo-keys/route.js |
/api/client-review/ai-fix | POST | No shallow signal detected | No literal status detected | hosted-app/app/api/client-review/ai-fix/route.js |
/api/client-review/overrides | GET, POST | No shallow signal detected | No literal status detected | hosted-app/app/api/client-review/overrides/route.js |
/api/client-review/requests/[id] | POST | No shallow signal detected | No literal status detected | hosted-app/app/api/client-review/requests/[id]/route.js |
/api/client-review/requests | GET | No shallow signal detected | No literal status detected | hosted-app/app/api/client-review/requests/route.js |
/api/client-review/rounds | POST | No shallow signal detected | No literal status detected | hosted-app/app/api/client-review/rounds/route.js |
/api/client-review/shares/[id]/revoke | POST | No shallow signal detected | No literal status detected | hosted-app/app/api/client-review/shares/[id]/revoke/route.js |
/api/client-review/shares | GET, POST | No shallow signal detected | No literal status detected | hosted-app/app/api/client-review/shares/route.js |
/api/comprehensive/advance | GET, POST | JSON body, query | 200, 202 | hosted-app/app/api/comprehensive/advance/route.js |
/api/comprehensive/preview | GET | query | No literal status detected | hosted-app/app/api/comprehensive/preview/route.js |
/api/comprehensive | GET, POST | query | 202, 422 | hosted-app/app/api/comprehensive/route.js |
/api/comprehensive/sweep | POST | No shallow signal detected | No literal status detected | hosted-app/app/api/comprehensive/sweep/route.js |
/api/credits/checkout | GET, POST | query | No literal status detected | hosted-app/app/api/credits/checkout/route.js |
/api/credits | GET | No shallow signal detected | 502 | hosted-app/app/api/credits/route.js |
/api/credits/topup | POST | No shallow signal detected | 400, 502, 503 | hosted-app/app/api/credits/topup/route.js |
/api/credits/webhook | POST | No shallow signal detected | No literal status detected | hosted-app/app/api/credits/webhook/route.js |
/api/docs-ask | POST | No shallow signal detected | 400, 429, 502 | hosted-app/app/api/docs-ask/route.js |
/api/instant | GET | query | 429 | hosted-app/app/api/instant/route.js |
/api/intake-peek | POST | JSON body | 401, 429 | hosted-app/app/api/intake-peek/route.js |
/api/interview-prefill | POST | No shallow signal detected | 400, 401, 429 | hosted-app/app/api/interview-prefill/route.js |
/api/local-runs/[run_id] | GET | No shallow signal detected | 404 | hosted-app/app/api/local-runs/[run_id]/route.js |
/api/local-runs | GET | No shallow signal detected | No literal status detected | hosted-app/app/api/local-runs/route.js |
/api/mcp/oauth/authorize | GET, POST | No shallow signal detected | No literal status detected | hosted-app/app/api/mcp/oauth/authorize/route.js |
/api/mcp/oauth/revoke | POST | No shallow signal detected | No literal status detected | hosted-app/app/api/mcp/oauth/revoke/route.js |
/api/mcp/oauth/token | POST | No shallow signal detected | No literal status detected | hosted-app/app/api/mcp/oauth/token/route.js |
/api/mcp | DELETE, GET, POST | query | 405 | hosted-app/app/api/mcp/route.js |
/api/notifications/dispatch | POST | No shallow signal detected | No literal status detected | hosted-app/app/api/notifications/dispatch/route.js |
/api/notifications/outbox | GET, POST | No shallow signal detected | No literal status detected | hosted-app/app/api/notifications/outbox/route.js |
/api/notifications/preferences | GET, POST | No shallow signal detected | No literal status detected | hosted-app/app/api/notifications/preferences/route.js |
/api/notifications/sweep | GET, POST | No shallow signal detected | No literal status detected | hosted-app/app/api/notifications/sweep/route.js |
/api/notifications/unsubscribe | GET, POST | query | No literal status detected | hosted-app/app/api/notifications/unsubscribe/route.js |
/api/pulls/complete-section | POST | No shallow signal detected | No literal status detected | hosted-app/app/api/pulls/complete-section/route.js |
/api/pulls | GET | query | No literal status detected | hosted-app/app/api/pulls/route.js |
/api/pulls/section-review-plan | POST | No shallow signal detected | No literal status detected | hosted-app/app/api/pulls/section-review-plan/route.js |
/api/pulls/section-review-retry | GET, POST | No shallow signal detected | No literal status detected | hosted-app/app/api/pulls/section-review-retry/route.js |
/api/query-manifest | POST | No shallow signal detected | No literal status detected | hosted-app/app/api/query-manifest/route.js |
/api/review/[token]/media | GET | No shallow signal detected | No literal status detected | hosted-app/app/api/review/[token]/media/route.js |
/api/review/[token]/requests | POST | No shallow signal detected | No literal status detected | hosted-app/app/api/review/[token]/requests/route.js |
/api/review/[token] | GET | No shallow signal detected | No literal status detected | hosted-app/app/api/review/[token]/route.js |
/api/search | GET | No shallow signal detected | No literal status detected | hosted-app/app/api/search/route.ts |