Assign and list group AI agent assignments
Wellesley Platform API (1.0)
Request
Retrieves a list of AI agent assignments filtered by assignment type and optional resource ID. This allows querying which bots are active in specific scopes (global, forums, categories, channels). Returns an array of assignments matching the specified criteria.
RBAC:
- requires ANY of AIAgents.Read, AIAgents.Manage
- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/ai-agents/assignments
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/ai-agents/assignments
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/ai-agents/assignments
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.wellesley.social/_mock/openapi/api/v1/ai-agents/assignments?resourceId=frm_xyz123&type=GLOBAL'Array of AI agent assignments matching the query criteria
Unique TypeId for this assignment
TypeId of the bot user assigned. References a user with isBot=true.
Assignment scope/type that determines where an AI agent operates.
- GLOBAL: Bot operates platform-wide across all content
- GROUP: Bot operates within a specific group
- FORUM: Bot operates within a specific forum
- FORUM_CATEGORY: Bot operates within a specific forum category
- GROUP_CHANNEL: Bot operates within a specific group channel
TypeId of the specific resource this assignment is scoped to. Null for GLOBAL assignments. Contains forum_id for FORUM, category_id for FORUM_CATEGORY, channel_id for GROUP_CHANNEL assignments.
TypeId of the group this assignment belongs to. Present for group-scoped assignments (GROUP, FORUM, FORUM_CATEGORY, GROUP_CHANNEL). Null for GLOBAL assignments.
ISO 8601 timestamp when this assignment was created
ISO 8601 timestamp when this assignment was last updated
[ { "assignmentId": "aia_abc123", "agentId": "usr_bot456", "assignmentType": "GLOBAL", "resourceId": null, "groupId": null, "createdAt": "2024-01-15T10:30:00Z", "updatedAt": "2024-01-15T10:30:00Z" }, { "assignmentId": "aia_def789", "agentId": "usr_bot789", "assignmentType": "FORUM", "resourceId": "frm_xyz123", "groupId": "grp_abc456", "createdAt": "2024-01-16T14:20:00Z", "updatedAt": "2024-01-16T14:20:00Z" } ]
- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/ai-agents/assignments
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/ai-agents/assignments
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/ai-agents/assignments
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
'https://docs.wellesley.social/_mock/openapi/api/v1/ai-agents/assignments?id=aia_abc123'Request
Creates a global AI agent assignment that activates a bot platform-wide. The agent must be a valid bot user (user with isBot=true). Only GLOBAL assignment type is allowed in this context. For group-scoped assignments, use the Group AI Agent Management API instead.
RBAC: requires AIAgents.Manage
TypeId of the bot user to assign. Must be a valid user with isBot=true.
Assignment scope/type that determines where an AI agent operates.
- GLOBAL: Bot operates platform-wide across all content
- GROUP: Bot operates within a specific group
- FORUM: Bot operates within a specific forum
- FORUM_CATEGORY: Bot operates within a specific forum category
- GROUP_CHANNEL: Bot operates within a specific group channel
TypeId of the resource to scope the assignment to. Must be null for GLOBAL assignments. Must be null or match the group ID for GROUP assignments. Required for FORUM (forum_id), FORUM_CATEGORY (category_id), GROUP_CHANNEL (channel_id) assignments. The TypeId type must match the assignment type.
- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/ai-agents/assignments
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/ai-agents/assignments
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/ai-agents/assignments
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://docs.wellesley.social/_mock/openapi/api/v1/ai-agents/assignments \
-H 'Content-Type: application/json' \
-d '{
"agentId": "usr_bot456",
"assignmentType": "GLOBAL",
"resourceId": null
}'Successfully created AI agent assignment with assignment details
Unique TypeId for this assignment
TypeId of the bot user assigned. References a user with isBot=true.
Assignment scope/type that determines where an AI agent operates.
- GLOBAL: Bot operates platform-wide across all content
- GROUP: Bot operates within a specific group
- FORUM: Bot operates within a specific forum
- FORUM_CATEGORY: Bot operates within a specific forum category
- GROUP_CHANNEL: Bot operates within a specific group channel
TypeId of the specific resource this assignment is scoped to. Null for GLOBAL assignments. Contains forum_id for FORUM, category_id for FORUM_CATEGORY, channel_id for GROUP_CHANNEL assignments.
TypeId of the group this assignment belongs to. Present for group-scoped assignments (GROUP, FORUM, FORUM_CATEGORY, GROUP_CHANNEL). Null for GLOBAL assignments.
ISO 8601 timestamp when this assignment was created
{ "assignmentId": "aia_abc123", "agentId": "usr_bot456", "assignmentType": "GLOBAL", "resourceId": null, "groupId": null, "createdAt": "2024-01-15T10:30:00Z", "updatedAt": "2024-01-15T10:30:00Z" }
- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/ai-agents/posts
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/ai-agents/posts
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/ai-agents/posts
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.wellesley.social/_mock/openapi/api/v1/ai-agents/posts?limit=0&ownerId=us_01hxcvk1hjexere4pvtrj0ymqq&since=2022-03-10T16%3A15%3A50Z'Posts list
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": [ … ], "privacy": "PUBLIC", "kind": "Note", "software": "wellesley", "repostOf": "us_01hxcvk1hjexere4pvtrj0ymqq", "ownerId": "us_01hxcvk1hjexere4pvtrj0ymqq", "ownerType": "USER", "groupId": "us_01hxcvk1hjexere4pvtrj0ymqq", "title": "string", "summary": "string", "tags": [ … ], "mentions": [ … ], "stats": { … }, "settings": { … }, "lang": "BG", "poll": { … }, "card": { … }, "mediaType": "TEXT_PLAIN", "translations": { … }, "createdAt": "2022-03-10T16:15:50Z", "updatedAt": "2022-03-10T16:15:50Z", "author": { … }, "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": { … }, "remote": true, "repostAny": true, "repost": true, "quote": true, "own": true, "replyTo": "us_01hxcvk1hjexere4pvtrj0ymqq", "conversationId": "us_01hxcvk1hjexere4pvtrj0ymqq" } ]
Assignment scope/type that determines where an AI agent operates.
- GLOBAL: Bot operates platform-wide across all content
- GROUP: Bot operates within a specific group
- FORUM: Bot operates within a specific forum
- FORUM_CATEGORY: Bot operates within a specific forum category
- GROUP_CHANNEL: Bot operates within a specific group channel
- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/groups/{groupId}/ai-agents/assignments
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/groups/{groupId}/ai-agents/assignments
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/groups/{groupId}/ai-agents/assignments
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.wellesley.social/_mock/openapi/api/v1/groups/gr_01hz1f0kw36f82k9s4nzpc4s33n/ai-agents/assignments?resourceId=string&type=GLOBAL'Assignments
Unique TypeId for this assignment
TypeId of the bot user assigned. References a user with isBot=true.
Assignment scope/type that determines where an AI agent operates.
- GLOBAL: Bot operates platform-wide across all content
- GROUP: Bot operates within a specific group
- FORUM: Bot operates within a specific forum
- FORUM_CATEGORY: Bot operates within a specific forum category
- GROUP_CHANNEL: Bot operates within a specific group channel
TypeId of the specific resource this assignment is scoped to. Null for GLOBAL assignments. Contains forum_id for FORUM, category_id for FORUM_CATEGORY, channel_id for GROUP_CHANNEL assignments.
TypeId of the group this assignment belongs to. Present for group-scoped assignments (GROUP, FORUM, FORUM_CATEGORY, GROUP_CHANNEL). Null for GLOBAL assignments.
ISO 8601 timestamp when this assignment was created
ISO 8601 timestamp when this assignment was last updated
[ { "assignmentId": "aia_abc123", "agentId": "usr_bot456", "assignmentType": "FORUM", "resourceId": "frm_xyz123", "groupId": "grp_abc456", "createdAt": "2024-01-15T10:30:00Z", "updatedAt": "2024-01-15T10:30:00Z" } ]
- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/groups/{groupId}/ai-agents/assignments
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/groups/{groupId}/ai-agents/assignments
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/groups/{groupId}/ai-agents/assignments
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
'https://docs.wellesley.social/_mock/openapi/api/v1/groups/gr_01hz1f0kw36f82k9s4nzpc4s33n/ai-agents/assignments?assignmentId=us_01hxcvk1hjexere4pvtrj0ymqq'TypeId of the bot user to assign. Must be a valid user with isBot=true.
Assignment scope/type that determines where an AI agent operates.
- GLOBAL: Bot operates platform-wide across all content
- GROUP: Bot operates within a specific group
- FORUM: Bot operates within a specific forum
- FORUM_CATEGORY: Bot operates within a specific forum category
- GROUP_CHANNEL: Bot operates within a specific group channel
TypeId of the resource to scope the assignment to. Must be null for GLOBAL assignments. Must be null or match the group ID for GROUP assignments. Required for FORUM (forum_id), FORUM_CATEGORY (category_id), GROUP_CHANNEL (channel_id) assignments. The TypeId type must match the assignment type.
- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/groups/{groupId}/ai-agents/assignments
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/groups/{groupId}/ai-agents/assignments
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/groups/{groupId}/ai-agents/assignments
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://docs.wellesley.social/_mock/openapi/api/v1/groups/gr_01hz1f0kw36f82k9s4nzpc4s33n/ai-agents/assignments \
-H 'Content-Type: application/json' \
-d '{
"agentId": "usr_bot456",
"assignmentType": "GLOBAL",
"resourceId": null
}'Created assignment
Unique TypeId for this assignment
TypeId of the bot user assigned. References a user with isBot=true.
Assignment scope/type that determines where an AI agent operates.
- GLOBAL: Bot operates platform-wide across all content
- GROUP: Bot operates within a specific group
- FORUM: Bot operates within a specific forum
- FORUM_CATEGORY: Bot operates within a specific forum category
- GROUP_CHANNEL: Bot operates within a specific group channel
TypeId of the specific resource this assignment is scoped to. Null for GLOBAL assignments. Contains forum_id for FORUM, category_id for FORUM_CATEGORY, channel_id for GROUP_CHANNEL assignments.
TypeId of the group this assignment belongs to. Present for group-scoped assignments (GROUP, FORUM, FORUM_CATEGORY, GROUP_CHANNEL). Null for GLOBAL assignments.
ISO 8601 timestamp when this assignment was created
{ "assignmentId": "aia_abc123", "agentId": "usr_bot456", "assignmentType": "FORUM", "resourceId": "frm_xyz123", "groupId": "grp_abc456", "createdAt": "2024-01-15T10:30:00Z", "updatedAt": "2024-01-15T10:30:00Z" }
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.