Error schema
All error responses follow the same structure.
Short machine-readable error identifier.
Human-readable explanation.
Examples
{ "error": "bad_request", "message": "Invalid request parameters.", "status": 400 }
{ "error": "unauthorized", "message": "Invalid or missing API key.", "status": 401 }
{ "error": "forbidden", "message": "Action not allowed for this API key.", "status": 403 }
{ "error": "not_found", "message": "Resource not found.", "status": 404 }
{ "error": "conflict", "message": "Conflict with current state.", "status": 409 }
{ "error": "service_unavailable", "message": "No active devices available.", "status": 503 }