Assign and list group AI agent assignments
Wellesley Platform API (1.0)
Admin Domain Blocks
Administrative APIs for managing domain blocks. Provides endpoints to block specific domains with different severity levels (SUSPEND, LIMIT, NOOP), update existing blocks, unblock domains, and list currently blocked domains. Domain blocks prevent or limit federation with specified domains.
- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/drafts
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/drafts
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/drafts
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
https://docs.wellesley.social/_mock/openapi/api/v1/drafts \
-H 'Authorization: YOUR_API_KEY_HERE'List of drafts
ID of the entity this draft is for (user channel, forum category or event)
Owner types for posts:
- USER - user’s channel (personal or group channel)
- EVENT - event (personal or group)
- CATEGORY - forum category
** POST OWNER: **
- Personal channel
- userId = author
- ownerId = userId (Type.USER)
- ownerType = USER
- groupId = null
- Forum post
- userId = author
- ownerId = categoryId (Type.CATEGORY)
- ownerType = CATEGORY
- groupId = forum’s groupId
- Personal event
- userId = author
- ownerId = eventId (Type.EVENT)
- ownerType = EVENT
- groupId = null
- Group channel
- userId = author
- ownerId = channel userId (Type.USER)
- ownerType = USER
- groupId = groupId
- Group event
- userId = author
- ownerId = eventId (Type.EVENT)
- ownerType = EVENT
- groupId = groupId
Privacy levels for posts:
- PUBLIC - post is visible to anyone, including people who are not logged in and those who do not follow the user. It appears in the public timelines (home, local, and federated).
- UNLISTED - post is visible to anyone who visits the user's profile, but it does not appear in public timelines. Only followers and those who visit the user's profile directly can see it.
- PRIVATE - post is only visible to the user's followers. It does not appear in public timelines or on the user's profile for non-followers.
- DIRECT - post is visible only to the mentioned users. It functions like a direct message and is not visible on public timelines, the user's profile, or to followers.
- FOLLOW_POST - comment only. Follow parent post visibility
If this draft edits an existing post, its ID
Upload IDs attached to this draft
[ { "id": "us_01hxcvk1hjexere4pvtrj0ymqq", "userId": "us_01hxcvk1hjexere4pvtrj0ymqq", "text": "string", "ownerId": "us_01hxcvk1hjexere4pvtrj0ymqq", "ownerType": "USER", "title": "string", "local": true, "privacy": "PUBLIC", "tags": [ … ], "postId": "us_01hxcvk1hjexere4pvtrj0ymqq", "createdAt": "2022-03-10T16:15:50Z", "updatedAt": "2022-03-10T16:15:50Z", "attachments": [ … ], "postAsOwner": true } ]
Privacy levels for posts:
- PUBLIC - post is visible to anyone, including people who are not logged in and those who do not follow the user. It appears in the public timelines (home, local, and federated).
- UNLISTED - post is visible to anyone who visits the user's profile, but it does not appear in public timelines. Only followers and those who visit the user's profile directly can see it.
- PRIVATE - post is only visible to the user's followers. It does not appear in public timelines or on the user's profile for non-followers.
- DIRECT - post is visible only to the mentioned users. It functions like a direct message and is not visible on public timelines, the user's profile, or to followers.
- FOLLOW_POST - comment only. Follow parent post visibility
- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/drafts
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/drafts
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/drafts
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://docs.wellesley.social/_mock/openapi/api/v1/drafts \
-H 'Authorization: YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"text": "string",
"ownerId": "us_01hxcvk1hjexere4pvtrj0ymqq",
"title": "string",
"privacy": "PUBLIC",
"tags": [
"string"
],
"postId": "us_01hxcvk1hjexere4pvtrj0ymqq",
"postAsOwner": true,
"attachments": [
"us_01hxcvk1hjexere4pvtrj0ymqq"
]
}'The created draft
ID of the entity this draft is for (user channel, forum category or event)
Owner types for posts:
- USER - user’s channel (personal or group channel)
- EVENT - event (personal or group)
- CATEGORY - forum category
** POST OWNER: **
- Personal channel
- userId = author
- ownerId = userId (Type.USER)
- ownerType = USER
- groupId = null
- Forum post
- userId = author
- ownerId = categoryId (Type.CATEGORY)
- ownerType = CATEGORY
- groupId = forum’s groupId
- Personal event
- userId = author
- ownerId = eventId (Type.EVENT)
- ownerType = EVENT
- groupId = null
- Group channel
- userId = author
- ownerId = channel userId (Type.USER)
- ownerType = USER
- groupId = groupId
- Group event
- userId = author
- ownerId = eventId (Type.EVENT)
- ownerType = EVENT
- groupId = groupId
Privacy levels for posts:
- PUBLIC - post is visible to anyone, including people who are not logged in and those who do not follow the user. It appears in the public timelines (home, local, and federated).
- UNLISTED - post is visible to anyone who visits the user's profile, but it does not appear in public timelines. Only followers and those who visit the user's profile directly can see it.
- PRIVATE - post is only visible to the user's followers. It does not appear in public timelines or on the user's profile for non-followers.
- DIRECT - post is visible only to the mentioned users. It functions like a direct message and is not visible on public timelines, the user's profile, or to followers.
- FOLLOW_POST - comment only. Follow parent post visibility
If this draft edits an existing post, its ID
Upload IDs attached to this draft
{ "id": "us_01hxcvk1hjexere4pvtrj0ymqq", "userId": "us_01hxcvk1hjexere4pvtrj0ymqq", "text": "string", "ownerId": "us_01hxcvk1hjexere4pvtrj0ymqq", "ownerType": "USER", "title": "string", "local": true, "privacy": "PUBLIC", "tags": [ "string" ], "postId": "us_01hxcvk1hjexere4pvtrj0ymqq", "createdAt": "2022-03-10T16:15:50Z", "updatedAt": "2022-03-10T16:15:50Z", "attachments": [ "us_01hxcvk1hjexere4pvtrj0ymqq" ], "postAsOwner": true }
- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/drafts/owner/{ownerId}
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/drafts/owner/{ownerId}
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/drafts/owner/{ownerId}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
https://docs.wellesley.social/_mock/openapi/api/v1/drafts/owner/us_01hxcvk1hjexere4pvtrj0ymqq \
-H 'Authorization: YOUR_API_KEY_HERE'List of drafts
ID of the entity this draft is for (user channel, forum category or event)
Owner types for posts:
- USER - user’s channel (personal or group channel)
- EVENT - event (personal or group)
- CATEGORY - forum category
** POST OWNER: **
- Personal channel
- userId = author
- ownerId = userId (Type.USER)
- ownerType = USER
- groupId = null
- Forum post
- userId = author
- ownerId = categoryId (Type.CATEGORY)
- ownerType = CATEGORY
- groupId = forum’s groupId
- Personal event
- userId = author
- ownerId = eventId (Type.EVENT)
- ownerType = EVENT
- groupId = null
- Group channel
- userId = author
- ownerId = channel userId (Type.USER)
- ownerType = USER
- groupId = groupId
- Group event
- userId = author
- ownerId = eventId (Type.EVENT)
- ownerType = EVENT
- groupId = groupId
Privacy levels for posts:
- PUBLIC - post is visible to anyone, including people who are not logged in and those who do not follow the user. It appears in the public timelines (home, local, and federated).
- UNLISTED - post is visible to anyone who visits the user's profile, but it does not appear in public timelines. Only followers and those who visit the user's profile directly can see it.
- PRIVATE - post is only visible to the user's followers. It does not appear in public timelines or on the user's profile for non-followers.
- DIRECT - post is visible only to the mentioned users. It functions like a direct message and is not visible on public timelines, the user's profile, or to followers.
- FOLLOW_POST - comment only. Follow parent post visibility
If this draft edits an existing post, its ID
Upload IDs attached to this draft
[ { "id": "us_01hxcvk1hjexere4pvtrj0ymqq", "userId": "us_01hxcvk1hjexere4pvtrj0ymqq", "text": "string", "ownerId": "us_01hxcvk1hjexere4pvtrj0ymqq", "ownerType": "USER", "title": "string", "local": true, "privacy": "PUBLIC", "tags": [ … ], "postId": "us_01hxcvk1hjexere4pvtrj0ymqq", "createdAt": "2022-03-10T16:15:50Z", "updatedAt": "2022-03-10T16:15:50Z", "attachments": [ … ], "postAsOwner": true } ]
- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/drafts/post/{postId}
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/drafts/post/{postId}
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/drafts/post/{postId}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
https://docs.wellesley.social/_mock/openapi/api/v1/drafts/post/us_01hxcvk1hjexere4pvtrj0ymqq \
-H 'Authorization: YOUR_API_KEY_HERE'The draft
ID of the entity this draft is for (user channel, forum category or event)
Owner types for posts:
- USER - user’s channel (personal or group channel)
- EVENT - event (personal or group)
- CATEGORY - forum category
** POST OWNER: **
- Personal channel
- userId = author
- ownerId = userId (Type.USER)
- ownerType = USER
- groupId = null
- Forum post
- userId = author
- ownerId = categoryId (Type.CATEGORY)
- ownerType = CATEGORY
- groupId = forum’s groupId
- Personal event
- userId = author
- ownerId = eventId (Type.EVENT)
- ownerType = EVENT
- groupId = null
- Group channel
- userId = author
- ownerId = channel userId (Type.USER)
- ownerType = USER
- groupId = groupId
- Group event
- userId = author
- ownerId = eventId (Type.EVENT)
- ownerType = EVENT
- groupId = groupId
Privacy levels for posts:
- PUBLIC - post is visible to anyone, including people who are not logged in and those who do not follow the user. It appears in the public timelines (home, local, and federated).
- UNLISTED - post is visible to anyone who visits the user's profile, but it does not appear in public timelines. Only followers and those who visit the user's profile directly can see it.
- PRIVATE - post is only visible to the user's followers. It does not appear in public timelines or on the user's profile for non-followers.
- DIRECT - post is visible only to the mentioned users. It functions like a direct message and is not visible on public timelines, the user's profile, or to followers.
- FOLLOW_POST - comment only. Follow parent post visibility
If this draft edits an existing post, its ID
Upload IDs attached to this draft
{ "id": "us_01hxcvk1hjexere4pvtrj0ymqq", "userId": "us_01hxcvk1hjexere4pvtrj0ymqq", "text": "string", "ownerId": "us_01hxcvk1hjexere4pvtrj0ymqq", "ownerType": "USER", "title": "string", "local": true, "privacy": "PUBLIC", "tags": [ "string" ], "postId": "us_01hxcvk1hjexere4pvtrj0ymqq", "createdAt": "2022-03-10T16:15:50Z", "updatedAt": "2022-03-10T16:15:50Z", "attachments": [ "us_01hxcvk1hjexere4pvtrj0ymqq" ], "postAsOwner": true }
Privacy levels for posts:
- PUBLIC - post is visible to anyone, including people who are not logged in and those who do not follow the user. It appears in the public timelines (home, local, and federated).
- UNLISTED - post is visible to anyone who visits the user's profile, but it does not appear in public timelines. Only followers and those who visit the user's profile directly can see it.
- PRIVATE - post is only visible to the user's followers. It does not appear in public timelines or on the user's profile for non-followers.
- DIRECT - post is visible only to the mentioned users. It functions like a direct message and is not visible on public timelines, the user's profile, or to followers.
- FOLLOW_POST - comment only. Follow parent post visibility
- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/drafts/{draftId}
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/drafts/{draftId}
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/drafts/{draftId}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PUT \
https://docs.wellesley.social/_mock/openapi/api/v1/drafts/us_01hxcvk1hjexere4pvtrj0ymqq \
-H 'Authorization: YOUR_API_KEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"text": "string",
"title": "string",
"privacy": "PUBLIC",
"tags": [
"string"
],
"postId": "us_01hxcvk1hjexere4pvtrj0ymqq",
"postAsOwner": true,
"attachments": [
"us_01hxcvk1hjexere4pvtrj0ymqq"
]
}'The updated draft
ID of the entity this draft is for (user channel, forum category or event)
Owner types for posts:
- USER - user’s channel (personal or group channel)
- EVENT - event (personal or group)
- CATEGORY - forum category
** POST OWNER: **
- Personal channel
- userId = author
- ownerId = userId (Type.USER)
- ownerType = USER
- groupId = null
- Forum post
- userId = author
- ownerId = categoryId (Type.CATEGORY)
- ownerType = CATEGORY
- groupId = forum’s groupId
- Personal event
- userId = author
- ownerId = eventId (Type.EVENT)
- ownerType = EVENT
- groupId = null
- Group channel
- userId = author
- ownerId = channel userId (Type.USER)
- ownerType = USER
- groupId = groupId
- Group event
- userId = author
- ownerId = eventId (Type.EVENT)
- ownerType = EVENT
- groupId = groupId
Privacy levels for posts:
- PUBLIC - post is visible to anyone, including people who are not logged in and those who do not follow the user. It appears in the public timelines (home, local, and federated).
- UNLISTED - post is visible to anyone who visits the user's profile, but it does not appear in public timelines. Only followers and those who visit the user's profile directly can see it.
- PRIVATE - post is only visible to the user's followers. It does not appear in public timelines or on the user's profile for non-followers.
- DIRECT - post is visible only to the mentioned users. It functions like a direct message and is not visible on public timelines, the user's profile, or to followers.
- FOLLOW_POST - comment only. Follow parent post visibility
If this draft edits an existing post, its ID
Upload IDs attached to this draft
{ "id": "us_01hxcvk1hjexere4pvtrj0ymqq", "userId": "us_01hxcvk1hjexere4pvtrj0ymqq", "text": "string", "ownerId": "us_01hxcvk1hjexere4pvtrj0ymqq", "ownerType": "USER", "title": "string", "local": true, "privacy": "PUBLIC", "tags": [ "string" ], "postId": "us_01hxcvk1hjexere4pvtrj0ymqq", "createdAt": "2022-03-10T16:15:50Z", "updatedAt": "2022-03-10T16:15:50Z", "attachments": [ "us_01hxcvk1hjexere4pvtrj0ymqq" ], "postAsOwner": true }
- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/drafts/{draftId}
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/drafts/{draftId}
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/drafts/{draftId}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
https://docs.wellesley.social/_mock/openapi/api/v1/drafts/us_01hxcvk1hjexere4pvtrj0ymqq \
-H 'Authorization: YOUR_API_KEY_HERE'The draft
ID of the entity this draft is for (user channel, forum category or event)
Owner types for posts:
- USER - user’s channel (personal or group channel)
- EVENT - event (personal or group)
- CATEGORY - forum category
** POST OWNER: **
- Personal channel
- userId = author
- ownerId = userId (Type.USER)
- ownerType = USER
- groupId = null
- Forum post
- userId = author
- ownerId = categoryId (Type.CATEGORY)
- ownerType = CATEGORY
- groupId = forum’s groupId
- Personal event
- userId = author
- ownerId = eventId (Type.EVENT)
- ownerType = EVENT
- groupId = null
- Group channel
- userId = author
- ownerId = channel userId (Type.USER)
- ownerType = USER
- groupId = groupId
- Group event
- userId = author
- ownerId = eventId (Type.EVENT)
- ownerType = EVENT
- groupId = groupId
Privacy levels for posts:
- PUBLIC - post is visible to anyone, including people who are not logged in and those who do not follow the user. It appears in the public timelines (home, local, and federated).
- UNLISTED - post is visible to anyone who visits the user's profile, but it does not appear in public timelines. Only followers and those who visit the user's profile directly can see it.
- PRIVATE - post is only visible to the user's followers. It does not appear in public timelines or on the user's profile for non-followers.
- DIRECT - post is visible only to the mentioned users. It functions like a direct message and is not visible on public timelines, the user's profile, or to followers.
- FOLLOW_POST - comment only. Follow parent post visibility
If this draft edits an existing post, its ID
Upload IDs attached to this draft
{ "id": "us_01hxcvk1hjexere4pvtrj0ymqq", "userId": "us_01hxcvk1hjexere4pvtrj0ymqq", "text": "string", "ownerId": "us_01hxcvk1hjexere4pvtrj0ymqq", "ownerType": "USER", "title": "string", "local": true, "privacy": "PUBLIC", "tags": [ "string" ], "postId": "us_01hxcvk1hjexere4pvtrj0ymqq", "createdAt": "2022-03-10T16:15:50Z", "updatedAt": "2022-03-10T16:15:50Z", "attachments": [ "us_01hxcvk1hjexere4pvtrj0ymqq" ], "postAsOwner": true }
- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/drafts/{draftId}
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/drafts/{draftId}
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/drafts/{draftId}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
https://docs.wellesley.social/_mock/openapi/api/v1/drafts/us_01hxcvk1hjexere4pvtrj0ymqq \
-H 'Authorization: YOUR_API_KEY_HERE'- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/drafts/{draftId}/publish
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/drafts/{draftId}/publish
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/drafts/{draftId}/publish
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://docs.wellesley.social/_mock/openapi/api/v1/drafts/us_01hxcvk1hjexere4pvtrj0ymqq/publish \
-H 'Authorization: YOUR_API_KEY_HERE'The published post
Privacy levels for posts:
- PUBLIC - post is visible to anyone, including people who are not logged in and those who do not follow the user. It appears in the public timelines (home, local, and federated).
- UNLISTED - post is visible to anyone who visits the user's profile, but it does not appear in public timelines. Only followers and those who visit the user's profile directly can see it.
- PRIVATE - post is only visible to the user's followers. It does not appear in public timelines or on the user's profile for non-followers.
- DIRECT - post is visible only to the mentioned users. It functions like a direct message and is not visible on public timelines, the user's profile, or to followers.
- FOLLOW_POST - comment only. Follow parent post visibility
id of a post this one was reposted from
Owner types for posts:
- USER - user’s channel (personal or group channel)
- EVENT - event (personal or group)
- CATEGORY - forum category
** POST OWNER: **
- Personal channel
- userId = author
- ownerId = userId (Type.USER)
- ownerType = USER
- groupId = null
- Forum post
- userId = author
- ownerId = categoryId (Type.CATEGORY)
- ownerType = CATEGORY
- groupId = forum’s groupId
- Personal event
- userId = author
- ownerId = eventId (Type.EVENT)
- ownerType = EVENT
- groupId = null
- Group channel
- userId = author
- ownerId = channel userId (Type.USER)
- ownerType = USER
- groupId = groupId
- Group event
- userId = author
- ownerId = eventId (Type.EVENT)
- ownerType = EVENT
- groupId = groupId
Subject or summary line, below which post content is collapsed until expanded.
Stats
Post media type. Default for Note is text/plain, for Article text/markdown
One of account's users. Can be multiple per account
Registration mode:
- REGULAR - just regular state
- SENSITIVE - all media attachments are flagged as sensitive, i.e. all user's posts should be marked as sensitive, old posts and all future ones.
- LIMITED - all user's old and future posts should be set maximum to followers only unless user set it to direct himself. non-followers should not be notified, i.e. if user mentions non-follower we do not create notification.
- SUSPENDED - User can login, but cannot do anything in his account except to read, cannot change anything, cannot create new posts or comments etc. All his posts are marked as deleted, but we do not delete them just yet. User is scheduled to be deleted in one month. During this month it is possible to restore it via admin.
- PUBLIC - Channel is visible to everyone and can be followed by anyone.
- PRIVATE - Channel is visible only to group members and can only be followed by group members.
Types that an Actor can be assigned. Coincide with ActivityPub Actor types:
- APPLICATION: Apps will have this type
- GROUP: Interest Groups and Generic Groups wil have this type
- ORGANIZATION: Formal Organizations such as Companies, Institutions, etc. will have this type
- PERSON: Individual people will have this type
- SERVICE: Bots, Services, and other automated tools which are not also Apps will have this type
User id this upload belongs to
Type of the upload
Meta data
List of all the files this upload has
true if this file is original, false if it is a derivative
File metadata. Contains optional values for width, height etc.
List of tags attached to upload
Original of repost/quote. In WS context or /replies API could also be parent of a comment
{ "id": "us_01hxcvk1hjexere4pvtrj0ymqq", "uri": "http://example.com", "text": "string", "path": [ "us_01hxcvk1hjexere4pvtrj0ymqq" ], "privacy": "PUBLIC", "kind": "Note", "software": "wellesley", "repostOf": "us_01hxcvk1hjexere4pvtrj0ymqq", "ownerId": "us_01hxcvk1hjexere4pvtrj0ymqq", "ownerType": "USER", "groupId": "us_01hxcvk1hjexere4pvtrj0ymqq", "title": "string", "summary": "string", "tags": [ "string" ], "mentions": [ "http://example.com" ], "stats": { "likes": 0, "reposts": 0, "quotes": 0, "comments": 0, "views": 0, "bookmarks": 0, "reactions": { … }, "watchTime": 0, "secondsToFirstAnswer": 0, "secondsToAccepted": 0, "lastActivity": "2022-03-10T16:15:50Z", "lastViewTimestamp": "2022-03-10T16:15:50Z" }, "settings": { "commentsEnabled": true, "sensitive": true }, "lang": "BG", "poll": { "id": "pl_01hz1f0jnm2f87w2mzpc4s92kt", "expiresAt": "2022-03-10T16:15:50Z", "multiple": true, "votersCount": 0, "options": [ … ], "hideTotals": true, "ownVotes": [ … ], "emojis": [ … ] }, "card": { "url": "string", "title": "string", "description": "string", "icon": "string", "image": "string", "imageAlt": "string", "publisher": { … }, "oembedHtml": "string", "createdAt": "2022-03-10T16:15:50Z", "expiresAt": "2022-03-10T16:15:50Z" }, "mediaType": "TEXT_PLAIN", "translations": { "property1": "string", "property2": "string" }, "createdAt": "2022-03-10T16:15:50Z", "updatedAt": "2022-03-10T16:15:50Z", "author": { "groupUserName": "string", "id": "us_01hxcvk1hjexere4pvtrj0ymqq", "username": "john_smith", "domain": "wlsly1.net", "displayName": "John Smith", "uri": "https://wlsly1.net/users/john_smith", "avatar": { … }, "createdAt": "2022-03-10T16:15:50Z", "deleted": true, "state": "REGULAR", "relationship": { … }, "channel": true, "groupId": "us_01hxcvk1hjexere4pvtrj0ymqq", "groupPrivacy": "PUBLIC", "groupMain": true, "groupDefault": true, "actorType": "Application" }, "uploads": [ { … } ], "liked": true, "reposted": true, "quoted": true, "muted": true, "blocked": true, "visible": true, "pinned": true, "bookmarked": true, "edited": true, "deleted": true, "emojis": [ { … } ], "replies": [ {} ], "repostedBy": [ { … } ], "originalPost": {}, "votes": { "upvotes": 0, "downvotes": 0, "ownVote": 0 }, "remote": true, "repostAny": true, "repost": true, "quote": true, "own": true, "replyTo": "us_01hxcvk1hjexere4pvtrj0ymqq", "conversationId": "us_01hxcvk1hjexere4pvtrj0ymqq" }
Group Channels
API endpoints for managing channels within groups. Channels are specialized accounts that enable organized content distribution within groups. They support hierarchical organization with main and default channels, privacy controls inherited from parent groups, and both scoped (group-specific) and global usernames for discovery. Group administrators manage channels while members can follow them.
Group Members
API endpoints for managing group membership. Provides functionality to add, update, and remove members from groups, as well as retrieve membership information. Supports both local and federated groups through ActivityPub protocol. Access control is enforced based on group privacy settings and user permissions.
Group Questions
API endpoints for managing group entry questions. Groups can require prospective members to answer questions before joining. Questions support multiple types (text, single choice, multiple choice) and are used to screen members when the group's join mode is set to QUESTIONS. Answers are validated and generate a token that can be used during the join process.
Group Rules
API endpoints for managing community rules within groups. Rules define the expected conduct and content policies that members must follow. Each rule consists of text (the rule itself), a hint (explanation or context), and an ordering value for display sequence. Rules are scoped to specific groups and can be managed by users with appropriate permissions.
Platform Data
Endpoints for managing platform-wide and group-specific data storage. Unlike application data, this provides direct data management not tied to specific applications. Supports flexible ownership models including platform-level, group-level, and user-level data with appropriate access controls.
RBAC
Endpoints for retrieving Role-Based Access Control (RBAC) configurations and managing roles, resources, permissions and role-to-user assignments. Scoped Role Definition (RBACRole):
- Represents roles within the RBAC system.
- Each role has a unique
roleId, aname, an optionaldescription, and ascope. - The
scopedefines the domain or area in which the role is valid. - The
scopecan be Global (hardcoded), currently the only one is "System" - The
scopealso can be dynamic, currently we use Group Ids, like "gr_05hxcvk1hjexere4pvtrj0hggt" - Roles come with assigned permissions (
RBACPermissions) that define what actions the role can perform on system resources. - Metadata such as
createdAtandupdatedAttimestamps track the role's lifecycle events.
Permissions** (RBACPermissions):
- Encapsulates resource-specific access controls.
- Each permission object specifies the
resource(e.g., "user", "document") and an associated list of allowedRBACAccesstypes. RBACAccessenumerates the supported actions:Read,Add,Modify,Delete.
Role Assignments to Actors (RBACActorRole):
- Maps actors (e.g., users, services) to specific roles.
- Tracks the association through
actorId(representing the unique entity being assigned) androleId(specific role ID). - Includes timestamps to record when the assignment was created or updated.