---
title: "What are Wireflow's limits for uploads, runs and the API?"
description: "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."
updated: 2026-10-20
---

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](/docs/api/upload-a-file-and-use-it-in-a-run), and the reference is [Media Uploads](/docs/api/media).

## 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` |

```bash
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](https://www.wireflow.ai/pricing)) |

A `429` for too many runs carries a body like this, where `retryAfter` is a Unix timestamp that matches `X-RateLimit-Reset`:

```json
{
  "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](/docs/api/troubleshooting).

## 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](/docs/api/templates-execute) 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](/docs/nodes).

For example, the page for the [GPT Image 2.5 Flare Edit node](/docs/nodes/edit--openai_gpt_image_2_5_flare_edit) 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.

Last updated: 2026-10-20

---

Documentation index: fetch https://www.wireflow.ai/llms.txt for the full list of Wireflow docs.
