Skip to main content

Actor Types

Actors are entities that can perform activities in the Fediverse.

Core Actor Types

ActorPersonGroupServiceApplicationOrganization

Person

Represents an individual user account.

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Person",
"id": "https://example.com/users/alice",
"preferredUsername": "alice",
"name": "Alice Smith",
"inbox": "https://example.com/users/alice/inbox",
"outbox": "https://example.com/users/alice/outbox"
}

Use Cases: User accounts, personal profiles

Group

Represents a collection of actors.

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Group",
"id": "https://example.com/groups/developers",
"name": "Developer Community",
"attributedTo": "https://example.com/users/admin"
}

Use Cases: Forums, communities, mailing lists (Lemmy, Friendica)

Service

Represents an automated service or bot.

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Service",
"id": "https://example.com/bots/weather",
"name": "Weather Bot",
"summary": "Posts daily weather updates"
}

Use Cases: Bots, automated accounts, bridges

Application

Represents a software application.

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Application",
"id": "https://example.com/apps/relay",
"name": "Fediverse Relay"
}

Use Cases: Relay servers, aggregators

Organization

Represents a formal organization.

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Organization",
"id": "https://example.com/orgs/acme",
"name": "ACME Corporation"
}

Use Cases: Companies, nonprofits, institutions

Comparison

TypeHumanAutomatedCollective
Person
Group
Service
Application
Organization

Required Properties

All actors MUST have:

PropertyDescription
idUnique URL identifier
typeOne of the actor types
inboxURL for receiving activities
outboxURL for published activities

Common Optional Properties

PropertyDescription
preferredUsernameHandle without domain
nameDisplay name
summaryBio/description (HTML allowed)
iconAvatar image
imageHeader/banner image
publicKeyFor HTTP Signatures

Implementation Patterns

Mastodon

Uses Person for users with bot flag:

{
"type": "Person",
"manuallyApprovesFollowers": false,
"discoverable": true
}

Lemmy

Uses Group for communities:

{
"type": "Group",
"name": "[email protected]",
"moderators": ["..."]
}

See Also