Service
ActivityStreams §4.1"type": "Service"
Service represents an automated account or bot that performs a specific function. Used by Mastodon relay actors, bridge bots (Bridgy Fed), moderation bots, and automated content aggregators. The Service type signals to clients that the actor is not a human and behaves programmatically.
Details
Service actors are automated accounts. The main behavioral difference from Person is semantic – clients may display Service actors differently (e.g., with a 'bot' label) and users may adjust their following behavior accordingly.
Mastodon bot labeling: Mastodon displays a robot icon on accounts where the actor document includes the Mastodon extension field 'manuallyApprovesFollowers' combined with certain patterns, but more precisely, Mastodon users can set their account as 'This is a bot account' which sets a custom Mastodon extension rather than changing the actor type to Service.
Actual Service actor deployments: - Relay actors: fedirelay.toot.cafe uses Service actors that forward public posts between servers - Bridgy Fed: bridges Bluesky/Nostr to ActivityPub as Service actors - RSS-to-ActivityPub bots: publish RSS feed items as Notes from a Service actor - Monitoring bots: uptime/status bots that post alerts
Protocol behavior: Service actors participate in federation identically to Person actors. The type is purely semantic – there are no protocol-level restrictions on what a Service actor can or cannot do.
Required Fields
| @context | "https://www.w3.org/ns/activitystreams" |
| type | "Service" |
| id | Permanent HTTPS URL |
| inbox | HTTPS inbox endpoint |
Common Optional Fields
| name | Service/bot display name |
| preferredUsername | @handle |
| summary | Description of what the service does |
| url | Service homepage |
Examples
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Service",
"id": "https://rss.example.com/users/ietf-rss",
"name": "IETF RFC Feed Bot",
"preferredUsername": "ietf-rss",
"summary": "<p>Automated bot posting new IETF RFCs from rss.ietf.org</p>",
"inbox": "https://rss.example.com/users/ietf-rss/inbox",
"outbox": "https://rss.example.com/users/ietf-rss/outbox"
}