Skip to main content

API Reference

The Acusight API provides programmatic access to all platform functionality, from device management to MLOps workflows.

Base URL

https://acusight.io
For self-hosted deployments:
https://<SERVER_EXTERNAL_IP>/api    # Via Caddy (browser)
http://<SERVER_EXTERNAL_IP>:8080/api  # Direct (devices)

Authentication

Acusight uses two authentication methods:

Bearer Token (User API)

For user-facing APIs, use a JWT token obtained via OIDC login:
curl https://acusight.io/api/organization \
  -H "Authorization: Bearer <JWT_TOKEN>"

Device API Key (Device API)

For device-to-platform communication, use the API key received during provisioning:
curl https://acusight.io/api/device/self \
  -H "X-Device-Key: adk_<YOUR_API_KEY>"

API Groups

Core API

User-authenticated endpoints for managing the platform.
EndpointMethodDescription
/provisioning-tokensPOSTCreate provisioning token
/provisioning-tokensGETList provisioning tokens
/provisioning-tokens/{id}DELETERevoke token
/devices/provisionPOSTProvision a device (public)
/organizationGETGet organization details
/organizationPATCHUpdate organization

Device API

Device-authenticated endpoints using X-Device-Key header.
EndpointMethodDescription
/device/selfGETGet device info
/device/checkinPOSTHealth check-in
/device/images/uploadPOSTUpload image

Data API

MLOps data pipeline endpoints.
EndpointMethodDescription
/data/projectsGET/POSTList/create projects
/data/batchesGETList batches
/data/batches/{id}PATCHUpdate batch
/data/images/{id}GET/PATCHGet/update image
/data/annotationsPOSTCreate annotation
/data/datasetsGET/POSTList/create dataset versions

ML API

Model training and deployment endpoints.
EndpointMethodDescription
/ml/training-jobsGET/POSTList/create training jobs
/ml/modelsGETList model versions
/ml/export-jobsPOSTExport model for deployment

Response Format

All API responses follow a consistent envelope format:

Success Response

{
  "success": true,
  "data": { ... },
  "meta": {
    "total": 100,
    "page": 1,
    "per_page": 20
  }
}

Error Response

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Invalid request body",
    "details": "name is required"
  }
}

Common Error Codes

CodeHTTP StatusDescription
VALIDATION_ERROR400Invalid request body or parameters
UNAUTHORIZED401Missing or invalid authentication
FORBIDDEN403Insufficient permissions
NOT_FOUND404Resource not found
CONFLICT409Resource already exists
INTERNAL_ERROR500Server error

Rate Limiting

Rate limiting is not enforced by default. If you enable a limiter (for example at the reverse proxy), document the limits here.

Pagination

List endpoints support pagination:
GET /api/data/batches?page=2&per_page=50
ParameterDefaultMax
page1-
per_page20100
Response includes pagination metadata:
{
  "meta": {
    "total": 250,
    "page": 2,
    "per_page": 50,
    "total_pages": 5
  }
}

Interactive Documentation

Explore the full API using our interactive Swagger UI:
The Swagger UI allows you to authenticate and make real API calls directly from your browser.

SDKs and Client Libraries

Currently, Acusight provides REST APIs only. Client libraries are planned for:
  • Python (planned)
  • Go (planned)
  • TypeScript/JavaScript (planned)
For now, use standard HTTP clients like curl, axios, or requests.

Next Steps