All releases
Fix
Social API — one actor parameter, body-less deletes, uniform pagination (action needed)
A one-time consistency pass across the Social API: the acting actor is now `actor_id` everywhere, DELETEs take it as a query parameter, every list returns the same `{ data, pagination }` envelope, and the batch view endpoint moved to `/posts/impressions`. Old parameter names still work for one release but are deprecated — update your integration.
We batched every breaking Social API change into a single migration so you absorb it once. All the old shapes keep working for one release and are marked deprecated in the spec — migrate before the next major.
- One actor parameter. Whoever is acting is now
actor_idon every route — a query parameter on reads, a top-level field on writes. The old names (viewer_actor_id,requester_id,src_actor_id,sender_id,caller_actor_id) are accepted as deprecated aliases for one release. - Body-less deletes. Un-bookmark, un-repost, delete a list or list member, and leave / remove-from / delete-message in a conversation now take
?actor_id=instead of a JSON body — so they work through every proxy and SDK. The request body is deprecated. - Uniform pagination. Every list now returns
{ data, pagination }. Workspace communities and muted terms gained real cursor pagination (limit+cursor); search, suggestions and the story tray carry apaginationfield for shape-consistency. A short page never means “end of list” — always followpagination.has_more. - Impressions endpoint. The batch view-count call moved from
POST /posts/viewstoPOST /posts/impressions(old path kept as a deprecated alias) and now requires thesocial.viewpermission — a read-only key can no longer inflate view counts.
The Social API reference and the @productcraft/social SDK are updated to match.