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
| 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();