Skip to main content
SignalMD has two kinds of limit. Plan credits 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 credits

Every plan includes the board, flow, traces, versions, the REST API and the MCP server. Growth and Scale also include Slack support. Credits pay for processed calls, simulated and phone tests, and the copilot. The calls, tests and answers rows are each what the whole month’s credits buy if they are spent on that one thing alone, counting every call as one minute. Longer calls use more, and a month that mixes them gets a share of each. They reset each month and do not carry over. Prices are in US dollars. Agents and seats are totals. Paid plans cost less per month when billed yearly, and the yearly bill is charged once. A paid workspace’s credits reset at the start of each billing period, every month, annual plans included. Unused credits do not carry over. Free has no credits. Plan and usage under Settings shows the balance against its limit.

Plan limit errors

A request that the credits do not cover 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, the limit you can reach is a run the credits do not cover. Starting a run, or calibrating from a signed-in session, draws on credits. The copilot, the brief chat and connecting agents exist in the app only, and calls past your credits 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 month resets, you upgrade, or you start a run that needs fewer credits. Two other 402 codes are budgets and settings, not the plan:
  • budget_exceeded: your key’s monthly budget or the agent’s test budget did not cover the request.
  • testing_not_configured: testing is not set up for the agent.

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 credits. After that, new calls arrive on their own, within minutes of ending, and are not held to the import size. You can keep only a percent of them, or cap them per day, week or month, in Import settings on Agent config. How many are analysed depends on the credits left. A call that runs past them 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 copilot answer uses about 20 credits, about any agent, the demo included. More lookups or a longer answer use more of them, and each quick check uses credits too. 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. See Copilot overview for what the copilot reads.

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.