# Rate a lead

> Mark a lead as a FIT or NOT_FIT, with an optional short reason, so the Signals agent learns who to find. Pass verdict null to clear the rating. Call it only when the user asked for this in the conversation; never on your own initiative.

`leads.rate` · write

- **MCP tool:** `rate_lead`. Loaded by default in MCP clients.
- **REST:** `POST /v1/leads/rate`
- **CLI:** `xholic leads rate`
- **Scope:** `write`
- **Plan:** Pro plan or higher
- **Cost:** Free.
- **Rate limit bucket:** `write`

## Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string (uuid) | Yes | Lead id from get_leads. |
| `verdict` | "FIT" \\| "NOT_FIT" or null | Yes |  |
| `reason` | string ≤ 200 chars or null | No |  |
| `account` | string ≤ 64 chars | No | X account to act on, as @handle. Leave it out to use the connection's default account. |
| `dryRun` | boolean | No | Return exactly what would happen without doing it. |
| `idempotencyKey` | string ≤ 200 chars | No | A unique key for this write. Repeating a call with the same key returns the first result instead of acting twice. |
