---
title: "POST /senders/unsubscribe"
method: POST
path: "/senders/unsubscribe"
---

# POST /senders/unsubscribe

`POST /senders/unsubscribe`

## Request

- Base URL: `https://www.getinboxzero.com/api/v1`
- URL: `https://www.getinboxzero.com/api/v1/senders/unsubscribe`
- Auth: API key in header `API-Key`

Unsubscribe from a sender for the scoped inbox. Looks up List-Unsubscribe from that sender's mail when a link is not provided. Check unsubscribe.success: when it is false the sender was left unchanged.

## Request body

- object
  - `senderEmail` string, email, required
  - `unsubscribeLink` string, uri
  - `listUnsubscribeHeader` string

## Response `200`

Unsubscribe attempt completed

- object
  - `senderEmail` string, email, required
  - `status` 'UNSUBSCRIBED' | 'null', nullable, required
  - `unsubscribe` object, required
    - `attempted` boolean, required
    - `success` boolean, required
    - `method` 'post' | 'get' | 'form' | 'browser'
    - `statusCode` integer
    - `reason` 'no_unsubscribe_url' | 'unsafe_unsubscribe_url' | 'request_timeout' | 'request_failed' | 'needs_user' | 'request_rejected'

## Other responses

- `400`: Invalid query, path, or request body
- `401`: Missing, invalid, or expired API key
- `403`: API key lacks a required scope or is not account-scoped
- `405`: HTTP method is not supported for this route
- `429`: Rate limited by the API or email provider
- `500`: Unexpected server error

## Changes

- **2026-11-03** `1d998f18f91b`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/getinboxzero/apis/inbox-zero-api/changes/senders/unsubscribe/post.md)

---

[API](https://skmtc.dev/getinboxzero/apis/inbox-zero-api.md) - [All operations](https://skmtc.dev/getinboxzero/apis/inbox-zero-api/llms.txt) - [OpenAPI document](https://skmtc.dev/getinboxzero/apis/inbox-zero-api/revisions/1d998f18f91b?raw)
