Skip to main content
Two limits apply to your organization, shared by all of its API keys:
  • Credits set how much you can do. Each action costs a fixed number of credits, drawn from one balance.
  • Rate limits set how fast you can do it, in requests per minute.

Credits

Each action has a fixed price. Get Credit Pricing lists every price:
Get Credits returns your balance and reset date. Plans and extra credits are on the pricing page. How billing works:
  • Searches are billed per page. Record reads are billed per request: one record, or one page of a list such as an owner’s trademarks. A batch lookup costs one credit per submitted identifier, including the ones returned in not_found.
  • Only successful responses are billed, including 304 Not Modified and empty pages. Errors are never billed.
  • Offices, jurisdictions, event types and your account endpoints are free.
  • Managing watches, alerts and webhooks is free. Watches and managed marks are billed per day instead.
  • Beta actions, such as screening and compare, are free during the beta.
  • An MCP tool call costs the same as the API request it makes.
Paid plans can spend up to 25% of their monthly credits per UTC day, and the Free plan up to 5,000. This stops a runaway script from draining a month of credits in minutes. Enterprise has no daily cap.

Rate limits

Rate limits are requests per minute, set by your plan: Each type of endpoint has its own budget, so heavy searching doesn’t slow down record reads. POST, PATCH and DELETE requests are also capped at 1,000 per minute. Searches with mark_text_contains, mark_text_ends_with or a pattern starting with a wildcard can run at most 4 at a time per organization. If you need higher limits, contact support@signa.so.

Response headers

A search request on the Free plan returns headers like these:
Publicly cached catalogue responses (such as classifications and fees) leave these headers out. A missing header doesn’t mean the request was free.

Handling 429

A 429 response has one of three error types: The TypeScript SDK retries rate_limited responses for you.