API overview
This page documents the HTTP API exposed by the pwa-admin-core backend
(Spring Boot 3.5 / Kotlin, springdoc-openapi). The reference pages under
Docs ▸ API Reference (top navigation) are generated directly from the
backend's OpenAPI specification — do not edit them by hand.
How the API is organised
Endpoints are grouped by domain:
| Domain | Path prefix | What it covers |
|---|---|---|
| Authentication | /auth/** | Login, logout, session, access restore |
| PWA | /pwa/** | PWA apps, configuration, client & TDS APIs |
| Splits | /split/** | A/B split configuration |
| Flows | /flow/** | PWA flows |
| Landings | /landing/** | Landing pages |
| Domains | /domain/** | Domain registration & DNS accounts (Namecheap, Cloudflare) |
| Billing | /billing/** | Balance, deposits, spend |
| Team | /team/** | Teams and team members |
| Push & Notifications | /push/** | Push configs, FCM projects, notifications |
| Reports | /report/** | Analytics and spend reports |
| S2S (integrations) | /s2s/** | Server-to-server events |
| System | /system/** | Admin-only operations (ROLE_ADMIN) |
Before you start
- Read Authentication first. The API uses a JWT in an HttpOnly cookie plus XSRF protection, which is not obvious from the spec.
- Public IDs are opaque prefixed strings, never numbers. Identifiers look
like
pwa_a1b2c3,user_x9y8z7,team_…. In the spec they are typed asstring. - The in-browser "Try it" button is disabled. It cannot work against this
backend because of HttpOnly cookies and CORS — see
Authentication → Trying requests.
Use the
curlexamples instead.
Regenerating this documentation
The API pages are generated from the OpenAPI file the backend publishes. When the backend's API changes, the reference is regenerated from the new specification — nothing on these pages is written by hand.