For integrations from your other apps. Requires API_KEY in server .env.
https://acc-api-dashboeard.34.166.92.24.sslip.io
Local dev: http://localhost:3847
Authorization: Bearer YOUR_API_KEY # or X-Api-Key: YOUR_API_KEY
| Method | Path | Description |
|---|---|---|
| GET | /api/v1/health | API + queue status |
| GET | /api/v1/tokens | All accounts with token metadata |
| GET | /api/v1/accounts/:email | Single account (?target=outlook) |
| POST | /api/v1/accounts/:email/refresh | Queue token refresh |
| GET | /api/v1/jobs/:id | Poll job status |
| POST | /api/v1/sync/bulk | Batch token lookup (≤100 emails) |
| GET | /api/v1/sync/delta | Changed accounts since since |
| POST | /api/v1/sync/webhooks | Register token-update webhook |
Full sync guide: SYNC-API.md (also in repo root)
GET /api/v1/tokens?target=outlook&group=my-group&tokens_only=1
Returns access_token, token_expires_at, last_login_at, health, group, etc.
POST /api/v1/accounts/user@outlook.com/refresh
Content-Type: application/json
{"target": "outlook"}
Add ?wait=true to block until done (max 120s default).
| Refresh | Re-login | |
|---|---|---|
| Password | Not used | Saved password |
| What it does | Renews token via saved session | Full Microsoft sign-in |
| When | Token expired, session OK | Session dead / session-only |
Proxy is always used when enabled. IP rotates every 5 account operations (not every refresh).
GET /api/accounts/export/tokens GET /api/accounts/export/failed-refresh
Columns include last_login and token_expires.
Dashboard → Restore data backup on the Account dashboard card, or:
POST /api/data/import Authorization: Bearer YOUR_API_KEY Content-Type: application/zip (raw data-backup.zip bytes)
Extracts into persistent /app/data. Server restarts automatically. Use the same CREDENTIALS_KEY as when the backup was created.
curl -s -H "Authorization: Bearer YOUR_API_KEY" \ "https://acc-api-dashboeard.34.166.92.24.sslip.io/api/v1/tokens?target=outlook"
Full reference: API.md in the repository.