Reference
Errors and limits
Error codes
Over MCP, an error comes back as a tool result with isError: true and the JSON below, so the agent can read it and recover. Over REST it's the response body, with the HTTP status.
| Code | HTTP | Meaning |
|---|---|---|
invalid_input | 400 | The input doesn't match the schema, or a value isn't allowed (an unknown stage or custom field). The message says which. |
unauthorized | 401 | No valid token or key. Reconnect, or check the key. |
payment_required | 402 | The workspace has no active subscription, so it's read-only. Reading and exporting still work. |
forbidden | 403 | The connection's scopes don't allow this, or it's a people-only action. |
not_found | 404 | No such record in this workspace. |
conflict | 409 | The change clashes with existing data (a duplicate domain on another company, say). |
rate_limited | 429 | Too many calls; the hint says when to retry. |
{ "error": { "code": "invalid_input", "message": "…", "hint": "…" } }
Unexpected server errors return internal without details; they are logged and retrying may help.
Limits
- Tool inputs have per-field limits (for example, a task title is at most 200 characters, a signal's why-now at most 280); each tool's page lists them.
- List tools page with
limit(usually up to 100) andnext_cursor. - CSV imports take up to 10,000 rows per file.
- Workspaces provided through a partner plan (such as the Founder Kit) have plan limits: 25,000 people, 10,000 companies, 3 members, 60 agent calls a minute and 20,000 a day per connection, and 12 months of change history.