Members
Who is in the community, for matching people from the old platform to their Zen Social accounts. Read only: the API cannot invite, add, approve or remove anyone. People join in the app, invited by the admin.
The member object
{
"id": "EveABqLyto9L",
"name": "Karen Holm",
"avatar_url": "https://zensocial.app/rails/active_storage/representations/redirect/…/avatar.jpg",
"circles": [{"id": 412, "name": "Garden Swap"}]
}
| Field | Type | Meaning |
|---|---|---|
id |
text | The member's id in this API. It stays the same; use it wherever a later version asks for a member. It is not a number and not a database id. |
name |
text | The name the member uses on Zen Social. |
avatar_url |
text or null |
Their profile picture, small. null when they have none. |
circles |
list | The community's circles that this member and the admin are both in, as {"id", "name"}. Not every circle the member is in: the admin sees only the circles they share, as in the app. |
role |
text | Only in a circle's member list, and only when the admin is that circle's owner or admin (below). |
There are no email addresses. Match people by name, and by what you and the admin know from the old platform.
The community's members: GET /members
curl "$API/members" -H "Authorization: Bearer $KEY"
Answers 200 OK with {"data": [<member>, …], "next_page": null}: everyone in the community or in any of its
circles, ordered by first name and then last name, 100 per page (?page=2 for the next). There are no roles in this
list.
One circle's members: GET /circles/:id/members
curl "$API/circles/412/members" -H "Authorization: Bearer $KEY"
Answers 200 OK with the same list shape, for the members of that circle only. The admin must be a member of the
circle: otherwise the answer is 403 forbidden, even for an admin of the community, as in the app. Ask the admin to
join the circle in the app if you need its list.
When the admin is that circle's owner or admin, each member also has a role:
role |
In the app |
|---|---|
owner |
Runs the circle. |
admin |
Manages the circle, like an owner. |
editor |
A member who also curates the circle's content. |
contributor |
A full member: can post and comment. |
commenter |
Can read and comment, but not post. |
viewer |
Can read, but not post or comment. |
Matching people from the old platform
- Wait until people have joined: the admin invites them in the app.
- Read every page of
GET /members. - Match each person from the old platform to a member by name. When a name fits more than one member, or fits only roughly (a nickname, a missing surname), do not guess: ask the admin.
- Show the admin the whole list of matches you intend to use, and wait for their yes before you act on it.
Handing imported content back to the member who wrote it (a "claim") arrives with posts, in a later version.