- Filter posts by tenant:
GET /v1/postsnow accepts atenant_id(ortenantId) filter, matching whatGET /v1/social-accountsalready supported. Multi-tenant apps no longer need to fetch every tenant's accounts and filter posts client-side - the API does it for you, returning each matching post with its full list of connected accounts. - Filtered post pages are now complete: Filtering posts by
social_account_idcould previously return a short page (e.g. 3 posts forlimit=50) even when more results existed, because the filter was applied after pagination. Paged, filtered results are now always full and correct. - Accurate pagination totals:
pagination.totalnow reflects the real number of matching posts instead of just the number returned on the current page, so you can reliably tell how many results exist across all pages. The previous page-length value is still available aspagination.count. - Encoded account IDs now filter correctly: Filtering posts by
social_account_idusing the encoded IDs returned elsewhere in the API previously matched the wrong account under the hood. Both encoded and numeric IDs now work as expected, and invalid IDs return a clear error. - Reconnecting an account no longer creates duplicates: Reconnecting the same social account - even after its underlying platform identifier changed (a recreated page, a re-registered handle, etc.) - now updates the existing connected account instead of creating a duplicate with stale credentials. Reconnecting under a different tenant still creates a separate account, as intended.
- Bluesky reconnect no longer fails on repeat connect: Connecting a Bluesky account you'd already connected previously returned a conflict error; it now succeeds and updates the existing connection.
- Auth tokens are no longer exposed in API responses: Stored credentials (OAuth tokens, Bluesky session tokens, app passwords, and similar secrets) could previously appear in responses from fetching a single post, the MCP
get_posttool, and the web accounts page. These fields are now stripped from every response by default; the existing opt-inincludeTokensparameter on the accounts list endpoint is unaffected. - Automatic rich text in Bluesky posts: Links, mentions, and hashtags in Bluesky post text are now automatically detected and turned into proper rich-text links, including resolving mentions to the correct account.
- More reliable Bluesky account connection: The connection flow now keeps your session alive for longer during setup and no longer clears your session on recoverable errors, so a retry doesn't force you to start over.