# Rate limits

> Requests per minute per access token, the headers that say where you stand, and what a 429 means.

**What this is:** how much a token may call. **When you need it:** a batch job, a sync, a dashboard that polls.

**curl**


```bash
curl -si "$TASKSMATE_API_URL/v1/me" -H "Authorization: Bearer $TASKSMATE_TOKEN" | grep -i '^x-ratelimit'
```

**Python**


```python
# The SDK waits out a 429 (Retry-After) and retries — up to max_retry_after seconds.
tm = TasksMate(max_retries=3, max_retry_after=60)
```

**tm**


```bash
tm tasks list   # retries a 429 the same way
```

Each token gets an allowance that refills every minute

## The limits

| Token | Requests per minute |
| --- | --- |
| `tm_live_…` | 600 |
| `tm_test_…` | 60 |

The window is one fixed minute per token; every token request counts, refused ones included.

## Headers

Every token-authenticated response carries `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset` (Unix seconds when the window ends).

## Over the limit

`429`, type `…:rate-limit`: Too many requests with this access token; wait `Retry-After` seconds (`X-RateLimit-*` say where you stand). Back off until `Retry-After`, then resume. Spread work across the minute rather than bursting at its start.

---
Source: https://developers.tasksmate.indrasol.com/guides/rate-limits/
