Getting Started
API Error Codes
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
| Status | Name | Description |
|---|---|---|
400 | Bad Request | The request body or query parameters are missing or malformed. Check the error message for the specific field. |
401 | Unauthorized | No Authorization header was provided, or the token is expired or invalid. |
403 | Forbidden | The authenticated account does not have permission for this resource or feature (e.g. API access requires Pro+). |
404 | Not Found | The requested resource does not exist, or belongs to a different account. |
429 | Too Many Requests | Rate limit exceeded. Inspect the Retry-After header and back off before retrying. |
500 | Internal Server Error | An 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();