WIP! A BB-style forum, on the ATmosphere!
We're still working... we'll be back soon when we have something to show off!
node
typescript
hono
htmx
atproto
1meta {
2 name: List Members
3 type: http
4 seq: 3
5}
6
7get {
8 url: {{appview_url}}/api/admin/members
9}
10
11params:query {
12 limit: 100
13 offset: 0
14}
15
16assert {
17 res.status: eq 200
18 res.body.members: isArray
19 res.body.total: isDefined
20}
21
22docs {
23 List all forum members with their assigned roles.
24
25 **Requires:** `space.atbb.permission.manageMembers` permission
26
27 Query params:
28 - limit: Max results per page (default: 100, max: 250)
29 - offset: Number of records to skip for pagination (default: 0)
30
31 Returns:
32 {
33 "members": [
34 {
35 "did": "did:plc:user123",
36 "handle": "alice.bsky.social",
37 "role": "Moderator",
38 "roleUri": "at://FORUM_DID/space.atbb.forum.role/RKEY",
39 "joinedAt": "2026-02-15T00:00:00.000Z"
40 },
41 ...
42 ],
43 "total": 42,
44 "limit": 100,
45 "offset": 0
46 }
47
48 Members are sorted by join date (newest first).
49
50 Error codes:
51 - 401: Not authenticated
52 - 403: Insufficient permissions
53 - 500: Database error
54
55 Notes:
56 - Members without assigned role will have role: null, roleUri: null
57 - Pagination uses offset-based approach (offset + limit)
58}