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

CodeMeaningDescription
200OKRequest successful
201CreatedResource created successfully
202AcceptedAsync operation accepted (e.g. remote start)
400Bad RequestInvalid request parameters or body
401UnauthorizedMissing or invalid API key / token
403ForbiddenInsufficient permissions or email not verified
404Not FoundResource not found
409ConflictResource already exists (e.g. duplicate charger ID)
429Too Many RequestsRate limit exceeded for your tier
500Internal Server ErrorSomething went wrong on our end
503Service UnavailableCharger 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."
  }
}