Step 1: register your app
POST /register
Required body:
app.name(required)permissions(optional; normalized toreadandwrite, defaults toread)
app.descriptionapp.developerapp.websiteapp.icon
app.icon validation:
- Accepts
httporhttpsURL (up to 2048 characters) - Accepts
data:image/*;base64,...payload (up to 1 MB) - Invalid icon format returns
400
202):
Step 2: poll request status
GET /request-status?request_id=<request_id>
If pending:
Step 3: call authenticated endpoints
Authenticated calls accept either:Authorization: Bearer <token>?access_token=<token>query parameter
read: read endpoints and WebSocketwrite: control endpoints
401.
If the app is revoked or missing required permission, the API returns 403.
