What are Wireflow's limits for uploads, runs and the API?
Wireflow's limits for uploads, runs and the API: file sizes per upload method, the 10GB hourly upload budget, route limits and what happens at a limit.
Wireflow's documented limits cover file uploads, up to 4MB in a single call and up to 100MB for video through an upload URL, a 10GB hourly budget for upload URLs, a few API routes with caps of their own, and your credit balance, which has to cover each run. When you go over a limit, the API refuses the request with an error, often 429 Too Many Requests, and the sections below say what to do next.
Every number on this page is copied from the live reference and node pages linked in each section.
How large can an uploaded file be?
An uploaded file can be up to 100MB for video and 25MB for images and audio through an upload URL, but 4MB in a single upload call, about 3MB as a base64 dataUrl, and 1MB for SVG.
| Limit | Value |
|---|---|
| Single upload call, multipart file | 4MB |
Single upload call, base64 dataUrl |
About 3MB of file |
| Single upload call, file copied from a public URL | 25MB, for every type |
| Upload URL flow, image or audio | 25MB |
| Upload URL flow, video | 100MB |
| SVG, single upload call only | 1MB, at most 20,000 elements, nested at most 64 deep |
| Time to PUT the file to an upload URL | 15 minutes |
| Time to finish an upload URL upload | 24 hours, after which a daily cleanup removes it |
Accepted types are images (jpg, png, gif, webp, avif), video (mp4, webm, mov) and audio (mp3, wav, m4a). Step-by-step code for each method is in upload a local image or video, and the reference is Media Uploads.
How much can I upload in an hour?
Your account can request up to 10GB of upload URLs in a rolling hour. Each request counts for one hour from the moment it is made, whether or not you finish the upload, and a burst of parallel requests can't get past the limit.
Past the budget, POST /api/v1/media/upload-url answers 429 with code upload_budget_exceeded and a Retry-After in seconds, and the message says when room starts to come back. Nothing is signed for a refused request.
Which API routes have their own limits?
Three routes have documented limits of their own:
| Route | Limit |
|---|---|
POST /api/v1/apps/{slug}/execute, to run a published app |
20 requests per minute per API key |
POST /api/v1/media/upload-url |
10GB of upload URLs per account in a rolling hour |
POST and PUT /api/v1/workflows, to save a workflow |
1,500 edges and a 4 MB request body per workflow |
Running a template by reference has limits too, listed in the section on template runs below. For any route, the rate-limit headers on each response show where you stand.
How do I see how many requests I have left?
Read X-RateLimit-Remaining on any response: every response includes X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset.
| Header | What it tells you |
|---|---|
X-RateLimit-Limit |
The highest number of requests allowed in the current window |
X-RateLimit-Remaining |
Requests left in the current window |
X-RateLimit-Reset |
When the window resets, as a Unix timestamp in seconds |
Retry-After |
Seconds to wait before you retry, sent only with a 429 |
curl -s -D - -o /dev/null https://www.wireflow.ai/api/v1/me \
-H "Authorization: Bearer $WIREFLOW_API_KEY" | grep -i '^x-ratelimit'
What happens when I hit a limit?
The API refuses the request with an error that names the limit. Wait, or change the request, then send it again.
| You went over | What the API returns | What to do |
|---|---|---|
| A request rate limit | 429 Too Many Requests with a Retry-After header in seconds |
Wait that many seconds, then retry with backoff |
| The size limit for an upload method | file_too_large. An upload URL request is refused before anything is signed |
Use the upload URL flow, or a smaller file |
| The hourly upload budget | 429 with code upload_budget_exceeded and Retry-After |
Wait. The message says when room comes back |
| One upload URL request at a time per account | 429 with code upload_busy and Retry-After: 1 |
Retry. Nothing was signed |
| Your credit balance | 402 with requiredCredits, availableCredits and a breakdown per node |
Add credits or lower the cost, then run again (pricing page) |
A 429 for too many runs carries a body like this, where retryAfter is a Unix timestamp that matches X-RateLimit-Reset:
{
"error": "Too many workflow executions. Please try again later.",
"retryAfter": 1711036800
}
The cause, fix and retry code for each error are in why an API request fails.
What is the most one template run can cost?
A template run by reference is rejected up front if its estimate exceeds 2,000 credits, regardless of your balance, with 400 and code estimate_exceeds_ceiling.
These limits apply to POST /api/v1/templates/{slugOrId}/execute, as the Execute Templates reference states them:
| Limit | Value |
|---|---|
| Estimate for one template run | At most 2,000 credits |
| Balance needed before the run starts | 3 times the estimated cost, or the run is refused with 402 and code insufficient_credits |
| Runs per template | 100 executions per hour per template, across all callers |
How long or how large can a generated image or video be?
It depends on the model: each node page lists the settings that model accepts, such as image size, aspect ratio, duration or resolution, so check the node you plan to use in the node reference.
For example, the page for the GPT Image 2.5 Flare Edit node says its output sizes are scaled to fit 0.66 to 8.29 megapixels and a 3840px edge. Settings also change the price: the pricing page shows credits at default settings, and resolution, length and quality change the cost.