Skip to content

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)

MethodPathAuthDescription
POST/auth/request-otpNoneRequest SMS OTP
POST/auth/verify-otpNoneVerify OTP and login
POST/auth/logoutJWTLogout user
POST/auth/refreshJWTRefresh token

Advertiser Auth (/advertisers)

MethodPathAuthDescription
POST/advertisers/signupNoneCreate advertiser account
POST/advertisers/loginNoneAdvertiser login
POST/advertisers/verify-emailNoneVerify email
POST/advertisers/forgot-passwordNoneRequest password reset
POST/advertisers/reset-passwordNoneReset password

User Routes

Profile (/users)

MethodPathAuthDescription
GET/users/profileJWTGet user profile
PUT/users/profileJWTUpdate profile
GET/users/balanceJWTGet earnings balance
GET/users/statsJWTGet user statistics
GET/users/referral-codeJWTGet referral code
GET/users/achievementsJWTGet achievements
GET/users/tierJWTGet current tier

Ads (/ads)

MethodPathAuthDescription
GET/adsJWTList available ads
GET/ads/:idJWTGet ad details
GET/ads/:id/statsJWTGet ad statistics
GET/ads/trendingNoneGet trending ads
GET/ads/categories/:categoryIdJWTGet ads by category

Subscriptions (/subscriptions)

MethodPathAuthDescription
POST/subscriptionsJWTSubscribe to ad
GET/subscriptionsJWTList user subscriptions
GET/subscriptions/:idJWTGet subscription details
GET/subscriptions/:id/videoJWTGet personalized video
DELETE/subscriptions/:idJWTCancel subscription

Screenshots (/screenshots)

MethodPathAuthDescription
POST/screenshotsJWTSubmit screenshot
GET/screenshotsJWTList user screenshots
GET/screenshots/:idJWTGet screenshot details
GET/screenshots/:id/statusJWTGet verification status

Transactions (/transactions)

MethodPathAuthDescription
GET/transactionsJWTList transactions
GET/transactions/:codeJWTGet transaction by code
POST/transactions/withdrawJWTRequest withdrawal
GET/transactions/pending-amountJWTGet pending amount

Support (/support-tickets)

MethodPathAuthDescription
POST/support-ticketsJWTCreate ticket
GET/support-ticketsJWTList tickets
GET/support-tickets/:idJWTGet ticket details
POST/support-tickets/:id/messagesJWTAdd message
POST/support-tickets/:id/closeJWTClose ticket

Advertiser Routes

Profile (/advertisers)

MethodPathAuthDescription
GET/advertisers/profileJWTGet advertiser profile
PUT/advertisers/profileJWTUpdate profile
GET/advertisers/balanceJWTGet USD balance
GET/advertisers/campaignsJWTList campaigns
POST/advertisers/campaignsJWTCreate campaign
GET/advertisers/campaigns/:idJWTGet campaign details
GET/advertisers/campaigns/:id/statsJWTGet campaign stats

Campaign Payments (/api/campaign-payments)

MethodPathAuthDescription
POST/api/campaign-payments/create-checkoutJWTCreate Stripe session
POST/api/campaign-payments/webhookStripe SigStripe webhook
GET/api/campaign-payments/:idJWTGet payment status

Stripe Billing (/api/stripe-billing)

MethodPathAuthDescription
GET/api/stripe-billing/plansJWTGet available plans
POST/api/stripe-billing/checkoutJWTCreate checkout session
POST/api/stripe-billing/webhookStripe SigStripe webhook

Deposits (/api/deposits)

MethodPathAuthDescription
POST/api/deposits/create-checkoutJWTCreate deposit session
POST/api/deposits/webhookStripe SigStripe webhook
GET/api/depositsJWTList deposits

Public Routes

Categories (/categories)

MethodPathAuthDescription
GET/categoriesNoneList categories
GET/categories/:idNoneGet category

Countries (/countries)

MethodPathAuthDescription
GET/countriesNoneList countries
GET/countries/:codeNoneGet country by code
GET/countries/:id/citiesNoneGet cities

Cities (/cities)

MethodPathAuthDescription
GET/citiesNoneList cities
GET/cities/:idNoneGet city

Currency (/currency)

MethodPathAuthDescription
GET/currency/ratesNoneGet exchange rates
GET/currency/:codeNoneGet currency info

Admin Routes (/admin)

All admin routes require authentication and role-based authorization.

Admin Auth (/admin/auth)

MethodPathAuthDescription
POST/admin/auth/loginNoneAdmin login
POST/admin/auth/logoutAdmin JWTAdmin logout
GET/admin/auth/meAdmin JWTGet current admin

Admin Users (/admin/admins)

MethodPathAuthDescription
GET/admin/adminsAdmin JWTList admins
POST/admin/admins/inviteAdmin JWTInvite admin
POST/admin/admins/accept-invitationNoneAccept invitation
PUT/admin/admins/:idAdmin JWTUpdate admin
DELETE/admin/admins/:idAdmin JWTDelete admin

User Management (/admin/users)

MethodPathAuthDescription
GET/admin/usersAdmin JWTList users
GET/admin/users/:idAdmin JWTGet user
PUT/admin/users/:idAdmin JWTUpdate user
POST/admin/users/:id/banAdmin JWTBan user
POST/admin/users/:id/unbanAdmin JWTUnban user
GET/admin/users/:id/transactionsAdmin JWTUser transactions

Advertiser Management (/admin/advertisers)

MethodPathAuthDescription
GET/admin/advertisersAdmin JWTList advertisers
GET/admin/advertisers/:idAdmin JWTGet advertiser
PUT/admin/advertisers/:idAdmin JWTUpdate advertiser
GET/admin/advertisers/:id/campaignsAdmin JWTAdvertiser campaigns
POST/admin/advertisers/:id/creditAdmin JWTCredit balance

Ad Moderation (/admin/ads)

MethodPathAuthDescription
GET/admin/adsAdmin JWTList ads
GET/admin/ads/:idAdmin JWTGet ad
PUT/admin/ads/:id/approveAdmin JWTApprove ad
PUT/admin/ads/:id/rejectAdmin JWTReject ad
PUT/admin/ads/:id/pauseAdmin JWTPause campaign
DELETE/admin/ads/:idAdmin JWTDelete ad

Screenshot Review (/admin/screenshots)

MethodPathAuthDescription
GET/admin/screenshotsAdmin JWTReview queue
GET/admin/screenshots/:idAdmin JWTGet screenshot
POST/admin/screenshots/:id/approveAdmin JWTApprove
POST/admin/screenshots/:id/rejectAdmin JWTReject
POST/admin/screenshots/bulk-approveAdmin JWTBulk approve

Finance (/admin/finance)

MethodPathAuthDescription
GET/admin/finance/transactionsAdmin JWTAll transactions
GET/admin/finance/withdrawalsAdmin JWTPending withdrawals
POST/admin/finance/withdrawals/:id/processAdmin JWTProcess withdrawal
GET/admin/finance/invoicesAdmin JWTAll invoices
GET/admin/finance/invoices/:id/downloadAdmin JWTDownload PDF
GET/admin/finance/depositsAdmin JWTAll deposits

Settings (/admin/settings)

MethodPathAuthDescription
GET/admin/settings/categoriesAdmin JWTList categories
POST/admin/settings/categoriesAdmin JWTCreate category
PUT/admin/settings/categories/:idAdmin JWTUpdate category
DELETE/admin/settings/categories/:idAdmin JWTDelete category
GET/admin/settings/countriesAdmin JWTList countries
PUT/admin/settings/countries/:idAdmin JWTUpdate country
GET/admin/settings/pricing-tiersAdmin JWTGet pricing tiers
PUT/admin/settings/pricing-tiers/:idAdmin JWTUpdate tier

System (/admin/system)

MethodPathAuthDescription
GET/admin/system/healthAdmin JWTSystem health
GET/admin/system/activity-logsAdmin JWTActivity logs
GET/admin/system/alertsAdmin JWTSystem alerts
GET/admin/system/failed-jobsAdmin JWTFailed jobs
POST/admin/system/failed-jobs/:id/retryAdmin JWTRetry job

Webhook Routes (/webhooks)

Internal Pub/Sub push webhooks.

MethodPathAuthDescription
POST/webhooks/video-processedPub/Sub AuthVideo processing complete
POST/webhooks/screenshot-processedPub/Sub AuthVerification complete

Dashboard Routes (/api/dashboard)

CEO dashboard metrics (secured by API key).

MethodPathAuthDescription
GET/api/dashboard/metricsAPI KeyPublic metrics

Job Routes (/jobs)

Cloud Scheduler endpoints.

MethodPathAuthDescription
POST/jobs/process-outboxJob SecretProcess message outbox
POST/jobs/payment-remindersJob SecretSend payment reminders
POST/jobs/streak-checkJob SecretCheck expired streaks
POST/jobs/exchange-ratesJob SecretRefresh exchange rates

One chat. Everything done.