All limits and quotas
Every numeric limit in Metric Vault in one place: credits, seats, rate limits, crawl depths, timeouts, payload sizes, retention and batch sizes.
Last updated 2026-08-06
Summary#
Every ceiling in the product, on one page. Use it to tell an expected cap apart from a fault: if a crawl stopped at twelve pages or a list came back with fifty rows, the number is probably in a table below and the run worked exactly as designed. Where a limit produces a message, the message is quoted so you can match it to a screenshot.
Overview#
Limits here fall into eight kinds.
| Kind | What it protects | Example |
|---|---|---|
| Plan allowances | The commercial shape of a plan | 500 credits a month on Pro |
| Rate limits | The platform, from runaway automation | 100 light-tool calls an hour |
| Work limits | Run time, by capping how much a tool inspects | A 12-page crawl |
| Time budgets | You, from waiting forever | 82 seconds for a PageSpeed report |
| Payload sizes | Storage and delivery | A 2 MB share link |
| Page sizes | Response weight | 60 activity rows per request |
| Retention | Storage | 90 days of saved work |
| Batch sizes | Background jobs, from overrunning | 50 monitored URLs per pass |
Site Audit crawl depth#
How many pages one Site Audit run crawls, by plan. Source of truth: MV_CRAWL_PAGE_LIMITS_DEFAULT in _worker.js, overridable per plan through the crawl_pages:<plan> platform config key.
| Plan | Pages per audit |
|---|---|
| Free | 8 |
| Starter | 20 |
| Pro | 50 |
| Agency | 100 |
| Enterprise | 200 |
A run also stops at a wall-clock budget (MV_CRAWL_WALL_MS) if the site is slow, and reports that it did. URLs disallowed by the site's own robots.txt are skipped and counted separately.
A separate distinction matters more than any single number: some limits are enforced, meaning the platform stops you and says so, and some are published allowances, meaning they describe the plan but nothing checks them. Plan capability matrix separates the two. Everything on this page is enforced unless the row says otherwise.
Plan allowances#
| Limit | Free | Starter | Pro | Agency | Enterprise |
|---|---|---|---|---|---|
| Monthly credits | 0 | 100 | 500 | 2,000 | 10,000 |
| Invited teammates | 0 | 0 | 4 | 14 | Effectively unlimited |
| Total seats including the owner | 1 | 1 | 5 | 15 | Effectively unlimited |
| AI recommendations per month | None | None | 100 | 400 | 2,000 |
| Active API keys | — | — | — | — | 5 |
| Rule | Value |
|---|---|
| Credit reset | 00:00 UTC on the first day of the calendar month, not your billing anniversary |
| Carry-over | None. Unused credits do not roll over |
| Premium threshold | 3 credits. Only runs at or above it are blocked when the allowance is spent |
| What counts toward usage | Every charged run, including 1-credit runs and cached results |
| API keys per account | 5 active. Creating a sixth returns Key limit reached (5 active keys). Revoke one first. |
The AI recommendations minimum plan and per-plan allowance are configurable by an administrator, so a specific account can differ from the table above.
Rate limits#
| Limit | Value | Applies to |
|---|---|---|
| Light-tool fair use | 100 calls per clock hour | Every signed-in account |
| Anonymous fair use | 100 calls per clock hour, per IP address | The public tools, and the translation service |
| Bucket | One clock hour in UTC. It resets on the hour, not on a rolling window | Both |
Over the limit you get Hourly fair-use limit reached (100 light-tool calls/hour). This protects our infrastructure from abuse while keeping your monthly usage unlimited. Please wait ~<N> minutes for the next hourly reset.
Only free and light runs consume the hourly bucket. Runs costing 3 credits or more do not touch it; they are limited by the monthly allowance instead.
Work limits, per tool#
How much each tool inspects. These exist so a run finishes in seconds.
| Tool | Limit |
|---|---|
| Bulk Analysis | 10 domains per run. The screen says "up to 20"; the first 10 lines are processed |
| Duplicate Content Audit | Crawls up to 12 pages |
| Internal Linking Engine | Crawls up to 20 pages |
| llms.txt Builder | Lists up to 25 URLs from your sitemap |
| Plagiarism check | Needs at least 25 words. Samples 8 sentences and reports up to 12 sources |
| Fact Check | Needs at least 25 words. Extracts up to 6 claims and keeps up to 5 citations per claim |
| Growth Actions | Reads your six AI-visibility tools' latest saved results and returns the top 20 ranked actions |
| Gap Finder | Both sides are required. Up to 3 competitor domains |
| Audience Overlap | At least two domains are required. Up to 3 competitors |
| Competitor Battle | Both sides are required |
| Localization | 100 strings and 20,000 characters per request |
| Public share link | Refuses to build from a result shorter than 60 characters |
Row counts requested from the data provider, for the tools where the number is worth knowing:
| Tool | Rows requested |
|---|---|
| Domain Overview | Up to 50 ranked keywords, 30 competitors, 10 top pages, 10 subdomains and 10 anchors, plus a 21-country breakdown and 60 months of history |
| Organic Research | Up to 80 ranked keywords |
| Rank Tracker | Up to 100 ranked keywords |
| Content Decay Detector | Up to 700 ranked keywords |
| PPC Research | Up to 50 paid keywords and 10 paid competitors |
| Keyword Explorer | Up to 20 suggestions per source |
| Backlink Profile | Up to 15 rows per supporting list |
| Link Prospector | Up to 6 competitors and 40 referring domains |
| Market Map | Up to 100 keyword suggestions and 12 competitors |
| Topic Map | Up to 300 keyword suggestions |
| Content Gap | Up to 250 keyword suggestions |
AI-visibility tools ask a fixed number of questions of each connected AI engine per run:
| Tool | Prompts per run |
|---|---|
| Visibility Overview | 10 |
| Prompt & Question Research | 12 |
| Google AI Overview Tracker | 12 |
| AI Citation Tracker | 12 |
| Prompt Tracking | 15 |
| Scheduled AI visibility tracking | 8 per brand, up to 5 brands per pass |
Competitor Monitor caps what it stores from each page it snapshots:
| Signal | Limit |
|---|---|
| HTML inspected | The first 500,000 characters |
| Title, heading and Open Graph title | 300 characters |
| Meta description and Open Graph description | 500 characters |
| Subheadings kept | First 25 |
| Prices | 200 scanned, 60 stored |
| Product names | 50 |
| Navigation items | 30 |
Time budgets#
| Tool or stage | Budget | What happens when it is exceeded |
|---|---|---|
| Typical light tool | A few seconds | — |
| Typical workflow | About 45 seconds | Steps that fail are reported inside the consolidated report |
| PageSpeed & Vitals | 75 seconds per attempt, 82 seconds overall | A stored report up to 7 days old is served rather than an error |
| Full Article Writer | 60 to 90 seconds typical | It runs as a background job you poll |
| Auto-Execute, SEO Brief stage | 45 seconds | The pipeline stops and offers a retry |
| Auto-Execute, Article Outline stage | 50 seconds | Falls back to a synthetic outline and continues |
| Auto-Execute, Full Article Writer stage | 110 seconds | The pipeline stops and offers a retry |
| Auto-Execute, Content Optimizer stage | 60 seconds | Skipped if the writer returned nothing |
| Responsiveness analysis | 40 seconds for the AI pass | That site took too long to respond. Try again, or check the address. |
Each Auto-Execute stage retries once after a 1.5 second pause when the failure looks transient: a timeout, a server error or a network problem.
Input and payload sizes#
| Where | Limit | Over-limit behavior |
|---|---|---|
| Localization, number of strings | 100 per request | Too many strings (max 100 per request) |
| Localization, total text | 20,000 characters per request | Payload too large (max 20000 chars per request) |
| Public share link | 2,000,000 characters of report | Report too large — max 2MB |
| Saved run payload | 1,600,000 characters | The run is not stored; the result still displays |
| Saved rendered report | 900,000 characters | The rendered copy is not stored |
| One saved result | About 400 KB | Larger runs are not stored |
| White-label logo | About 500 KB | Logo too large — keep it under 500KB |
| White-label company name | 120 characters | Silently truncated |
| White-label footer text | 300 characters | Silently truncated |
| Assistant message | 2,000 characters and 4 images | The composer stops accepting more |
| Post to X | 280 characters | This post is <n> characters; X allows 280. |
| Scheduled social post text | 4,000 characters | Silently truncated |
| Blog media upload | 5 MB | Max 5MB |
| Blog media import by URL | 15 MB | Image is larger than 15MB |
| Newsletter recipients per send | 2,000 | Capped, and the response says so |
| Brand comparison | 5 brands | Extra brands are ignored |
Page sizes#
How many rows one request returns.
| Where | Range | Default |
|---|---|---|
| Activity history | 1 to 200 | 60 |
| Saved work | 1 to 100 | 40 |
| Monitored-URL changes | 1 to 500 | 200 |
| Monitored-URL snapshots | 1 to 100 | 20 |
| Share links | Fixed | 50 |
| Notifications | Fixed, from a 14-day window | 50 |
| Scheduled social posts | Fixed | 100 |
| Visibility trend export | 1 to 365 days | 90 |
| Bulk deletion of saved work | 200 ids per request | — |
Retention and cache lifetimes#
| Item | Kept for |
|---|---|
| Saved results, including the rendered report | 90 days |
| Notifications feed | A rolling 14-day window |
| Background article job | 1 hour, then Job not found or expired. Please re-submit. |
| Shared data cache | 12 hours to 10 days, depending on the tool |
| PageSpeed report | 6 hours fresh, and up to 7 days as a fallback if the service is rate limiting |
| Chrome extension quick view | 24 hours |
| Benchmarks | 30 days |
| Search Console performance data | 1 hour |
| Daily briefing | One per account, per day, per target |
| Favorite domains | 20, stored in your browser |
| Recent analyses | 12, stored in your browser |
| Recent sections in the command palette | 8, stored in your browser |
The shortest shared-cache lifetime is 12 hours, for Content Optimizer, because it reads your own page. The longest is 10 days, for Domain Overview and Backlink Profile. Result caching and freshness explains the layers and Tool catalog and credit cost lists the lifetime for every tool.
Automation#
Scheduler passes run every 15 minutes, with an hourly backup pass. Each pass processes a bounded batch.
| Automation | Per item | Per pass |
|---|---|---|
| Competitor Monitor | Every 6 hours by default, adjustable from 1 to 48 hours | 50 URLs |
| Rank Alerts | Every 24 hours. Not adjustable | 30 alerts per scheduler tick |
| AI visibility tracking | About every 22 hours for the whole job | 5 brands, 8 prompts each |
| Scheduled Reports | Weekly by default | 20 schedules |
| Scheduled social posts | At the time you set | 25 posts |
| Saved result cleanup | Continuous | All rows older than 90 days |
| Setting | Range | Default |
|---|---|---|
| Monitored-URL check interval | 1 to 48 hours | 6 hours |
| Rank alert drop threshold | 1 to 20 positions | 5 |
| AI visibility drop threshold | 1 to 99 percentage points | 15 |
| AI visibility drop email | One per alert per 24 hours | — |
Automation limits and frequency covers the timing model in full, including what happens on the first run of a new watch.
What is not limited#
| Item | Note |
|---|---|
| Monitored URLs, tracked prompts and calendar items | No enforced cap on how many you create. Your plan publishes a figure; see Plan capability matrix |
| Rank alerts | Capped at 200 per account. That is an abuse stop, not the plan figure: each alert is a paid lookup every 24 hours, so the count is the recurring cost. The per-plan numbers in Plan capability matrix remain commercial guidance |
| Scheduled reports | No enforced cap on a paid plan |
| Free technical tools | No monthly cap beyond the hourly fair-use limit |
| Light tools on a paid plan | Never blocked by the monthly allowance |
| Reopening, exporting and sharing saved work | Free and uncapped |
| Browser-only tools | Image Resize, Image Reformat, the Live Writing Editor, the GEO Content Scorer and Image Support never call the server |
| Tools open at once | Switching sections does not cancel a run |
See also
Was this article helpful?
Thanks — feedback noted for the docs team.