> ## Documentation Index
> Fetch the complete documentation index at: https://open.manus.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Rate Limits

> Per-user request limits for v2 endpoints

<sup>Questions or issues? Contact us at [api-support@manus.ai](mailto:api-support@manus.ai).</sup>

The Manus API enforces **per-user** rate limits on every v2 endpoint. All API keys that belong to the same user share a single counter, and limits are measured in requests per minute. There is currently no tier differentiation — the same limit applies regardless of subscription plan.

## Limits by endpoint

### User

| Endpoint | Limit |
| - | - |
| `user.me` | 100 / min |

### Tasks

| Endpoint | Limit |
| - | - |
| `task.create` | 10 / min |
| `task.sendMessage` | 10 / min |
| `task.detail` | 100 / min |
| `task.list` | 100 / min |
| `task.listMessages` | 100 / min |
| `task.update` | 40 / min |
| `task.stop` | 40 / min |
| `task.delete` | 40 / min |
| `task.confirmAction` | 40 / min |

### Projects

| Endpoint | Limit |
| - | - |
| `project.create` | 40 / min |
| `project.list` | 100 / min |
| `project.detail` | 100 / min |
| `project.update` | 40 / min |

`project.detail` shares its counter with `project.list`, and `project.update` shares its counter with `project.create`.

### Skills

| Endpoint | Limit |
| - | - |
| `skill.list` | 100 / min |
| `skill.detail` | 100 / min |

### Agents

| Endpoint | Limit |
| - | - |
| `agent.list` | 100 / min |
| `agent.detail` | 100 / min |
| `agent.update` | 40 / min |

### Files

| Endpoint | Limit |
| - | - |
| `file.upload` | 40 / min |
| `file.detail` | 100 / min |
| `file.delete` | 40 / min |

### Artifacts

| Endpoint | Limit |
| - | - |
| `artifact.list` | 100 / min |

### Webhooks

| Endpoint | Limit |
| - | - |
| `webhook.create` | 40 / min |
| `webhook.list` | 100 / min |
| `webhook.delete` | 40 / min |

### Usage

| Endpoint | Limit |
| - | - |
| `usage.list` | 600 / min |
| `usage.teamStatistic` | 600 / min |
| `usage.teamLog` | 600 / min |

### Connectors

| Endpoint | Limit |
| - | - |
| `connector.list` | 100 / min |

### Browser

| Endpoint | Limit |
| - | - |
| `browser.onlineList` | 100 / min |

### Website

| Endpoint | Limit |
| - | - |
| `website.status` | 100 / min |
| `website.listCheckpoints` | 100 / min |
| `website.publish` | 40 / min |
| `website.update` | 40 / min |

## Error response

Requests that exceed the limit return HTTP `429` with the `rate_limited` error code:

```json theme={null}
{
  "ok": false,
  "request_id": "req_abc123",
  "error": {
    "code": "rate_limited",
    "message": "Rate limit exceeded. Please retry after a short backoff."
  }
}
```

## Best practices

* **Back off on 429** with exponential delay plus jitter; don't retry immediately in a tight loop.
* **Prefer webhooks over polling** for task progress — see [Webhooks](https://open.manus.ai/docs/v2/webhooks-overview). Each `task.listMessages` poll counts against the 100 / min limit for that endpoint.
* **Use cursor pagination** (`cursor` + `next_cursor`) on list endpoints so a single logical read can span minutes without a burst.
* **Cache stable values** such as the public key returned by [`webhook.publicKey`](https://open.manus.ai/docs/v2/webhook.publicKey) — it rarely changes.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.