Assign and list group AI agent assignments
Wellesley Platform API (1.0)
Request
Creates a new user profile under an existing account. The user will have a unique username within the account's domain. This endpoint validates that the username is not reserved, the username doesn't already exist, and the associated account exists. Returns the created user information.
RBAC: requires Users.Manage
JSON object with the user's data
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
- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/admin/create-user
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/admin/create-user
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/admin/create-user
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://docs.wellesley.social/_mock/openapi/api/v1/admin/create-user?account_id=us_01hxcvk1hjexere4pvtrj0ymqq' \
-H 'Content-Type: application/json' \
-d '{
"username": "john_smith",
"displayName": "John Smith",
"summary": "I work in IT",
"avatarId": "us_01hxcvk1hjexere4pvtrj0ymqq",
"headerId": "us_01hxcvk1hjexere4pvtrj0ymqq",
"actorType": "USER",
"channel": false
}'User successfully created under existing account
User's summary or bio
User stats
privacy setting to hide followings
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.
Software platform type (wellesley, mastodon, threads.net)
- 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
{ "groupUserName": "string", "id": "us_01hxcvk1hjexere4pvtrj0ymqq", "username": "john_smith", "domain": "wlsly1.net", "displayName": "John Smith", "summary": "Pixels are my paint, code is my canvas, creativity is my brush.", "uri": "https://wlsly1.net/users/john_smith", "stats": { "posts": 0, "followers": 0, "following": 0, "followingHidden": true, "totalStorageBytes": 0, "comments": 0 }, "fields": { "property1": { … }, "property2": { … } }, "avatar": { "uploadId": "up_kjhwieuy2387928371", "userId": "us_97234khddqdkuhqwij", "uploadType": "video", "meta": { … }, "size": 0, "files": [ … ], "tags": [ … ], "error": "string", "cached": true, "logs": "string", "remote": true, "createdAt": "2022-03-10T16:15:50Z", "updatedAt": "2022-03-10T16:15:50Z" }, "header": { "uploadId": "up_kjhwieuy2387928371", "userId": "us_97234khddqdkuhqwij", "uploadType": "video", "meta": { … }, "size": 0, "files": [ … ], "tags": [ … ], "error": "string", "cached": true, "logs": "string", "remote": true, "createdAt": "2022-03-10T16:15:50Z", "updatedAt": "2022-03-10T16:15:50Z" }, "createdAt": "2022-03-10T16:15:50Z", "deleted": true, "state": "REGULAR", "relationship": { "following": "PENDING", "followed": "PENDING", "blocked": true, "blockedBy": true, "muted": { … }, "note": "string" }, "emojis": [ { … } ], "location": { "geo": { … }, "name": "string", "autoUpdate": true, "show": true }, "timezone": { "ianaTimezone": "string", "autoUpdate": true, "show": true }, "birthday": { "date": "2022-03-10T16:15:50Z", "show": "NONE" }, "software": "wellesley", "channel": true, "groupId": "us_01hxcvk1hjexere4pvtrj0ymqq", "groupPrivacy": "PUBLIC", "groupMain": true, "groupDefault": true, "actorType": "Application" }
Request
Permanently deletes an account and all its associated users. Can identify the account by email address, account ID, or username. This operation notifies followers on remote servers about the deletion and marks all associated content appropriately. This action is irreversible. Administrators cannot delete their own account through this endpoint.
RBAC: requires Users.Manage
- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/admin/delete
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/admin/delete
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/admin/delete
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
'https://docs.wellesley.social/_mock/openapi/api/v1/admin/delete?email=string&id=us_01hxcvk1hjexere4pvtrj0ymqq&username=string'null
Request
Permanently deletes a user profile. Can identify the user by username or user ID. This operation notifies followers on remote servers about the deletion and marks all associated content appropriately. This action is irreversible. Administrators cannot delete their own user profile through this endpoint.
RBAC: requires Users.Manage
- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/admin/delete-user
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/admin/delete-user
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/admin/delete-user
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
'https://docs.wellesley.social/_mock/openapi/api/v1/admin/delete-user?id=us_01hxcvk1hjexere4pvtrj0ymqq&username=string'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.
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.