API Reference
Abydonian exposes REST endpoints for license management, update checks, and release publishing. All endpoints return JSON responses.
Endpoints Overview
| Method | Endpoint | Auth | Description |
|---|---|---|---|
POST | /api/license/activate | None | Activate a machine on a license |
POST | /api/license/validate | None | Check if a license is valid for a machine |
POST | /api/license/deactivate | None | Deactivate a machine from a license |
GET | /api/update/{productSlug}/{target}/{arch}/{currentVersion} | None | Tauri-compatible update check |
POST | /api/releases/publish | API Key | Publish releases from CI |
Authentication
License and Update endpoints require no authentication — they are designed to be called directly from client applications.
Release Publishing requires an API key with the releases:write scope. Pass it in the Authorization header:
Authorization: Bearer <your-api-key>
API keys can be created from the Abydonian admin dashboard under Admin → API Keys.
Error Responses
All error responses return a JSON object with an error field:
{
"error": "Human-readable error message"
}Common HTTP Status Codes
| Code | Meaning |
|---|---|
| 200 | Success |
| 204 | No update available (update endpoint) |
| 400 | Bad request — missing or invalid fields |
| 401 | Invalid or missing API key |
| 403 | Forbidden — license inactive, expired, or machine limit reached |
| 404 | Resource not found (license, product, etc.) |
| 409 | Conflict — invalid version format |
| 500 | Internal server error |
Rate Limits
The following rate limits apply per IP address:
| Endpoint | Limit |
|---|---|
| License (activate/validate/deactivate) | 60 requests/minute |
| Update check | 120 requests/minute |
| Release publish | 10 requests/minute |