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.
Filter by blocking state(s) - accepts single state or comma-separated list (LIMITED, SUSPENDED, NOOP)
Get older records (records with IDs less than this value) Alias maxId/max_id
Get newer records (records with IDs greater than this value) Alias minId/min_id
- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/admin/federation
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/admin/federation
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/admin/federation
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.wellesley.social/_mock/openapi/api/v1/admin/federation?blockState=SUSPEND&lastId=%3FlastId%3D%24{data.last%28%29.id}&limit=0&offset=0&search=string&sortBy=string&sortOrder=string&unavailable=true&untilId=%3FuntilId%3D%24{data.first%28%29.id}&warning=true'Successfully retrieved list of federated domains
Registration mode:
- SUSPEND - removes all content, media, and profile data for this domain's accounts from your server.
- LIMIT - makes posts from accounts at this domain invisible to anyone who isn't following them.
- NOOP - when you just want to reject media files or reports.
{ "list": [ { … } ], "total": 0, "failureThreshold": "3600" }
Request
Retrieves a list of all ActivityPub operations that have been tracked on this server. An operation combines the Activity type with the inner object type (if present). Examples: 'create-note' (Create activity with Note object), 'follow' (Follow activity), 'accept-follow' (Accept activity with Follow object), 'announce' (boost/reblog), 'undo-announce'.
RBAC:
- requires ANY of Federation.Read, Federation.Manage
- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/admin/federation/metrics/operations
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/admin/federation/metrics/operations
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/admin/federation/metrics/operations
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.wellesley.social/_mock/openapi/api/v1/admin/federation/metrics/operations?window=ONE_HOUR'[ "follow", "accept-follow", "create-note", "announce", "undo-follow", "like", "undo-like" ]
Request
Returns sliding window metrics for a single ActivityPub operation, including count, average processing time, and percentiles. The metrics are calculated over the specified time window. Returns 404 if no data exists for the operation or the window has expired.
RBAC:
- requires ANY of Federation.Read, Federation.Manage
- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/admin/federation/metrics/running-average-single
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/admin/federation/metrics/running-average-single
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/admin/federation/metrics/running-average-single
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.wellesley.social/_mock/openapi/api/v1/admin/federation/metrics/running-average-single?operation=follow&window=ONE_HOUR'{ "average": 0.1, "count": 0, "totalTime": 0, "lastUpdated": "2022-03-10T16:15:50Z", "operation": "string", "windowCreated": "2022-03-10T16:15:50Z" }
Request
Returns sliding window metrics for all ActivityPub operations or a filtered subset. Only includes operations that have active data within the specified time window. Each operation's metrics include count, average processing time, and percentiles.
RBAC:
- requires ANY of Federation.Read, Federation.Manage
- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/admin/federation/metrics/running-averages-all
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/admin/federation/metrics/running-averages-all
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/admin/federation/metrics/running-averages-all
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.wellesley.social/_mock/openapi/api/v1/admin/federation/metrics/running-averages-all?operations=follow%2Ccreate-note%2Cannounce&window=TWENTY_FOUR_HOURS'Map of operation names to their corresponding metrics
Wall-clock aligned tumbling window metrics for monitoring operation performance over time periods.
Key Features:
- Windows are aligned to wall-clock boundaries (e.g., 10:00-10:10, 10:10-10:20)
- All operations share the same window boundaries for consistent comparison
- Windows reset completely when they expire (tumbling, not sliding)
- Memory-efficient with constant storage per operation per window
Synchronous Boundaries: All operations use identical window start/end times
10:05 - "follow" metric → Window: 10:00-10:10
10:07 - "create-note" metric → Window: 10:00-10:10 (same window)
10:11 - "follow" metric → Window: 10:10-10:20 (new window)Complete Reset on Expiration:
Window 10:00-10:10: follow(avg=150ms, count=45)
Window 10:10-10:20: follow(avg=200ms, count=12) ← Fresh startGap Handling:
10:05 - Metrics recorded → Window: 10:00-10:10
[No activity for 25 minutes]
10:35 - New metric → Window: 10:30-10:40 ← Fresh windowPrevious windows (10:10-10:20, 10:20-10:30) remain empty/non-existent.
Limitations:
- Not true sliding: Old data is completely lost when windows expire
- Coarse granularity: Only shows averages per window, not sub-window patterns
- No historical depth: Only current window data is retained
UI Display Recommendations:
"Follow operations: 150ms avg (45 ops, 10:00-10:10, last updated 10:08:30)"Use windowCreated and lastUpdated to show clear time boundaries and data freshness.
{ "property1": { "average": 0.1, "count": 0, "totalTime": 0, "lastUpdated": "2022-03-10T16:15:50Z", "operation": "string", "windowCreated": "2022-03-10T16:15:50Z" }, "property2": { "average": 0.1, "count": 0, "totalTime": 0, "lastUpdated": "2022-03-10T16:15:50Z", "operation": "string", "windowCreated": "2022-03-10T16:15:50Z" } }
- Mock serverhttps://docs.wellesley.social/_mock/openapi/api/v1/admin/federation/{domain}
- Simple setup, all in one. Digital Oceanhttps://dust.allroads.social/api/v1/admin/federation/{domain}
- Simple setup, db is separate. Digital Oceanhttps://meteor.allroads.social/api/v1/admin/federation/{domain}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
https://docs.wellesley.social/_mock/openapi/api/v1/admin/federation/mastodon.social{ "users": 0, "posts": 0, "followers": 0, "followings": 0, "reports": 0, "available": true, "failureDays": 0, "failureThreshold": "3600", "blocked": { "domain": "spam.example", "publicComment": "Repeated spam violations", "state": "SUSPEND", "rejectMedia": true, "rejectReports": false, "privateComment": "Multiple verified spam reports from trusted instances", "obfuscate": false, "createdAt": "2024-01-15T10:30:00Z", "updatedAt": "2024-01-16T14:20:00Z" } }
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.