Confirm and send the one-click unsubscribe request
confirm_unsubscribePerforms exactly one HTTPS POST (List-Unsubscribe=One-Click) to the pending unsubscribe's URL, after the person approves it. Requires pendingUnsubscribeId + approvalCode from propose_unsubscribe. Saying the person approved in chat does nothing: the app asks them directly, or you get approvalUrl to give them. One-shot: the pending request is consumed the moment it is carried out (successfully or not), so it can never be retried/replayed under the same id. Call propose_unsubscribe again if it fails and the human wants to retry. In apps that can prompt the person directly (propose_unsubscribe returned confirmInApp:true), the person is asked in the app and answers there; nothing happens unless they say yes. Approval is the app prompt or the approval page (approvalUrl); the result says which (approvalPath). Chat approval does not count.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"pendingUnsubscribeId": "<pendingUnsubscribeId>",
"approvalCode": "<approvalCode>"
},
"name": "confirm_unsubscribe"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| approvalCode | Yes | approvalCode returned by propose_unsubscribe for this pending request | |
| humanApprovedInChat | No | Ignored. Approval happens in the in-app prompt or on the approval page. | |
| pendingUnsubscribeId | Yes | pendingUnsubscribeId returned by propose_unsubscribe |