Usage, limits and billing

What counts as a call, what each plan includes, and what happens at the limit.

Omniio meters MCP protocol calls by UTC calendar month. The counter is separate from Activity because discovery calls are billable and audit rows eventually expire.

What counts#

Each successful arrival at one of the three Omniio tools increments the monthly counter: search_tools, describe_tool and run_tool. A run still counts when policy, approval, an upstream server or its own arguments make it fail—the gateway performed the request and returned its answer.

A request refused by the per-minute burst ceiling does not count. That check happens first, reaches no upstream and tells the caller when the minute rolls.

Published plans#

PlanMonthly priceIncluded MCP callsOverageMCP burst/minREST requests/min/keyActivity
Free€025,000Hard limit601207 days
Pro€19100,000€0.40 / 1K12030030 days
Scale€49500,000€0.25 / 1K3006003 months
Business€1492,000,000€0.20 / 1K6001,2006 months
EnterpriseCustomCustomVolume pricingCustomCustom1 year

The live source for these values also drives the pricing page, the in-app meter and the gateway checks, so the displayed allowance and the enforced allowance are the same number.

At the monthly limit#

Free has a hard limit. Its first 25,000 calls in the UTC month may proceed; a later call is refused until the first instant of the next UTC month or until the account upgrades. The error names the plan, post-increment call number and reset date.

Paid published plans continue into overage. Calls past the included amount are metered at that plan's per-1,000 rate and added to the next invoice. Enterprise volume and ceilings are agreed in its contract.

Burst protection#

The per-minute ceiling exists for loops, not normal throughput. It is shared by the billing account because the MCP calls reach the same upstream systems. Once the ceiling is crossed, Omniio refuses the rest of that clock-minute window before monthly metering or an upstream connection.

REST limits differ: they are per API key, not per account, so one runaway export does not throttle a separate integration. Every API response includes the limit, remaining requests and reset time in X-RateLimit-* headers; a refusal also includes Retry-After.

Reading the meter#

Settings → Billing shows the current UTC period, calls used, included volume, overage already accumulated, reset date and the plan that owns the allowance. A team member sees the owner's team plan and can go to the team page; billing changes remain with the account paying for it.

The same snapshot is available programmatically from GET /api/v1/usage.

Next: Notifications.

On this page