VisualQ

Plan limits

How feature limits work across VisualQ plans.

How limits are enforced

VisualQ applies limits at different stages depending on the feature:

Limit typeWhen enforcedBehavior when exceeded
Projects, scenarios, environmentsAt create timeUpgrade gate — you cannot create more until you upgrade
AI quotas (Smart Diff, Coach, crawl)At request timeUpgrade gate or per-run cap
IntegrationsAt connect timeUpgrade gate for the required plan
Snapshot quotaPre-flight before dispatch (when enforcement is active)Run rejected with snapshot_quota_exceeded
Browsers, viewports, CI, members, schedules, historyDocumented per planCounting and UI badges exist; hard gates are rolling out — see notes below

When you hit a gated limit, VisualQ shows an upgrade gate — a dialog explaining which plan unlocks the feature. No data is lost; you just need to upgrade to continue.

Snapshot quota enforcement

Each plan ships with a monthly snapshot allowance. Snapshots are counted after the worker successfully uploads a screenshot to S3, so failed runs never burn quota.

  • A VRT, accessibility, performance, SEO, or security test consumes one snapshot per (scenario × viewport × browser) combination.
  • A FRT scenario consumes one snapshot per executed scenario per browser.
  • Tracking audits do not consume snapshots in V1 (their worker output is JSON, not PNG).

Usage is always counted live and shown on the account page with traffic-light bands at 70%, 90%, and 100%. Warning emails go out the first time you cross 70% and 90% within a period.

Hard blocking activates when platform snapshot enforcement is enabled. When active and a run would exceed the monthly cap:

  1. The run is rejected upfront (HTTP 403 with errorCode: "snapshot_quota_exceeded"). No tests execute.
  2. The dashboard pops the snapshot upgrade dialog with the next reset date and a one-click upgrade path.
  3. Scheduled runs that hit the cap are skipped with status skipped_quota so they don't waste capacity once you upgrade mid-period.

Support can also enable or disable enforcement per organization without changing your plan.

The quota resets at 00:00 UTC on the first of each month.

Need a temporary boost outside of an upgrade? Contact support — we can grant a percentage of your monthly cap as a one-off via the admin reset endpoint, with a full audit trail in your org's audit log.

Metered overage billing (pay-per-snapshot above the cap) is on the roadmap for Business. Until it ships, Business plans follow the same hard-cap behavior as lower tiers when enforcement is active.

Project, scenario, snapshot and environment limits

PlanProjectsTotal scenariosSnapshots / monthEnvironments / projectOverage
Free111501— (hard cap)
Hobby1101 5001— (hard cap)
Team510015 0003— (hard cap)
Business1550075 0005$0.0035 / snap
EnterpriseUnlimitedUnlimitedCustomUnlimitedNegotiated

Scenario limits are enforced across all projects in your organization, not per project. A snapshot = one captured viewport in one scenario in one run. Environment limits are per project — each project can have up to N environments (Production is auto-created on first access and counts toward the limit).

Browser limits

PlanAvailable browsers
FreeChromium
HobbyChromium
TeamChromium, Firefox, WebKit
BusinessAll browsers
EnterpriseAll browsers

Firefox and WebKit are marked Team+ in the scenario editor. Plan-based browser blocking is not yet enforced at run time — all browsers can be selected today. Enforcement is planned.

Viewport limits

PlanViewports
All plansDesktop, tablet, and phone

All three preset viewports (1920×1080, 768×1024, 375×667) are available on every plan. Custom viewport sizes are not supported.

Member limits and run history

PlanMembersRun history retention
Free17 days
Hobby130 days
Team590 days
Business15 (org roles: viewer / editor / admin)1 year
EnterpriseUnlimitedUnlimited

QA pillars by plan

Every plan unlocks every pillar — VisualQ is a Quality OS from the Free tier. Higher plans add deeper sub-features (Lighthouse audits, CVE scanning, budgets in CI):

PillarFreeHobbyTeamBusinessEnterprise
Visual regressionYesYesYesYesYes
Accessibility (axe-core)Yes (basic)Yes (basic)Yes (basic)Yes + budgetsYes
SEO basicsYesYesYesYesYes
SEO LighthouseYesYes
Performance (Web Vitals)Yes (basic)Yes (basic)Yes + budgetsYes + Lighthouse + budgetsYes
Security headersYes (basic)Yes (basic)YesYes + CVE scanningYes
Tracking / analytics QAYesYesYesYesYes

AI feature limits

FeatureFreeHobbyTeamBusinessEnterprise
Smart Diff per run1310UnlimitedUnlimited
Smart Diff / month550500UnlimitedUnlimited
Severity classificationYesYesYesYes
Coach AI messages / month1020200UnlimitedUnlimited
Site crawl (Firecrawl) / month20100Unlimited

AI quotas reset on the first day of each calendar month (UTC).

Schedules and CI

CapabilityFreeHobbyTeamBusinessEnterprise
Schedules per project1 daily524 (hourly)Unlimited
CI/CD REST API + GitHub ActionYesYesYesYes
Perf budgets in CIYesYesYes
A11y budgets in CIYesYes
Custom thresholds (per scenario)Yes (UI not gated yet)Yes

Integration limits

IntegrationFreeHobbyTeamBusinessEnterprise
EmailYesYesYesYesYes
Webhooks (HMAC)YesYesYesYes
SlackYesYesYesYes
GitHub PR checksYesYesYes
GitLab MR notesYesYesYes
Jira (auto-issue)YesYes
Xray CloudYesYes
Piano AnalyticsYesYes

Governance and security (Enterprise)

CapabilityEnterprise
SSO / SAMLYes
SCIM provisioningYes
Audit logsYes
IP allowlistYes
Dedicated cloud tenantOptional
SOC 2 / DPA / MSAYes

Upgrade gates

When you try to use a feature that requires a higher plan, you'll see an upgrade dialog with:

  • The feature you tried to use
  • Which plan unlocks it (Hobby / Team / Business)
  • A button to start checkout for the right tier directly

These gates appear contextually throughout the app — in the scenario editor, test runner, integrations page, performance panel, and Coach.

On this page