Skip to content

Admin API

All admin endpoints require Authorization: Bearer <ADMIN_TOKEN> header.

GET /api/admin/applications
GET /api/admin/applications/:id
POST /api/admin/applications
Body:
{
"id": "tobby",
"name": "Acme",
"audience": "tobby-api",
"redirectUris": ["https://tobby.example.com/auth/callback"],
"clientType": "web",
"webhookUrl": "https://tobby.api/webhooks",
"webhookSecret": "whsec_xxx",
"ssoGroupId": "tobby-suite",
"authPolicy": { ... }
}
GET /api/admin/applications/:id/auth-policy
PATCH /api/admin/applications/:id/auth-policy
Body: { "signup_policy": "invite_only", "allowed_providers": ["email"] }
GET /api/admin/applications/:id/users?status=active&role=member
GET /api/admin/applications/:id/users/:uid
PATCH /api/admin/applications/:id/users/:uid
Body: { "status": "suspended", "role": "admin" }
DELETE /api/admin/applications/:id/users/:uid
POST /api/admin/applications/:id/invitations
Body: { "emails": ["[email protected]"], "role": "member", "message": "Welcome!" }
GET /api/admin/applications/:id/invitations?status=pending
DELETE /api/admin/applications/:id/invitations/:iid
POST /api/admin/applications/:id/api-keys
Body: { "name": "production", "scopes": ["commerce:read"] }
GET /api/admin/applications/:id/api-keys
DELETE /api/admin/applications/:id/api-keys/:kid
POST /api/admin/sso-groups
Body: { "id": "tobby-suite", "name": "Acme Suite" }
POST /api/admin/sso-groups/:id/apps
Body: { "appId": "tobby" }
GET /api/admin/auth/providers
Response:
{
"providers": [
{ "id": "email", "name": "Email + Password", "configured": true, "env_vars": [] },
{ "id": "google", "name": "Google", "configured": true, "env_vars": ["GOOGLE_CLIENT_ID", ...] },
{ "id": "apple", "name": "Apple Sign In", "configured": false, "env_vars": [...] },
{ "id": "github", "name": "GitHub", "configured": false, "env_vars": [...] }
]
}