Getting started

Error responses

The LifeLoop API uses standard HTTP status codes. All error responses share a consistent JSON shape so you can handle them uniformly.

Response shape

example error
{
  "status": 400,
  "message": "Bad Request",
  "details": "startDate must be a valid ISO 8601 date-time"
}

Status codes

CodeNameMeaning
200OKRequest succeeded.
201CreatedResource was created.
204No ContentRequest succeeded with no body (typical for DELETE).
400Bad RequestMalformed request — missing or invalid parameter.
401UnauthorizedMissing or invalid Bearer token.
403ForbiddenToken lacks the scope or tenant access for the resource.
404Not FoundResource does not exist or is not visible to this token.
409ConflictRequest conflicts with current state (e.g. duplicate).
422Unprocessable EntityBody failed validation. See `errors` array.
429Too Many RequestsRate limit exceeded. See Rate limiting.
500Internal Server ErrorUnexpected server error. Safe to retry.
503Service UnavailableAPI temporarily unavailable. Retry with backoff.

Validation errors (422)

When request body validation fails, the response includes a per-field errors array:

HTTP 422
{
  "status": 422,
  "message": "Validation failed",
  "errors": [
    { "field": "startTime", "message": "must match HH:mm" },
    { "field": "durationInMinutes", "message": "must be a positive integer" }
  ]
}

Retry guidance

  • 5xx and 429 responses are safe to retry with exponential backoff.
  • 4xx responses (except 429) indicate a client error — do not retry without changing the request.