---
title: "Mark issues as spam"
method: POST
path: "/issues/mark-spam"
tags: ["issues"]
---

# Mark issues as spam

`POST /issues/mark-spam`

## Request

- Base URL: `https://api.usepylon.com`
- URL: `https://api.usepylon.com/issues/mark-spam`
- Auth: HTTP bearer

Marks up to 100 email issues as spam. Each issue is deleted, and the sender's email address is blocked unless it belongs to your own domains or support inboxes. If an issue's account has no issues left afterwards, the account is deleted too. Issues from other sources are skipped with reason unsupported_source. Issues that do not exist, or that the caller cannot mark as spam, are skipped and listed in skipped_issues instead of failing the request.

**Rate limit:** 30 requests per minute

## Request body

- MarkIssuesAsSpamRequest
  - `issue_ids` string[], required: The IDs of the issues to mark as spam. Must contain between 1 and 100 IDs.

## Response `200`

- MarkIssuesAsSpamResponseBody
  - `data` BulkIssueResult, required
    - `skipped_issues` SkippedIssue[], nullable: The issues the operation was not applied to, with the reason for each.
      - `issue_id` string, required: The issue ID as given in the request.
      - `reason` string, required: Why the operation was not applied to this issue. Known values: `not_found`, `forbidden`, `unsupported_source`, `failed`. This list is not exhaustive.
    - `succeeded_issue_ids` string[], nullable: The issues the operation was applied to.
  - `request_id` string, required: The request ID for tracking.

## Other responses

- `400`: The request was invalid or could not be completed.
- `401`: The request could not be authenticated for this API.
- `403`: The authenticated caller or organization is not allowed to access this endpoint or operation.
- `429`: The request exceeded the applicable rate limit.
- `500`: An unexpected internal error occurred.

## Changes

- **2026-10-12** `40bf3229d58f`: 1 breaking, 4 info
  - the `data` response's property type changed from no type to `object` for status `200`
  - added the optional property `data/skipped_issues` to the response with the `200` status
  - added the optional property `data/succeeded_issue_ids` to the response with the `200` status
  - removed `#/components/schemas/BulkIssueResult` from the `data` response property `allOf` list for the response status `200`
  - …1 more
- **2026-10-11** `dfb481067e5a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/usepylon/apis/pylon-api/changes/issues/mark-spam/post.md)

---

[API](https://skmtc.dev/usepylon/apis/pylon-api.md) - [All operations](https://skmtc.dev/usepylon/apis/pylon-api/llms.txt) - [OpenAPI document](https://skmtc.dev/usepylon/apis/pylon-api/revisions/7d018a2a6265?raw)
