API Reference
Upload
Upload a mobile screenshot or design image to the floow.design CDN. The returned URL can be passed directly to the Image → HTML API — no need to host images yourself.
Recommended flow: Upload an image → get a CDN URL → pass the URL to POST /api/v1/image-to-html. This avoids embedding large base64 strings in your API calls and lets you reuse the same image across multiple conversions.
/api/v1/upload🔑 Auth requiredUpload an image file to the floow.design CDN. Accepts multipart/form-data (binary file) or application/json (base64 data URL). Returns a permanent CDN URL and a record ID.
- Supported formats: PNG, JPEG, WEBP, GIF. Maximum file size: 10 MB.
- Images are stored under the image-to-html/ path on the floow.design Vercel Blob CDN.
- The url is permanent and publicly readable — safe to pass to image-to-html.
- No credits are deducted for uploads — only the subsequent image-to-html call costs 1 credit.
- Use multipart/form-data (file field) for browser/mobile uploads. Use JSON + base64 for server-to-server.
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
file | File (multipart) | No | Binary image file sent as multipart/form-data with field name file. Use this for direct file uploads from a browser or CLI. |
image | string (JSON) | No | Base64 data URL — data:image/png;base64,... Send as application/json. Either file or image must be provided. |
filename | string (JSON) | No | Optional filename hint when using the JSON/base64 mode. Stored for reference only. |
{ "id": "clxyz01abc", "url": "https://kpjfmdco8hzsojpq.public.blob.vercel-storage.com/image-to-html/1744450000000-a1b2c3-checkout-screen.png", "filename": "checkout-screen.png", "contentType": "image/png", "size": 284320, "createdAt": "2026-04-12T10:00:00Z"}Upload a file (multipart)
The most efficient method for browser inputs and CLI tools. The TypeScript example chains directly into the Image → HTML API.
curl https://www.floow.design/api/v1/upload \ -X POST \ -H "Authorization: Bearer fl_your_api_key" \ -F "file=@/path/to/screenshot.png"Upload via base64 (JSON)
Use this if your image is already in memory as a base64 string or data URL.
# Encode image to base64 firstB64=$(base64 -i /path/to/screenshot.png)
curl https://www.floow.design/api/v1/upload \ -X POST \ -H "Authorization: Bearer fl_your_api_key" \ -H "Content-Type: application/json" \ -d "{\"image\":\"data:image/png;base64,${B64}\"}"