API Endpoints
This page lists the major API endpoint groups in O.D.I.N. For full parameter details, response schemas, and "Try it out" functionality, use the interactive Swagger UI at /api/v1/docs on your running instance.
Printers
| Method | Endpoint | Description | Role |
|---|---|---|---|
GET | /api/v1/printers | List all printers | viewer+ |
POST | /api/v1/printers | Add a printer | operator+ |
GET | /api/v1/printers/{id} | Get printer details | viewer+ |
PUT | /api/v1/printers/{id} | Update printer | operator+ |
DELETE | /api/v1/printers/{id} | Delete printer | admin |
POST | /api/v1/printers/{id}/pause | Pause active print | operator+ |
POST | /api/v1/printers/{id}/resume | Resume paused print | operator+ |
POST | /api/v1/printers/{id}/stop | Stop/cancel print | operator+ |
POST | /api/v1/printers/{id}/fan | Set fan speeds | operator+ |
POST | /api/v1/printers/{id}/speed | Set print speed | operator+ |
POST | /api/v1/printers/{id}/light | Toggle chamber light | operator+ |
POST | /api/v1/printers/{id}/plate-cleared | Confirm plate cleared | operator+ |
POST | /api/v1/printers/{id}/clear-errors | Clear HMS errors | operator+ |
Jobs
| Method | Endpoint | Description | Role |
|---|---|---|---|
GET | /api/v1/jobs | List jobs | viewer+ |
POST | /api/v1/jobs | Create a job | operator+ |
GET | /api/v1/jobs/{id} | Get job details | viewer+ |
PUT | /api/v1/jobs/{id} | Update job | operator+ |
DELETE | /api/v1/jobs/{id} | Delete job | admin |
POST | /api/v1/jobs/batch | Batch send to multiple printers | operator+ |
POST | /api/v1/jobs/{id}/clone | Clone/reprint job | operator+ |
GET | /api/v1/jobs/filament-check | Check filament compatibility | viewer+ |
Models
| Method | Endpoint | Description | Role |
|---|---|---|---|
GET | /api/v1/models | List models | viewer+ |
POST | /api/v1/models | Upload model (.3mf/.gcode) | operator+ |
GET | /api/v1/models/{id} | Get model details | viewer+ |
PUT | /api/v1/models/{id} | Update model metadata | operator+ |
DELETE | /api/v1/models/{id} | Delete model | admin |
GET | /api/v1/models/{id}/variants | List model variants (plate_count, filament) | viewer+ |
Archives
| Method | Endpoint | Description | Role |
|---|---|---|---|
GET | /api/v1/archives | List archives (paginated, filterable) | viewer+ |
GET | /api/v1/archives/{id} | Get archive details | viewer+ |
PATCH | /api/v1/archives/{id} | Update archive notes/tags | operator+ |
DELETE | /api/v1/archives/{id} | Delete archive | admin |
POST | /api/v1/archives/{id}/reprint | Reprint from archive | operator+ |
GET | /api/v1/archives/log | Print log (dense table, CSV export) | viewer+ |
GET | /api/v1/archives/compare | Compare two archives | viewer+ |
GET | /api/v1/archives/tags | List all tags | viewer+ |
Spools
| Method | Endpoint | Description | Role |
|---|---|---|---|
GET | /api/v1/spools | List spools | viewer+ |
POST | /api/v1/spools | Create spool | operator+ |
PUT | /api/v1/spools/{id} | Update spool | operator+ |
DELETE | /api/v1/spools/{id} | Delete spool | admin |
GET | /api/v1/spools/low-stock | Low-stock spools | viewer+ |
GET | /api/v1/spools/export | CSV export | viewer+ |
GET | /api/v1/spools/{id}/label | Generate QR label | viewer+ |
Projects
| Method | Endpoint | Description | Role |
|---|---|---|---|
GET | /api/v1/projects | List projects | viewer+ |
POST | /api/v1/projects | Create project | operator+ |
GET | /api/v1/projects/{id} | Get project details | viewer+ |
PUT | /api/v1/projects/{id} | Update project | operator+ |
DELETE | /api/v1/projects/{id} | Delete project | admin |
POST | /api/v1/projects/{id}/archives | Assign archives | operator+ |
Authentication
| Method | Endpoint | Description | Role |
|---|---|---|---|
POST | /api/v1/auth/login | Login (returns session cookie) | public |
POST | /api/v1/auth/logout | Logout (revokes session) | any |
GET | /api/v1/auth/me | Current user info | any |
PUT | /api/v1/auth/me/theme | Update theme preferences | any |
POST | /api/v1/auth/change-password | Change own password | any |
Users (Admin)
| Method | Endpoint | Description | Role |
|---|---|---|---|
GET | /api/v1/users | List users | admin |
POST | /api/v1/users | Create user | admin |
PUT | /api/v1/users/{id} | Update user | admin |
DELETE | /api/v1/users/{id} | Delete user | admin |
Vigil AI (Vision)
| Method | Endpoint | Description | Role |
|---|---|---|---|
GET | /api/v1/vision/detections | List detections | viewer+ |
GET | /api/v1/vision/settings | Get detection settings | viewer+ |
PUT | /api/v1/vision/settings | Update thresholds | admin |
GET | /api/v1/vision/models | List ONNX models | viewer+ |
POST | /api/v1/vision/models | Upload ONNX model | admin |
Notifications & Alerts
| Method | Endpoint | Description | Role |
|---|---|---|---|
GET | /api/v1/alerts | List alerts | viewer+ |
PUT | /api/v1/alerts/{id}/read | Mark alert read | any |
DELETE | /api/v1/alerts/{id} | Delete alert | operator+ |
GET | /api/v1/alerts/preferences | Get notification preferences | any |
PUT | /api/v1/alerts/preferences | Update notification preferences | any |
Orders
| Method | Endpoint | Description | Role |
|---|---|---|---|
GET | /api/v1/orders | List orders | viewer+ |
POST | /api/v1/orders | Create order | operator+ |
GET | /api/v1/orders/{id} | Get order details | viewer+ |
PUT | /api/v1/orders/{id} | Update order | operator+ |
DELETE | /api/v1/orders/{id} | Delete order | admin |
POST | /api/v1/orders/{id}/schedule | Schedule all jobs for order | operator+ |
PUT | /api/v1/orders/{id}/ship | Mark order as shipped | operator+ |
GET | /api/v1/orders/{id}/invoice.pdf | Download PDF invoice | viewer+ |
Products
| Method | Endpoint | Description | Role |
|---|---|---|---|
GET | /api/v1/products | List products | viewer+ |
POST | /api/v1/products | Create product | operator+ |
GET | /api/v1/products/{id} | Get product details | viewer+ |
PUT | /api/v1/products/{id} | Update product | operator+ |
DELETE | /api/v1/products/{id} | Delete product | admin |
Consumables
| Method | Endpoint | Description | Role |
|---|---|---|---|
GET | /api/v1/consumables | List consumables | viewer+ |
POST | /api/v1/consumables | Create consumable | operator+ |
PUT | /api/v1/consumables/{id} | Update consumable | operator+ |
DELETE | /api/v1/consumables/{id} | Delete consumable | admin |
Organizations & Groups
| Method | Endpoint | Description | Role |
|---|---|---|---|
GET | /api/v1/orgs | List organizations | admin |
POST | /api/v1/orgs | Create organization | admin |
PUT | /api/v1/orgs/{id} | Update organization | admin |
DELETE | /api/v1/orgs/{id} | Delete organization | admin |
GET | /api/v1/groups | List groups | admin |
POST | /api/v1/groups | Create group | admin |
AMS & Filament Slots
| Method | Endpoint | Description | Role |
|---|---|---|---|
GET | /api/v1/printers/{id}/ams | Get AMS units and slots | viewer+ |
POST | /api/v1/printers/{id}/ams/refresh | Trigger AMS RFID re-read | operator+ |
PUT | /api/v1/printers/{id}/ams/{ams_id}/slots/{slot_id} | Update AMS slot config | operator+ |
GET | /api/v1/printers/{id}/ams/environment | Get AMS humidity/temperature data | viewer+ |
Nozzles
| Method | Endpoint | Description | Role |
|---|---|---|---|
GET | /api/v1/printers/{id}/nozzles | List nozzle records | viewer+ |
POST | /api/v1/printers/{id}/nozzles | Install a new nozzle | operator+ |
PATCH | /api/v1/printers/{id}/nozzles/{nozzle_id} | Update nozzle record | operator+ |
DELETE | /api/v1/printers/{id}/nozzles/{nozzle_id} | Delete nozzle record | admin |
Smart Plugs
| Method | Endpoint | Description | Role |
|---|---|---|---|
POST | /api/v1/printers/{id}/plug/on | Turn smart plug on | operator+ |
POST | /api/v1/printers/{id}/plug/off | Turn smart plug off | operator+ |
GET | /api/v1/printers/{id}/plug/status | Get plug status | viewer+ |
POST | /api/v1/printers/{id}/plug/test | Test plug connection | operator+ |
Maintenance
| Method | Endpoint | Description | Role |
|---|---|---|---|
GET | /api/v1/maintenance/tasks | List maintenance tasks | viewer+ |
POST | /api/v1/maintenance/tasks | Create maintenance task | admin |
PUT | /api/v1/maintenance/tasks/{id} | Update maintenance task | admin |
DELETE | /api/v1/maintenance/tasks/{id} | Delete maintenance task | admin |
POST | /api/v1/maintenance/tasks/{id}/complete | Complete task for a printer | operator+ |
POST | /api/v1/maintenance/seed | Seed default tasks | admin |
Sessions
| Method | Endpoint | Description | Role |
|---|---|---|---|
GET | /api/v1/sessions | List active sessions | any |
DELETE | /api/v1/sessions/{jti} | Revoke a session | any |
DELETE | /api/v1/sessions | Revoke all sessions | any |
Permissions
| Method | Endpoint | Description | Role |
|---|---|---|---|
GET | /api/v1/permissions | List all permissions | admin |
GET | /api/v1/permissions/roles | List role-permission mappings | admin |
PUT | /api/v1/permissions/roles/{role} | Update role permissions | admin |
System
| Method | Endpoint | Description | Role |
|---|---|---|---|
GET | /api/v1/health | Health check | public |
GET | /api/v1/settings | Get system settings | admin |
PUT | /api/v1/settings | Update system settings | admin |
POST | /api/v1/backup | Create database backup | admin |
GET | /api/v1/backup/list | List available backups | admin |
POST | /api/v1/backup/restore | Restore from backup | admin |
POST | /api/v1/setup | Initial setup wizard | public (first run only) |
Timelapses
| Method | Endpoint | Description | Role |
|---|---|---|---|
GET | /api/v1/timelapses | List timelapses | viewer+ |
GET | /api/v1/timelapses/{id} | Get timelapse details | viewer+ |
DELETE | /api/v1/timelapses/{id} | Delete timelapse | admin |
GET | /api/v1/timelapses/{id}/download | Download timelapse MP4 | viewer+ |
Overlay
| Method | Endpoint | Description | Role |
|---|---|---|---|
GET | /api/v1/overlay/{printerId} | OBS overlay data for a printer | public |
tip
This is a summary of the most commonly used endpoints. Your instance's Swagger UI at /api/v1/docs is the complete, always-current reference with request/response schemas and a "Try it out" feature.
See Also
- API Tokens — create scoped tokens for automation