Skip to main content
Toolzum
Honest ceilings, traced to code

Every limit, listed plainly.

No fine print. Each ceiling below names its value, why it exists, and what to do when you hit it.

LimitValueWhyWhen hit
Image intake per file50 MB — same for guests and signed-in usersLocal compute costs nothing, so the gate exists only for browser memory and abuse (src/utils/fileSizeLimits.ts, src/lib/planTiers.ts CATEGORY_CAPS).Compress or resize the image first (Image Compressor, Image Resizer), or split the job across files.
PDF intake per file125 MB — same for guests and signed-in usersSame memory/abuse guard as above; PDF renderers hold whole documents in memory.Compress the PDF or split it (Split PDF), then process the parts.
Audio intake per file100 MB — same for guests and signed-in usersDecoded audio buffers expand far beyond file size in RAM.Convert to a compressed format first (Audio Converter) or trim the clip.
Video intake per file250 MB — same for guests and signed-in usersVideo frames are the heaviest in-memory workload; the ceiling protects the tab from crashing.Compress or trim the video, or process it in shorter segments.
Anything else per file150 MB — same for guests and signed-in usersFallback ceiling (CATEGORY_CAPS.other) for formats without their own category.Same playbook: shrink, split, or compress before retrying.
Server-reported file cap — guest30 MB max file, 5-file batches, 1 threadFILE_CAPS for the anon plan, served by /api/check-plan for tools that ask the server.Sign in free to lift the cap, or process files one small batch at a time.
Server-reported file cap — signed in free150 MB max file, 25-file batches, 1 threadFILE_CAPS for the signedin plan — the account proves you are not a bot, so batches grow.Upgrade to Pro for larger batches, or split work into 25-file runs.
Server-reported file cap — Pro2 GB max file, 500-file batches, 6 parallel threadsPro FILE_CAPS: paying users fund the abuse headroom, so every gate opens wide.You are at the top tier — if a 2 GB file still fails, it is device memory, not policy.
Pro-tool downloads — guest0 per day (blocked, sign-in required)downloadLimit(anon, pro-tool) = 0: premium output is the one metered surface.Sign in free — that alone unlocks a daily taste of every Pro tool.
Pro-tool downloads — signed in free2 per daydownloadLimit(signedin, pro-tool) = 2: enough to evaluate any premium tool.Wait for the daily reset, or upgrade to Pro for unlimited downloads.
Local-tool downloads — everyoneUnlimited, no account neededLocal compute costs nothing, so local output is never metered.There is nothing to hit — if a download fails, it is the browser, not a quota.
AI credits — signed in free5 credits, one-time trial, never refillsFREE_TRIAL_CREDITS: a capped trial bounds cost while staying a real trial.Upgrade to Pro for the monthly allowance; local (non-AI) tools stay free forever.
AI credits — Pro200 credits per 30-day cyclePRO_CREDITS with CREDIT_RESET_DAYS = 30: a recurring budget, not a balance.Wait for the monthly reset, or use a free local alternative for the same task.
AI requests per minute2/min free, 5/min ProaiRateLimit(): a 60-second sliding window protecting the AI provider from bursts.Slow down for a minute — the window slides, so brief pauses clear it.
URL shortener10 requests per minute per IPPer-IP D1-backed window (functions/api/url-shorten.ts); shortening calls free third-party providers (TinyURL, is.gd).Wait a minute and retry; for bulk jobs, shorten in small groups.
Bulk URL status checker15 requests per minute per IP, max 45 URLs per requestfunctions/api/url-status-check.ts: each request can fan out to dozens of subrequests.Split lists longer than 45 URLs across requests spaced a minute apart.
Page fetcher (screenshot / SEO tools)20 requests per minute per IP, 15 s timeout, 1.5 MB page capfunctions/api/fetch-page.ts TIMEOUT_MS / MAX_BYTES: upstream pages must be HTML and bounded.Retry slow pages later; pages over 1.5 MB or non-HTML are rejected by design.
RDAP / domain lookup20 requests per minute per IP; 6 s bootstrap, 10 s query timeoutfunctions/api/rdap-lookup.ts plus src/lib/rdap.ts: authoritative servers vary in speed.Wait a minute, then retry — ambiguous answers return unsupported so callers fall back.
Status-check fetch behaviour8 s per fetch, up to 5 redirect hops, 45-subrequest budgetTIMEOUT_MS / MAX_REDIRECTS / SUBREQUEST_BUDGET: long redirect chains cost real worker subrequests.Direct (non-redirecting) URLs check fastest; chains over 5 hops stop at the last hop.
Tool module loading15 s import timeout before the slow-load noticeDynamicModuleWrapper IMPORT_TIMEOUT_MS: code-split chunks load on demand.Reload the page — chunk loads are cached after the first success.
Browser memory — the final ceilingIntake ceilings above; device memory is the last constraintAfter the per-type intake caps, the only remaining limit is how much RAM your browser can spare.Close other tabs, process fewer files per batch, or move to a desktop for huge jobs.

Limit questions, answered.

Are the intake limits different for guests and signed-in users?

No. The per-category intake ceilings (images 50 MB, PDFs 125 MB, audio 100 MB, video 250 MB, other 150 MB) are identical for guests and signed-in users — they guard browser memory, not accounts. Only the server-reported batch caps and Pro-tool download budgets differ by plan.

What happens when I hit a rate limit?

You get an HTTP 429 response with a Retry-After header telling you to wait about a minute. All API rate limits use a 60-second sliding window per IP address, so a short pause clears them — nothing is locked or penalised.

Do local tools really have no download limit?

Correct. Downloads from local (client-side) tools are unlimited for everyone with no account needed. The only metered downloads are Pro-tool outputs: blocked for guests, 2 per day for signed-in free users, unlimited for Pro.

Why did my large file fail if limits are generous?

The one ceiling we cannot lift is your device's memory. Browsers hold decoded files in RAM — a 250 MB video can need gigabytes once decoded. Close other tabs, use smaller batches, or switch to a desktop with more RAM.