Skip to main content
The API is on every Darwin plan. Larger plans get more requests per minute. Limits apply per API key, so two integrations with their own keys don’t slow each other down. Heavy requests run a model, read a website or build an export. They have their own budget and do not use up the standard one:
  • POST /chat/sessions/{id}/messages (each chat API message)
  • POST /knowledge/documents and PATCH /knowledge/documents/{id}
  • POST /knowledge/sources/{id}/refresh
  • POST /privacy/exports
  • POST /webhook_endpoints/{id}/test
Every other endpoint counts against the standard budget. Each MCP tool call counts as one standard request for the connection’s key.

Headers

Every successful response carries the budget it was counted against: The window is a fixed minute that starts with the key’s first request.

When you hit the limit

The request is refused with 429 and the code rate_limited. The response carries Retry-After with the seconds to wait, along with the RateLimit-* headers. Nothing was done, so retrying after the wait is safe.
To stay under the limit:
  • Use webhooks instead of polling for new leads and meetings.
  • Read with limit=100 and updated_since rather than many small pages. See Pagination.
  • Give each integration its own key.
  • Spread a large backfill over several minutes.
The chat API also has a monthly allowance of conversations, separate from these per-minute limits.