Requires `posts:write`. Re-fetches the comments of up to 100 posts that
are already on the team — the same as **Resync** in the Siftsy app —
by `postIds` and/or `links`. Each accepted post bumps `dataVersion`,
reprocesses, and shows up in `GET /posts?updated_since=…` when done.
**Refresh floor.** A given post on a given team is refreshed at most
**once every 12 hours** through the API (and through automations).
Posts inside that window are `skipped` with `reason: min_interval`
and a `nextRefreshAt`; they are never charged. Calling this route on a
schedule more often than every 12 hours is therefore harmless but
pointless.
**Credits.** Charged exactly like the dashboard, from the team's
existing MAPs / Ad Hoc credits — there is no separate refresh credit:
- free (`creditSource: included`) when the plan's included refresh
cadence (hourly / daily / weekly) allows it;
- otherwise **1 credit** (`creditSource: credit`; **5** with
`capture.fullRead`).
`credits.source` chooses `auto` (MAPs first) or `adhoc`. Posts that
need a credit the team cannot fund are `rejected` with
`insufficient_credits`; if nothing at all could be refreshed for that
reason the response is `402`.
Responds `202` with a `ContentJob` (`kind: refresh`) and a `Location`
header; poll `GET /content/jobs/{jobId}` until `completed`,
`partial`, or `failed`. Unlike `POST /content/posts/add`, identical
requests are **not** replayed — the 12-hour floor already makes a
repeat call free. `teamId` targets an Enterprise sub-team as on the
other content routes.
Rate class `content_refresh` (10 / minute, 200 / day per key).
Request
This endpoint expects an object.
postIdslist of stringsOptional
Post ids on the target team (from GET /posts)
linkslist of stringsOptional
Post URLs already on the target team
teamIdstringOptional
Enterprise keys only — a sub-team of the key’s enterprise