License API
Accept license keys, Paddle customer IDs, account emails, and device fingerprints. Return plan limits and grace state.
These static API notes define the public contract for license activation, account recovery, profile sync, template listing, feedback, and Paddle webhook integration.
Use versioned endpoints and keep the app tolerant of unavailable optional cloud features.
| Method | Path | Purpose |
|---|---|---|
| POST | /v1/licenses/activate | Validate a license key and bind a device activation. |
| GET | /v1/licenses/me | Return plan, trial, subscription, and activation state for the current user. |
| POST | /v1/licenses/recover | Send license recovery email for a Paddle customer or license email. |
| POST | /v1/sync/pull | Fetch profile, template, and device configuration changes for an account. |
| POST | /v1/sync/push | Upload profile configuration changes. Raw mouse events must never be sent. |
| GET | /v1/templates | List approved official and community templates. |
| POST | /v1/feedback | Create a support or product feedback item from the app. |
| POST | /v1/paddle/webhook | Process checkout, subscription, renewal, cancellation, and refund events. |
The API should support commercial operations without collecting unnecessary input data.
Accept license keys, Paddle customer IDs, account emails, and device fingerprints. Return plan limits and grace state.
Sync profile configuration, template IDs, device names, and timestamps. Do not sync raw pointer, click, wheel, or gesture event streams.
Capture category, app version, macOS version, optional message, and consented diagnostics. Keep uploads explicit.
Treat checkout and subscription webhooks as the source of truth for purchases, renewals, cancellations, and refunds.