Skip to main content
Signal has two kinds of limit. Plan allowances follow your plan and count volume. Rate limits and sizes protect the service and are the same on every plan. This page lists both and what you see when you reach one. Pricing has the counting rules and the worked example.

Plan allowances

Every plan includes the board, flow, traces, versions, the REST API and the MCP server. Plans differ in volume, not in features. Prices are in US dollars. Analysed calls, copilot messages and simulated test calls are counted per billing period. Agents and seats are totals. A Free workspace’s period is the calendar month in UTC. A paid workspace’s period is its billing period. Unused allowance does not carry over. Plan and usage under Settings shows each count against its limit.

Plan limit errors

A request that passes a plan allowance is refused with HTTP 402 and the code quota_exceeded. The API and the MCP server return the same fields as the app, in the API’s error object. error.quota says which limit, how much is used and which plan.
402 from POST /v1/agents/{agentId}/runs
An MCP tool returns the same object as a tool error, with the status beside it:
Tool error from start_run
Through the API and the MCP server, only test_calls reaches you today. Starting a run, or calibrating from a signed-in session, spends simulated test calls. The copilot, the brief chat and connecting agents exist in the app only, and calls past the analysed-call allowance wait instead of failing. In the app, the same refusal shows as a notice with See plans. On Enterprise the message ends “Contact us to raise the limit.” Do not retry a 402 quota_exceeded as it is. Nothing changes until the period resets, you upgrade, or you ask for fewer simulated calls. Two other 402 codes are budgets and settings, not the plan:
  • budget_exceeded: your key’s monthly budget, the agent’s test budget or the workspace’s AI model allowance did not cover the request.
  • testing_not_configured: testing is not set up for the agent.
The AI model allowance is a workspace limit on Signal’s AI features over the last 30 days. It is separate from your plan, so an upgrade does not raise it. When it is used up, AI features pause, and they resume as older usage leaves the 30-day window. Through the API, a rescore it refuses shows as budget_exceeded.

API rate limits

Rate limits count requests in token buckets. A bucket holds the burst size and refills steadily at the rate, so after a quiet spell you can send a burst, then the sustained rate. Every /v1 response carries the tighter of the key’s buckets: A refused request returns HTTP 429 with the code rate_limited. A client address that has failed authentication too often gets too_many_failed_authentications instead, with or without a valid key, until its failures age out.
429
Wait for Retry-After, then retry. Treat the numbers as a guide to sustained use, not a guarantee. Calibrating tests needs a signed-in session. Every API key is refused with 403 and the code people_only.

Import limits

These are the limits on the hosted service. They bound how much one import brings in. They are not the plan allowance. After that, new calls arrive on their own, within minutes of ending, and are not held to the import size. How many are analysed is set by your plan’s analysed-call allowance. A call past it is stored and waits. The import status on Agent config says how many are waiting, such as “120 analysed, 30 waiting for next month or an upgrade.” See Connect Retell.

Copilot limits

A message counts once against the copilot allowance however many lookups it takes. Each quick check counts as one more. A question that needs too many lookups, a very long call or a very large lookup is cut short, and the copilot answers from what it read. Narrow the question if that happens. The copilot also has a usage limit of its own over the last 30 days, the same on every plan, so an upgrade does not raise it. At that limit it says “This workspace has reached the copilot’s spending limit for this period.” It also pauses when the workspace’s AI model allowance is used up. See Copilot overview.

Version comparisons

A comparison needs enough calls on each version before it gives a verdict. With too few, the measure reads Not enough calls and no verdict is given, however large the difference looks. Wait for more calls on the new version. An issue’s fix verdict also waits until the live version has taken calls for the agent’s grace period, 7 days by default. You can change it with Resolved after on the Issues page. See Versions.