Errors
All API errors return a consistent JSON format with an error code and human-readable message.
Error response format
Error response
json
{"success": false,"error": {"code": "NOT_FOUND","message": "Charger CHARGER-001 not found"}}
HTTP status codes
| Code | Meaning | Description |
|---|---|---|
200 | OK | Request successful |
201 | Created | Resource created successfully |
202 | Accepted | Async operation accepted (e.g. remote start) |
400 | Bad Request | Invalid request parameters or body |
401 | Unauthorized | Missing or invalid API key / token |
403 | Forbidden | Insufficient permissions or email not verified |
404 | Not Found | Resource not found |
409 | Conflict | Resource already exists (e.g. duplicate charger ID) |
429 | Too Many Requests | Rate limit exceeded for your tier |
500 | Internal Server Error | Something went wrong on our end |
503 | Service Unavailable | Charger not connected via WebSocket |
Common errors
Rate limit exceeded
json
{"success": false,"error": {"code": "RATE_LIMIT_ERROR","message": "API rate limit exceeded. Your free tier allows 100 requests per day. Upgrade your plan for higher limits."}}
Charger not connected
json
{"success": false,"error": {"code": "SERVICE_UNAVAILABLE","message": "Charger CHARGER-001 is not connected"}}
Invalid API key
json
{"success": false,"error": {"code": "UNAUTHORIZED","message": "Invalid or inactive API key"}}
Charger not found
json
{"success": false,"error": {"code": "NOT_FOUND","message": "Charger CHARGER-001 not found"}}
Charger limit reached
json
{"success": false,"error": {"code": "RATE_LIMIT_ERROR","message": "Charger limit reached. Your free tier allows 1 charger(s). Upgrade your plan to add more chargers."}}