Admin view catalog — 100% coverage¶
What this is: every navigable view in
ebit-admin-fe, captured live against the running stack. For each view: its route, a full-page screenshot, and the exact backend endpoints the SPA fired when the page loaded (method · path · HTTP status). This is the ground-truth coverage record — generated from a Playwright capture, not hand-written. How it was produced:tests-e2e/capture-endpoints.mjsdrives the real admin SPA through the authenticated session and records every XHR/fetch per route intotools/screenshots/endpoints-by-view.json;tools/screenshots/gen-view-catalog.mjsrenders this page from that manifest. Re-run both to refresh.
Captured: 2026-05-28T21:59:03.708Z · admin-fe http://localhost:3001 → api http://localhost:4000
Coverage summary¶
| Metric | Value |
|---|---|
| Views captured | 57 |
| Views that reached the app (not bounced to /sign-in) | 57 / 57 |
| Views firing ≥1 backend call | 52 |
| Distinct backend endpoints exercised | 61 |
Views with 0 API calls are static (error pages, client-only settings panels). Non-200 statuses below that read 404 are "no record for this seeded entity" (e.g. a user with no KYC row), not endpoint faults — they are kept verbatim so the catalog reflects reality.
Dashboards & analytics¶
/¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/dashboard/quick-stats?… |
200 |
| GET | /user/me |
200 |
/dashboard¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/dashboard-v2/query/bets-by-type?… |
200 |
| GET | /admin/dashboard-v2/query/games-by-type?… |
200 |
| GET | /admin/dashboard-v2/query/payments?… |
200 |
| GET | /admin/dashboard-v2/query/registrations?… |
200 |
| GET | /user/me |
200 |
/game-stats¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/country?… |
200 |
| GET | /admin/dashboard-v2/query/games-by-slug?… |
200 |
| GET | /user/me |
200 |
/games-chart¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/dashboard/games-charts?… |
200 |
| GET | /user/me |
200 |
/games/stats/providers¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/dashboard/providers-stats?… |
200 |
| GET | /user/me |
200 |
/providers¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/casino/games/providers?… |
200 |
| GET | /admin/casino/games/providers/stats |
200 |
| GET | /user/me |
200 |
Players & accounts¶
/users¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/dashboard/users-stats?… |
200 |
| POST | /admin/user/all |
201 |
| GET | /user/me |
200 |
/users/17 *(drill-in, sample id)*¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/accounting/balances?… |
200 |
| GET | /admin/accounting/usd-balance/17 |
200 |
| GET | /admin/accounting/vault-balances?… |
200 |
| GET | /admin/admin-tips?… |
200 |
| POST | /admin/bets |
201 |
| GET | /admin/bot-activity/one/17 |
200 |
| GET | /admin/kyc/17/info |
⚠️ 404 |
| GET | /admin/payments/deposit?… |
200 |
| GET | /admin/payments/withdraw?… |
200 |
| GET | /admin/rakeback/find-one-claimable-usd?… |
200 |
| GET | /admin/registration-info/17 |
⚠️ 404 |
| GET | /admin/tips?… |
200 |
| GET | /admin/user-notes?… |
200 |
| GET | /admin/user-promo?… |
200 |
| GET | /admin/user/17 |
200 |
| GET | /admin/user/17/full/stats |
200 |
| GET | /admin/withdrawals-block/17 |
⚠️ 404 |
| GET | /user/me |
200 |
Transactions & finance¶
/rollovers¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/restriction/rollover?… |
200 |
| GET | /user/me |
200 |
/transactions¶

| Method | Endpoint | Status |
|---|---|---|
| POST | /admin/accounting/transactions |
201 |
| GET | /admin/payments/withdraw/stats |
200 |
| GET | /user/me |
200 |
/transactions/bets-history¶

| Method | Endpoint | Status |
|---|---|---|
| POST | /admin/bets |
201 |
| GET | /user/me |
200 |
/transactions/deposits-history¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/payments/deposit?… |
200 |
| GET | /user/me |
200 |
/transactions/tips-history¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/admin-tips?… |
200 |
| GET | /admin/tips?… |
200 |
| GET | /user/me |
200 |
/transactions/withdrawals¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/payments/withdraw?… |
200 |
| GET | /admin/payments/withdraw/stats |
200 |
| GET | /user/me |
200 |
Games & catalog¶
/apps¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /user/me |
200 |
/categories-management¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/categories |
200 |
| GET | /user/me |
200 |
/game-management¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/dashboard/games-stats?… |
200 |
| GET | /user/me |
200 |
/games/1 *(drill-in, sample id)*¶

| Method | Endpoint | Status |
|---|---|---|
| POST | /admin/bets |
201 |
| GET | /admin/dashboard/games-stats?… |
200 |
| GET | /user/me |
200 |
/promote-games¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/casino/games/main-grid/preview |
200 |
| GET | /user/me |
200 |
/slots¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/casino/games/all?… |
200 |
| GET | /admin/casino/games/providers?… |
200 |
| GET | /admin/categories |
200 |
| GET | /user/me |
200 |
Promotions & bonuses¶
/deposit-bonuses¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/user-promo?… |
200 |
| GET | /user/me |
200 |
/promocodes¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/promo?… |
200 |
| GET | /user/me |
200 |
/promocodes/1 *(drill-in, sample id)*¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/promo/1 |
⚠️ 404 |
| GET | /admin/user-promo?… |
200 |
| GET | /user/me |
200 |
/st8-bonuses¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/casino/slots/st8/bonuses/records?… |
⚠️ 404 |
| GET | /user/me |
200 |
/vip-program¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/vip-program/all?… |
200 |
| GET | /user/me |
200 |
/vip-program/1 *(drill-in, sample id)*¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/vip-program/1 |
⚠️ 400 |
| GET | /user/me |
200 |
Affiliates & streamers¶
/affiliates¶

| Method | Endpoint | Status |
|---|---|---|
| POST | /admin/affiliate |
201 |
| GET | /admin/dashboard/affiliate-stats?… |
200 |
| GET | /user/me |
200 |
/affiliates/17 *(drill-in, sample id)*¶

| Method | Endpoint | Status |
|---|---|---|
| POST | /admin/affiliate/find-one-extended |
201 |
| POST | /admin/affiliate/users |
201 |
| GET | /admin/dashboard/affiliate-stats?… |
200 |
| GET | /user/me |
200 |
/streamers¶

| Method | Endpoint | Status |
|---|---|---|
| POST | /admin/affiliate/streamer |
201 |
| GET | /admin/dashboard/affiliate-stats?… |
200 |
| GET | /user/me |
200 |
/streamers/1 *(drill-in, sample id)*¶

| Method | Endpoint | Status |
|---|---|---|
| POST | /admin/affiliate/find-one-extended |
201 |
| GET | /admin/affiliate/streamer/1 |
⚠️ 404 |
| GET | /admin/dashboard/affiliate-stats?… |
200 |
| GET | /user/me |
200 |
Engagement¶
/bots¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/bot-activity/all?… |
200 |
| GET | /user/me |
200 |
/challenges¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/challenge?… |
200 |
| GET | /user/me |
200 |
/challenges/bets/1 *(drill-in, sample id)*¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/challenge/1/bets?… |
⚠️ 404 |
| GET | /user/me |
200 |
/leaderboards¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/leaderboards?… |
200 |
| GET | /user/me |
200 |
/leaderboards/weekly-tournament *(drill-in, sample id)*¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/leaderboards/weekly-tournament |
⚠️ 404 |
| GET | /admin/leaderboards/weekly-tournament/users?… |
200 |
| GET | /user/me |
200 |
/tasks¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /user/me |
200 |
Compliance & geo¶
/country-restrictions¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/country?… |
200 |
| GET | /admin/country/stats |
200 |
| GET | /user/me |
200 |
/kyc-limits-management¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /config/WITHDRAWALS |
200 |
| GET | /user/me |
200 |
Support & content¶
/chats¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /user/me |
200 |
/faq-management¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /faq |
200 |
| GET | /user/me |
200 |
/help-center¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /user/me |
200 |
Access control & audit¶
/admin-logs¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/user/admin-audit?… |
200 |
| GET | /user/me |
200 |
/admin-logs/17 *(drill-in, sample id)*¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/user/admin-audit?… |
200 |
| GET | /user/me |
200 |
/admins¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/user/get-admins-with-roles?… |
200 |
| GET | /user/me |
200 |
/custom-roles¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/custom-roles |
200 |
| GET | /user/me |
200 |
System / settings / errors¶
/401¶

No backend calls — static / client-only view.
/403¶

No backend calls — static / client-only view.
/404¶

No backend calls — static / client-only view.
/500¶

No backend calls — static / client-only view.
/503¶

No backend calls — static / client-only view.
/errors/sample *(drill-in, sample id)*¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /user/me |
200 |
/settings¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /user/me |
200 |
/settings/account¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /user/me |
200 |
/settings/appearance¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /user/me |
200 |
/settings/display¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /user/me |
200 |
/settings/notifications¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /user/me |
200 |
/sign-in¶

| Method | Endpoint | Status |
|---|---|---|
| GET | /admin/dashboard/quick-stats?… |
200 |
| GET | /user/me |
200 |