Skip to main content

Getting Started

Errors

The floow.design API uses standard HTTP status codes. All error responses return JSON with an error field describing what went wrong.

Error Response Shape

Error response
{  "error": "A human-readable description of the error",  "code": "OPTIONAL_MACHINE_CODE",  "upgrade": true  // present when plan upgrade is required}

HTTP Status Codes

StatusNameDescription
400Bad RequestThe request body or query parameters are missing or malformed. Check the error message for the specific field.
401UnauthorizedNo Authorization header was provided, or the token is expired or invalid.
403ForbiddenThe authenticated account does not have permission for this resource or feature (e.g. API access requires Pro+).
404Not FoundThe requested resource does not exist, or belongs to a different account.
429Too Many RequestsRate limit exceeded. Inspect the Retry-After header and back off before retrying.
500Internal Server ErrorAn unexpected error occurred on our end. These are rare — retry with backoff or contact support.

Handling Errors

TypeScript — error handling
const res = await fetch("https://www.floow.design/api/v1/image-to-html", {  method: "POST",  headers: {    Authorization: "Bearer fl_...",    "Content-Type": "application/json",  },  body: JSON.stringify({ image: "https://example.com/screen.png" }),});
if (!res.ok) {  const { error, upgrade } = await res.json();
  if (res.status === 429) {    // retry with backoff  } else if (upgrade) {    // prompt user to upgrade plan  } else {    throw new Error(error);  }}
const data = await res.json();