API Reference
Build integrations with the BoxOwl personal data platform.
Base URL
https://api.boxowl.me/api/v1
All API traffic is JSON over HTTPS. The API subdomain serves no HTML — this documentation is the only human-readable reference.
Authentication
BoxOwl supports three authentication methods. Only one may be used per request.
- User JWT — obtained via
POST /api/v1/auth/login. Include asAuthorization: Bearer <jwt>. Used by the Android app, browser extension, and web sessions. - Agent Token — opaque
bot_…tokens scoped to a single user, created in-app under Settings > Agent Tokens. Include asX-Agent-Token: bot_<random>. Used by AI agents and automations. - Organization API Key — opaque
boxlive_…keys scoped to an organization with fine-grained scopes. Include asX-API-Key: boxlive_<random>. Used by PDaaS integrations — see the PDaaS docs.
JWTs expire after 24 hours; rotate via POST /api/v1/auth/refresh. Agent tokens carry an explicit expiresAt (default 1 year); a daily reminder job notifies users 7 days before expiry. All three credential types can be revoked at any time.
Rate Limits
Limits are enforced per IP+identity via Bucket4j with a token-bucket algorithm. Each tier has a burst capacity (max tokens) and a sustained refill rate.
| Tier | Burst | Sustained | Applies to |
|---|---|---|---|
| Auth | 20 | 10 / min | /api/v1/auth/login, register, refresh, reset-password |
| Admin | 60 | 30 / min | /api/v1/admin/* |
| UI | 600 | 200 / min | User JWT traffic from app/extension/web |
| API | 300 | 100 / min | Agent tokens and org API keys |
| Rotate | 1 | 1 / hour | Credential rotation endpoints |
Rate limit headers are included in every response: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
Error Format
All errors follow a consistent JSON structure with LLM-friendly hints:
{
"error": "BOX-409-001",
"message": "Email or handle already in use",
"hint": "Choose a different handle or log in instead.",
"suggestedAction": "Try a unique handle or use POST /auth/login",
"retryable": false
}
Endpoints
PDaaS
See the PDaaS API Reference for full documentation on API key authentication, organization management, consent-gated vault access, webhook events, and error codes specific to multi-tenant PDaaS.
SMRT
See the SMRT Integration Guide for setup, header reference, server examples, and privacy model for the Site-aware Member Recognition Technology.
Swagger UI
Interactive API documentation is available at:
https://api.boxowl.me/swagger-ui.html
This is auto-generated from the backend OpenAPI spec and kept in sync on every deployment.