Eneza API Routes
Complete route map for the Eneza API. Routes are organized by domain and require appropriate authentication.
Route Files Overview
The API has 39 route files in /src/routes/:
routes/
├── admin/ # Admin-specific routes (18 files)
│ ├── index.ts # Admin route aggregator
│ ├── authRoutes.ts # Admin authentication
│ ├── userRoutes.ts # User management
│ ├── adRoutes.ts # Ad moderation
│ ├── advertiserEmailRoutes.ts
│ ├── analyticsRoutes.ts
│ ├── emailTemplateRoutes.ts
│ ├── financialRoutes.ts
│ ├── geoVerificationRoutes.ts
│ ├── notificationRoutes.ts
│ ├── permissionRoutes.ts
│ ├── screenshotRoutes.ts
│ ├── settingsRoutes.ts
│ ├── subscriptionRoutes.ts
│ ├── supportRoutes.ts
│ ├── systemRoutes.ts
│ ├── userActivityRoutes.ts
│ └── videoProcessingRoutes.ts
├── authRoutes.ts # User authentication
├── userRoutes.ts # User profile
├── adsRoutes.ts # Ad discovery
├── advertiserRoutes.ts # Advertiser profile
├── categoryRoutes.ts # Categories
├── screenshotRoutes.ts # Screenshot submission
├── subscriptionRoutes.ts # Subscriptions
├── transactionRoutes.ts # User transactions
└── ... (20+ more)Authentication Routes
User Auth (/auth)
| Method | Path | Auth | Description |
|---|---|---|---|
| POST | /auth/request-otp | None | Request SMS OTP |
| POST | /auth/verify-otp | None | Verify OTP and login |
| POST | /auth/logout | JWT | Logout user |
| POST | /auth/refresh | JWT | Refresh token |
Advertiser Auth (/advertisers)
| Method | Path | Auth | Description |
|---|---|---|---|
| POST | /advertisers/signup | None | Create advertiser account |
| POST | /advertisers/login | None | Advertiser login |
| POST | /advertisers/verify-email | None | Verify email |
| POST | /advertisers/forgot-password | None | Request password reset |
| POST | /advertisers/reset-password | None | Reset password |
User Routes
Profile (/users)
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /users/profile | JWT | Get user profile |
| PUT | /users/profile | JWT | Update profile |
| GET | /users/balance | JWT | Get earnings balance |
| GET | /users/stats | JWT | Get user statistics |
| GET | /users/referral-code | JWT | Get referral code |
| GET | /users/achievements | JWT | Get achievements |
| GET | /users/tier | JWT | Get current tier |
Ads (/ads)
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /ads | JWT | List available ads |
| GET | /ads/:id | JWT | Get ad details |
| GET | /ads/:id/stats | JWT | Get ad statistics |
| GET | /ads/trending | None | Get trending ads |
| GET | /ads/categories/:categoryId | JWT | Get ads by category |
Subscriptions (/subscriptions)
| Method | Path | Auth | Description |
|---|---|---|---|
| POST | /subscriptions | JWT | Subscribe to ad |
| GET | /subscriptions | JWT | List user subscriptions |
| GET | /subscriptions/:id | JWT | Get subscription details |
| GET | /subscriptions/:id/video | JWT | Get personalized video |
| DELETE | /subscriptions/:id | JWT | Cancel subscription |
Screenshots (/screenshots)
| Method | Path | Auth | Description |
|---|---|---|---|
| POST | /screenshots | JWT | Submit screenshot |
| GET | /screenshots | JWT | List user screenshots |
| GET | /screenshots/:id | JWT | Get screenshot details |
| GET | /screenshots/:id/status | JWT | Get verification status |
Transactions (/transactions)
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /transactions | JWT | List transactions |
| GET | /transactions/:code | JWT | Get transaction by code |
| POST | /transactions/withdraw | JWT | Request withdrawal |
| GET | /transactions/pending-amount | JWT | Get pending amount |
Support (/support-tickets)
| Method | Path | Auth | Description |
|---|---|---|---|
| POST | /support-tickets | JWT | Create ticket |
| GET | /support-tickets | JWT | List tickets |
| GET | /support-tickets/:id | JWT | Get ticket details |
| POST | /support-tickets/:id/messages | JWT | Add message |
| POST | /support-tickets/:id/close | JWT | Close ticket |
Advertiser Routes
Profile (/advertisers)
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /advertisers/profile | JWT | Get advertiser profile |
| PUT | /advertisers/profile | JWT | Update profile |
| GET | /advertisers/balance | JWT | Get USD balance |
| GET | /advertisers/campaigns | JWT | List campaigns |
| POST | /advertisers/campaigns | JWT | Create campaign |
| GET | /advertisers/campaigns/:id | JWT | Get campaign details |
| GET | /advertisers/campaigns/:id/stats | JWT | Get campaign stats |
Campaign Payments (/api/campaign-payments)
| Method | Path | Auth | Description |
|---|---|---|---|
| POST | /api/campaign-payments/create-checkout | JWT | Create Stripe session |
| POST | /api/campaign-payments/webhook | Stripe Sig | Stripe webhook |
| GET | /api/campaign-payments/:id | JWT | Get payment status |
Stripe Billing (/api/stripe-billing)
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /api/stripe-billing/plans | JWT | Get available plans |
| POST | /api/stripe-billing/checkout | JWT | Create checkout session |
| POST | /api/stripe-billing/webhook | Stripe Sig | Stripe webhook |
Deposits (/api/deposits)
| Method | Path | Auth | Description |
|---|---|---|---|
| POST | /api/deposits/create-checkout | JWT | Create deposit session |
| POST | /api/deposits/webhook | Stripe Sig | Stripe webhook |
| GET | /api/deposits | JWT | List deposits |
Public Routes
Categories (/categories)
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /categories | None | List categories |
| GET | /categories/:id | None | Get category |
Countries (/countries)
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /countries | None | List countries |
| GET | /countries/:code | None | Get country by code |
| GET | /countries/:id/cities | None | Get cities |
Cities (/cities)
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /cities | None | List cities |
| GET | /cities/:id | None | Get city |
Currency (/currency)
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /currency/rates | None | Get exchange rates |
| GET | /currency/:code | None | Get currency info |
Admin Routes (/admin)
All admin routes require authentication and role-based authorization.
Admin Auth (/admin/auth)
| Method | Path | Auth | Description |
|---|---|---|---|
| POST | /admin/auth/login | None | Admin login |
| POST | /admin/auth/logout | Admin JWT | Admin logout |
| GET | /admin/auth/me | Admin JWT | Get current admin |
Admin Users (/admin/admins)
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /admin/admins | Admin JWT | List admins |
| POST | /admin/admins/invite | Admin JWT | Invite admin |
| POST | /admin/admins/accept-invitation | None | Accept invitation |
| PUT | /admin/admins/:id | Admin JWT | Update admin |
| DELETE | /admin/admins/:id | Admin JWT | Delete admin |
User Management (/admin/users)
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /admin/users | Admin JWT | List users |
| GET | /admin/users/:id | Admin JWT | Get user |
| PUT | /admin/users/:id | Admin JWT | Update user |
| POST | /admin/users/:id/ban | Admin JWT | Ban user |
| POST | /admin/users/:id/unban | Admin JWT | Unban user |
| GET | /admin/users/:id/transactions | Admin JWT | User transactions |
Advertiser Management (/admin/advertisers)
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /admin/advertisers | Admin JWT | List advertisers |
| GET | /admin/advertisers/:id | Admin JWT | Get advertiser |
| PUT | /admin/advertisers/:id | Admin JWT | Update advertiser |
| GET | /admin/advertisers/:id/campaigns | Admin JWT | Advertiser campaigns |
| POST | /admin/advertisers/:id/credit | Admin JWT | Credit balance |
Ad Moderation (/admin/ads)
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /admin/ads | Admin JWT | List ads |
| GET | /admin/ads/:id | Admin JWT | Get ad |
| PUT | /admin/ads/:id/approve | Admin JWT | Approve ad |
| PUT | /admin/ads/:id/reject | Admin JWT | Reject ad |
| PUT | /admin/ads/:id/pause | Admin JWT | Pause campaign |
| DELETE | /admin/ads/:id | Admin JWT | Delete ad |
Screenshot Review (/admin/screenshots)
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /admin/screenshots | Admin JWT | Review queue |
| GET | /admin/screenshots/:id | Admin JWT | Get screenshot |
| POST | /admin/screenshots/:id/approve | Admin JWT | Approve |
| POST | /admin/screenshots/:id/reject | Admin JWT | Reject |
| POST | /admin/screenshots/bulk-approve | Admin JWT | Bulk approve |
Finance (/admin/finance)
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /admin/finance/transactions | Admin JWT | All transactions |
| GET | /admin/finance/withdrawals | Admin JWT | Pending withdrawals |
| POST | /admin/finance/withdrawals/:id/process | Admin JWT | Process withdrawal |
| GET | /admin/finance/invoices | Admin JWT | All invoices |
| GET | /admin/finance/invoices/:id/download | Admin JWT | Download PDF |
| GET | /admin/finance/deposits | Admin JWT | All deposits |
Settings (/admin/settings)
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /admin/settings/categories | Admin JWT | List categories |
| POST | /admin/settings/categories | Admin JWT | Create category |
| PUT | /admin/settings/categories/:id | Admin JWT | Update category |
| DELETE | /admin/settings/categories/:id | Admin JWT | Delete category |
| GET | /admin/settings/countries | Admin JWT | List countries |
| PUT | /admin/settings/countries/:id | Admin JWT | Update country |
| GET | /admin/settings/pricing-tiers | Admin JWT | Get pricing tiers |
| PUT | /admin/settings/pricing-tiers/:id | Admin JWT | Update tier |
System (/admin/system)
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /admin/system/health | Admin JWT | System health |
| GET | /admin/system/activity-logs | Admin JWT | Activity logs |
| GET | /admin/system/alerts | Admin JWT | System alerts |
| GET | /admin/system/failed-jobs | Admin JWT | Failed jobs |
| POST | /admin/system/failed-jobs/:id/retry | Admin JWT | Retry job |
Webhook Routes (/webhooks)
Internal Pub/Sub push webhooks.
| Method | Path | Auth | Description |
|---|---|---|---|
| POST | /webhooks/video-processed | Pub/Sub Auth | Video processing complete |
| POST | /webhooks/screenshot-processed | Pub/Sub Auth | Verification complete |
Dashboard Routes (/api/dashboard)
CEO dashboard metrics (secured by API key).
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /api/dashboard/metrics | API Key | Public metrics |
Job Routes (/jobs)
Cloud Scheduler endpoints.
| Method | Path | Auth | Description |
|---|---|---|---|
| POST | /jobs/process-outbox | Job Secret | Process message outbox |
| POST | /jobs/payment-reminders | Job Secret | Send payment reminders |
| POST | /jobs/streak-check | Job Secret | Check expired streaks |
| POST | /jobs/exchange-rates | Job Secret | Refresh exchange rates |