Skip to main content

Error Response Format

All error responses are JSON and include a ‘status’ and a machine-readable ‘code’.
{
  "status": "error",
  "code": "dimensions_missing",
  "message": "Detailed error message explaining what went wrong",
  "statusCode": 400
}

Validation errors (400)

These errors occur before the auto-furnish process begins.
StatuscodeMeaning
400invalid_fileFile is not a supported image/PDF, or cannot be parsed
400multiple_pagesPDF contains more than one page
400furniture_detectedFloor plan contains visible furniture (remove and re-upload)
400dimensions_missingAt least one dimension must be readable
400size_unsupportedDimensions/scale not supported
400file_unreadableLow resolution or corrupted upload

Authentication & authorization (401 / 403)

These errors occur when authentication headers are missing or invalid.
StatuscodeMeaning
401unauthorizedMissing or invalid X-API-Key / X-API-Secret
403forbiddenKey is valid but not allowed for this endpoint

Processing and system errors

Errors thrown during or after the auto-furnish request.
StatuscodeMeaning
408timeoutProcessing exceeded the time limit
413payload_too_largeFile exceeds 10 MB
415unsupported_media_typeUnsupported file type
429rate_limitedToo many requests
500internal_errorUnexpected internal error
503service_unavailableService temporarily unavailable

Handling guidance

  • 400-level validation errors: fix the input and retry.
  • 401/403: verify credentials and permissions.
  • 408: retry with backoff; contact support if persistent.
  • 413: reduce file size or upload a smaller file.
  • 415: ensure the upload is JPG, PNG, or single-page PDF.
  • 429: slow down requests; retry after backoff.
  • 500/503: retry with backoff; contact support if persistent.