Skip to content

Circles

Unauthenticated OK (allowUnauth: true explicit). Local circles only -- excludes cached remote circles (filtered via originDomain).

Visibility: unauthenticated or remote viewer -> @public only; local authenticated -> @public + @server.

?sort=reacts sorts by reactCount descending; default sort is createdAt descending. Response items are annotated with userReacted: boolean for the authenticated viewer.

Circle detail with tiered access: @public -> anyone; @<domain> -> any local authenticated user; circle-addressed (private) -> owner or member only.

401 if unauthenticated and the circle isn't public; 403 if authenticated but denied. Response includes isOwner / isMember flags for client UI gating.

The primary circle-based timeline. Same tiered access as circle detail (owner / member / public / server), but 401 if fully unauthenticated regardless of tier -- even a public circle's posts require auth to view via this endpoint.

Delegates to methods/feed/getTimeline.js. Query params: ?types= (comma-list), ?before= (cursor), ?limit= (max 500).

Owner only (403 otherwise, 401 unauthenticated, 404 not found). Body:

{ "lastSeenAt": "2026-08-13T12:00:00.000Z" }

Advances (never rewinds) the circle's read high-water mark. 400 on an invalid date.

Paginated member list, same tiered visibility as circle detail. 401 / 403 / 404 accordingly.