Endpoint index
Every route on https://api.postlyra.com, generated from the router itself.
"Bearer token" means the endpoint needs an Authorization header. "Brand-scoped" means it also reads X-Postlyra-Brand.
Authentication
| Method | Path | Auth | Notes |
|---|---|---|---|
DELETE | /auth/account | Bearer token | — |
POST | /auth/login | None | 10 per 1 min |
POST | /auth/logout | Bearer token | — |
GET | /auth/me | Bearer token | — |
GET | /auth/passkeys | Bearer token | — |
POST | /auth/passkeys | Bearer token | 10 per 1 min |
POST | /auth/passkeys/login | None | 10 per 1 min |
POST | /auth/passkeys/login/options | None | 10 per 1 min |
POST | /auth/passkeys/options | Bearer token | 10 per 1 min |
DELETE | /auth/passkeys/{passkeyId} | Bearer token | — |
PATCH | /auth/profile | Bearer token | — |
POST | /auth/register | None | 10 per 1 min |
DELETE | /auth/two-factor | Bearer token | 10 per 1 min |
GET | /auth/two-factor | Bearer token | 10 per 1 min |
POST | /auth/two-factor-challenge | None | 10 per 1 min |
POST | /auth/two-factor/confirm | Bearer token | 10 per 1 min |
POST | /auth/two-factor/recovery-codes | Bearer token | 10 per 1 min |
POST | /auth/two-factor/setup | Bearer token | 10 per 1 min |
Brands
| Method | Path | Auth | Notes |
|---|---|---|---|
GET | /teams | Bearer token | — |
GET | /teams/{id} | Bearer token | — |
PATCH | /teams/{id} | Bearer token | — |
Current user
| Method | Path | Auth | Notes |
|---|---|---|---|
GET | /me/entitlements | Bearer token | brand-scoped |
PATCH | /me/team | Bearer token | — |
Ideas
| Method | Path | Auth | Notes |
|---|---|---|---|
POST | /ideas/import | Bearer token | brand-scoped |
GET | /ideas/mining-context | Bearer token | brand-scoped |
Media
| Method | Path | Auth | Notes |
|---|---|---|---|
GET | /media | Bearer token | brand-scoped |
POST | /media | Bearer token | brand-scoped |
DELETE | /media/{id} | Bearer token | brand-scoped |
Members
| Method | Path | Auth | Notes |
|---|---|---|---|
GET | /users | Bearer token | brand-scoped |
POST | /users | Bearer token | brand-scoped |
GET | /users/roles | Bearer token | brand-scoped |
Notification preferences
| Method | Path | Auth | Notes |
|---|---|---|---|
GET | /notification-preferences | Bearer token | brand-scoped |
PUT | /notification-preferences | Bearer token | brand-scoped |
Device tokens
| Method | Path | Auth | Notes |
|---|---|---|---|
DELETE | /device-tokens | Bearer token | brand-scoped |
POST | /device-tokens | Bearer token | brand-scoped |
Subscription
| Method | Path | Auth | Notes |
|---|---|---|---|
POST | /subscription/checkout | Bearer token | brand-scoped |
GET | /subscription/plans | Bearer token | brand-scoped |
GET | /subscription/status | Bearer token | brand-scoped |
POST | /subscription/switch | Bearer token | brand-scoped |
Public
| Method | Path | Auth | Notes |
|---|---|---|---|
GET | /public/plans | None | — |
Other
| Method | Path | Auth | Notes |
|---|---|---|---|
GET | / | None | — |
Notes
POST /teams appears on the router but its handler is not implemented, so calling it errors. Create a brand in Studio instead.
GET /auth/two-factor is the one endpoint under /auth/two-factor/ that is not throttled, since clients poll it to render the security screen.