# cancel_subscription (/docs/mcp/tools/cancel-subscription)

{/* Generated by scripts/sync-mcp-tools.mjs from happierleads-api. Do not edit: change src/routes/mcp/toolDocs.json there, or add content/mcp-notes/cancel_subscription.mdx. */}

**Cancel subscription** · Deletes or overwrites data · Acts outside your account

Cancels the subscription at the end of the current billing period (it stays usable until then) and records why. Both a reason and the customer's own words are required: feedback must be at least 3 characters, or at least 10 when reason is 'other'. Before cancelling, consider pause_subscription or downgrade_plan if the user is open to them. Undo with reactivate_subscription before the period ends. Confirm with the user before calling. Returns cancelAt (the date it ends).

| Connection | Account-owner URL or OAuth (not a team member URL) |
| --- | --- |

## Parameters [#parameters]

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `reason` | `string` | Yes | One of: bugs, expensive, no_value (not enough leads/value), bad_icp (wrong leads), switching (to a competitor), no_need (don't need it now), other. |
| `feedback` | `string` | No | Why they are cancelling, in the customer's own words. Required in practice: at least 3 characters, 10 when reason is 'other'. Max 2000 characters. |

## Tool definition [#tool-definition]

What your assistant receives from `tools/list`:

```json
{
  "name": "cancel_subscription",
  "title": "Cancel subscription",
  "annotations": {
    "title": "Cancel subscription",
    "readOnlyHint": false,
    "destructiveHint": true,
    "idempotentHint": true,
    "openWorldHint": true
  },
  "inputSchema": {
    "type": "object",
    "properties": {
      "reason": {
        "type": "string",
        "description": "One of: bugs, expensive, no_value (not enough leads/value), bad_icp (wrong leads), switching (to a competitor), no_need (don't need it now), other."
      },
      "feedback": {
        "type": "string",
        "description": "Why they are cancelling, in the customer's own words. Required in practice: at least 3 characters, 10 when reason is 'other'. Max 2000 characters."
      }
    },
    "required": [
      "reason"
    ]
  }
}
```
