# Limits

Limits keep one workspace's burst from slowing everyone else, and cap what a mistake, such as a script stuck in a loop, can cost. They count per workspace, across all its members, keys and agents.

## Rate limits and caps

Adding a card moves a workspace to Tier 1. It moves up a tier on its own once it has paid the amount in the first row.

| Limit | Free, no card | Tier 1 | Tier 2 | Tier 3 | Tier 4 |
|---|---|---|---|---|---|
| Paid to date | | $0 | $50 | $250 | $1,000 |
| Calls to a Task, a minute | 60 | 600 | 1,200 | 3,000 | 6,000 |
| Tokens to a Task, in and out, a minute | 200,000 | 2,000,000 | 4,000,000 | 10,000,000 | 20,000,000 |
| Calls to a Task in flight at once | 8 | 32 | 64 | 64 | 64 |
| API and agent reads, a minute | 300 | 1,200 | 2,400 | 6,000 | 12,000 |
| API and agent writes, a minute | 60 | 240 | 480 | 1,200 | 2,400 |
| Drafts, Asks and other costly starts, a minute | 10 | 30 | 60 | 150 | 300 |
| Changes running at once | 1 | 3 | 5 | 10 | 20 |
| Drafts being written at once | 2 | 5 | 10 | 25 | 50 |
| Highest spend limit | $100 | $250 | $1,000 | $5,000 | $20,000 |


Past a per minute limit, calls answer `429` with a `Retry-After` header; the OpenAI SDKs wait and retry on their own. Past a cap on running work, a new change waits in the queue and starts when one finishes, and a new draft is refused with `draft_busy`. Drafts started a month: 10 without a card, 100 with one. Need more? Write to support@halfspacelabs.com.

## Spend limit

Each workspace has one monthly spend limit, set by an Owner in **Settings, Billing**, up to its tier's highest spend limit above. At 100%, new changes and calls stop until an Owner raises it or the month ends. You see every price before anything runs, and a change never spends more than its quote.

## Size limits

| What | Limit |
|---|---|
| Rows read from one upload | 500 |
| Longest input plus answer, in tokens | 32,768 |
| Longest answer | Set per Task; a `max_tokens` above it is refused with a message that names it |
| One call's answers | 1 (`n` above 1 is refused) |

## Next steps

- [Errors](/docs/errors): `rate_limit_exceeded`, `rate_limited` and `draft_busy`
- [Pricing](/docs/pricing): plans and the spend limit
