API Reference¶
Complete REST API documentation for Printernizer. All endpoints follow RESTful conventions and return JSON responses.
Base URL¶
Available API Endpoints¶
Core APIs¶
- Printers API - Printer management, status, and control
- Jobs API - Print job tracking and history
- Files API - File browsing, downloads, and management
- Analytics API - Business metrics and reporting
- WebSocket API - Real-time updates and events
System APIs¶
- Health API - Health checks and version info
- Settings API - Configuration management
- System API - System utilities and diagnostics
Quick Start¶
Authentication¶
Currently, Printernizer does not require authentication. Future releases will include role-based access control.
Request Format¶
All POST/PUT requests should include:
Response Format¶
All responses follow this structure:
Error responses:
Example Request¶
# Get all printers
curl http://localhost:8000/api/v1/printers
# Get specific printer
curl http://localhost:8000/api/v1/printers/abc123
# Download a file
curl -X POST http://localhost:8000/api/v1/files/download \\
-H "Content-Type: application/json" \\
-d '{"printer_id": "abc123", "file_path": "/models/test.3mf"}'
Interactive API Documentation¶
Printernizer includes interactive API documentation:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
Health Endpoints¶
GET /api/v1/health¶
Check system health status.
Response:
GET /api/v1/update-check¶
Check for available updates.
Response:
{
"current_version": "2.7.0",
"latest_version": "2.7.0",
"update_available": false,
"release_url": "https://github.com/schmacka/printernizer/releases/latest"
}
Auto-Generated Documentation¶
The following API documentation pages are auto-generated from the FastAPI OpenAPI specification:
Rate Limiting¶
Currently, there are no rate limits. This may change in future releases.
Versioning¶
The API uses URL versioning (e.g., /api/v1/). Breaking changes will increment the version number.
Need Help?¶
- Check the User Guide for usage examples
- Review the Architecture for technical details
- Visit GitHub Issues to report problems