---
title: "Bulk-update saved posts by filter"
method: POST
path: "/v1/posts/bulk"
tags: ["Bookmarks"]
---

# Bulk-update saved posts by filter

`POST /v1/posts/bulk`

## Request

- Base URL: `https://api.linkedmash.com`
- URL: `https://api.linkedmash.com/v1/posts/bulk`
- Auth: one of:
  - OAuth 2 (client credentials, token URL `https://api.linkedmash.com/auth/oauth/token`, scopes: `library:write`)
  - HTTP bearer
  - API key in header `linkedmash-api-key`

Archive, unarchive, or soft-delete every saved post matching at least one supplied filter in a bounded bulk operation.

## Request body

- object
  - `action` 'archive' | 'unarchive' | 'delete', required: Reversible bulk action to apply to matching saved posts.
  - `q` string: Full-text query applied to the saved-post library.
  - `author` string: LinkedIn author identifier used to narrow matching posts.
  - `tag` string: Existing label used to narrow matching posts.
  - `media_type` string: Media type used to narrow matching posts.
  - `posted_from` string, date-time: Inclusive earliest LinkedIn post timestamp.
  - `posted_to` string, date-time: Inclusive latest LinkedIn post timestamp.
  - `bookmarked_from` string, date-time: Inclusive earliest saved timestamp.
  - `bookmarked_to` string, date-time: Inclusive latest saved timestamp.
  - `is_unread_only` boolean: Limit the operation to unread saved posts.
  - `hide_archived` boolean: Exclude archived saved posts when true.

## Response `200`

Bulk saved-post action result.

- object: Bulk-operation result with matched, affected, failed, and truncation counts.

## Other responses

- `400`: The request was invalid, unauthorized, not entitled, rate limited, or could not be completed.
- `401`: The request was invalid, unauthorized, not entitled, rate limited, or could not be completed.
- `402`: The request is valid but the account is not entitled to it. The body names the plan that lifts the block, what it unlocks, its price, and a checkout URL preselected on that plan.
- `403`: The request was invalid, unauthorized, not entitled, rate limited, or could not be completed.
- `429`: The request was invalid, unauthorized, not entitled, rate limited, or could not be completed.
- `500`: The request was invalid, unauthorized, not entitled, rate limited, or could not be completed.

---

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