# Limits

Rate limits, page sizes, request sizes and how long links last.

## Rate limits

Limits are counted per credential (one API key, or one signed-in connection) unless the table says otherwise.

| What | Limit |
| --- | --- |
| Any tool call | 60 per minute |
| Writes | 60 rows per minute. A bulk tool counts each row; one call counts 50 at most. |
| Starting an upload | 10 per minute |
| Completing an upload | 30 per minute |
| Tools that need `download` | 30 per minute |
| Writes, whole workspace | 500 rows per day |
| Reads, whole workspace | 5,000 per day |
| Requests without a valid credential | 60 per minute per IP address |

A call over a limit comes back as a tool error with the wait in seconds. Wait that long, then retry.

Tool result when rate limited:

```json
{
  "error": "Try again in 12 seconds.",
  "retry_after_seconds": 12
}
```

Owners and admins can see the day’s reads and writes under **Settings**, **API & MCP**.

## Page sizes

| Tool | Default | Most per call | More results |
| --- | --- | --- | --- |
| `soontra_projects_list` | 50 | 50 | Filter by `status` or `flow_id` |
| `soontra_posts_list` | 25 | 50 | Filter by `search` or `platform` |
| `soontra_files_list` | 20 | 50 | Narrow with `folder_id` or `search` |
| `soontra_comments_list` | 10 | 50 | None |
| `soontra_notifications_list` | 20 | 50 | Filter by `filter` |
| `soontra_links_list` | 20 | 50 | Narrow with `folder_id` or `search` |
| `soontra_search_query` | 10 | 25 | Make the query more specific |
| `soontra_workspace_changes` | 50 | 100 | Pass `next_cursor` as `since` |
| `soontra_files_getTranscript` | 200 rows | 500 rows | Pass `next_start_time` as `start_time` |
| `soontra_documents_get` | 20,000 characters | 100,000 characters | Pass `next_offset` as `offset` |
| `soontra_subtasks_list` | 20 | 20 | None |

> **Note:** Only `soontra_workspace_changes`, `soontra_files_getTranscript` and `soontra_documents_get` continue from where the last call stopped. For the other lists, narrow the request instead of paging.

## Request and response sizes

- A request body may be up to 7 MiB. Larger requests get `413`.
- A tool’s arguments may be up to 16,384 characters of JSON. `soontra_documents_bulkCreate` allows 131,072, and the inline upload tools allow enough for a 5 MB file.
- A tool call has 20 seconds to finish.

## Uploads and links

| What | Limit |
| --- | --- |
| Inline upload (`soontra_files_upload`) | 5 MB decoded. Keep it under 3 MB: many apps cap their own requests near 4.5 MB. |
| Upload by URL (`soontra_files_createUploadUrl`) | 50 MiB per file |
| Upload URL | Valid for 15 minutes, for one upload |
| Completing an upload | Within 60 minutes of creating the URL |
| Uploads waiting to be completed | 10 per person per workspace |
| Download link, Team drive file | 60 minutes |
| Download link, Personal drive file | 15 minutes |
| Playback and thumbnail links | 15 minutes |

See [Upload files](https://soontra.com/docs/uploads) for the two upload flows.
