---
title: "POST /v1/portfolios/{portfolioSlug}/tokens/spam/bulk"
method: POST
path: "/v1/portfolios/{portfolioSlug}/tokens/spam/bulk"
tags: ["Portfolios"]
---

# POST /v1/portfolios/{portfolioSlug}/tokens/spam/bulk

`POST /v1/portfolios/{portfolioSlug}/tokens/spam/bulk`

## Request

- Base URL: `https://api.tokenbooks.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.tokenbooks.io/v1/portfolios/{portfolioSlug}/tokens/spam/bulk`
- Auth: API key in header `x-api-key`

## Path parameters

- `portfolioSlug` string, required

## Request body

- MarkTokensSpamRequestDto
  - `tokens` object[], required: Tokens to update
    - `chainId` string, required: Chain ID of the token
    - `tokenAddress` string, required: Token contract address
  - `isSpam` boolean: Spam flag to set for all tokens
  - `reason` string: Optional immutable root reason whose nonempty bytes are preserved exactly; use ptx:<uuid> for transaction references

## Response `202`

- QueuedCommandResultDto
  - `mode` 'async', required: The command was accepted asynchronously
  - `jobId` string, required: Tracking job ID for the queued command
  - `status` 'queued', required: Queue admission status

---

[API](https://skmtc.dev/tokenbooks/apis/tokenbooks-public-api.md) · [All operations](https://skmtc.dev/tokenbooks/apis/tokenbooks-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tokenbooks/apis/tokenbooks-public-api/revisions/180622e6255e?raw)
