BowlerKitBowlerKit
Rest API

API Routes

10/11/2026

Canonical Account API routes and service ownership for the Flutter client.

Service ownership

OwnerPrefix/routeNotes
Laravel/api/v1/auth/*Auth, social login, verification, password, connected accounts
Laravel/api/v1/auth/security/*Session revoke and account deletion
Laravel/api/v1/uploadsAuthenticated uploads
Laravel/api/v1/webhooks/revenuecatRevenueCat webhook
Laravel/api/v1/app/notifications/sendSuper-admin send
Laravel/api/v1/app/notifications/broadcastSuper-admin broadcast
Shared/api/v1/app/*Authenticated mobile resources; Laravel compatibility or Go performance mode

Laravel auth/account routes

MethodEndpointPurpose
POST/api/v1/auth/loginEmail/password login
POST/api/v1/auth/registerCreate account
POST/api/v1/auth/googleGoogle login
POST/api/v1/auth/appleApple login endpoint (backend contract)
POST/api/v1/auth/register/googleGoogle registration
POST/api/v1/auth/register/appleApple registration endpoint (backend contract)
POST/api/v1/auth/forgot-password, /reset-passwordPassword flows
GET/POST/api/v1/auth/email/*Verify/resend verification
POST/PUT/api/v1/auth/logout, /update-passwordSession/password lifecycle
GET/POST/DELETE/api/v1/auth/connected-accounts*Connected providers
DELETE/api/v1/auth/security/sessions*Session revocation
DELETE/api/v1/auth/security/delete-accountAccount deletion
POST/api/v1/uploadsFile upload
POST/api/v1/webhooks/revenuecatRevenueCat event

Shared mobile routes

These routes are implemented by Laravel compatibility mode and Go performance mode. Admin send/broadcast is intentionally not part of the Go shared contract.

MethodEndpointPurpose
GET/api/v1/app/meCurrent user
POST/api/v1/app/device-tokensStore native/FCM token
PUT/api/v1/app/users/{uuid}Update profile
GET/api/v1/app/security/authlogsLogin history
GET/api/v1/app/security/sessionsActive sessions
GET/api/v1/app/help-centerHelp overview
GET/api/v1/app/help-center/faqsPaginated/searchable FAQs
GET/api/v1/app/help-center/faqs/popularPopular FAQs
GET/api/v1/app/help-center/faqs/{id}FAQ detail
GET/api/v1/app/help-center/contactsContact methods
GET/api/v1/app/help-center/operating-hoursOperating hours
GET/api/v1/app/help-center/feedbackUser feedback
POST/api/v1/app/help-center/feedbackSubmit feedback (rate limited)
GET/api/v1/app/notificationsNotification history
PUT/api/v1/app/notifications/{id}/readMark one read
PUT/api/v1/app/notifications/read-allMark all read
DELETE/api/v1/app/notifications/{id}Delete one
DELETE/api/v1/app/notificationsDelete all
GET/PUT/api/v1/app/notifications/preferencesNotification settings
GET/PUT/api/v1/app/preferencesUser preferences
GET/api/v1/app/billing/entitlementsActive entitlements

Health routes

The Go process also exposes GET /health (liveness) and GET /api/v1/health (readiness). These are service probes, not authenticated mobile resources. Unknown /api/v1/* paths and unsupported sync/admin aliases return 404.