Skip to main content

Actor Properties

Properties specific to Actor types (Person, Group, Service, etc.).

Required Properties

PropertyTypeDescription
idURLUnique actor identifier
typeStringActor type
inboxURLReceiving endpoint
outboxURLPublishing endpoint
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Person",
"id": "https://example.com/users/alice",
"inbox": "https://example.com/users/alice/inbox",
"outbox": "https://example.com/users/alice/outbox"
}

Identity Properties

PropertyTypeDescription
preferredUsernameStringHandle (no @domain)
nameStringDisplay name
summaryStringBio (HTML allowed)
{
"preferredUsername": "alice",
"name": "Alice Smith",
"summary": "<p>Developer and <a href='#'>#Fediverse</a> enthusiast</p>"
}

Collection Endpoints

PropertyTypeDescription
followersURLFollowers collection
followingURLFollowing collection
likedURLLiked posts
featuredURLPinned posts
featuredTagsURLFeatured hashtags
{
"followers": "https://example.com/users/alice/followers",
"following": "https://example.com/users/alice/following",
"liked": "https://example.com/users/alice/liked",
"featured": "https://example.com/users/alice/collections/featured"
}

Profile Images

PropertyTypeDescription
iconImageAvatar
imageImageHeader/banner
{
"icon": {
"type": "Image",
"mediaType": "image/png",
"url": "https://example.com/avatars/alice.png"
},
"image": {
"type": "Image",
"mediaType": "image/jpeg",
"url": "https://example.com/headers/alice.jpg"
}
}

Public Key (Security)

Required for HTTP Signatures:

{
"publicKey": {
"id": "https://example.com/users/alice#main-key",
"owner": "https://example.com/users/alice",
"publicKeyPem": "-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----"
}
}

Service Endpoints

PropertyTypeDescription
endpointsObjectAdditional endpoints
sharedInboxURLShared delivery inbox
{
"endpoints": {
"sharedInbox": "https://example.com/inbox"
}
}

Mastodon Extensions

PropertyTypeDescription
manuallyApprovesFollowersBooleanLocked account
discoverableBooleanShow in directory
memorialBooleanMemorial account
indexableBooleanAllow search indexing
{
"manuallyApprovesFollowers": false,
"discoverable": true,
"indexable": true
}

Profile Metadata

Custom fields using attachment:

{
"attachment": [
{
"type": "PropertyValue",
"name": "Website",
"value": "<a href='https://example.com'>example.com</a>"
},
{
"type": "PropertyValue",
"name": "Pronouns",
"value": "she/her"
}
]
}

Verification

Identity proofs with rel=me:

{
"attachment": [
{
"type": "PropertyValue",
"name": "Website",
"value": "<a href='https://mysite.com' rel='me'>mysite.com</a>"
}
]
}

Also Known As (Migration)

For account migration:

{
"alsoKnownAs": [
"https://old.example/users/alice"
],
"movedTo": "https://new.example/users/alice"
}

Complete Actor Example

{
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/security/v1"
],
"type": "Person",
"id": "https://example.com/users/alice",
"preferredUsername": "alice",
"name": "Alice Smith",
"summary": "<p>Developer</p>",
"inbox": "https://example.com/users/alice/inbox",
"outbox": "https://example.com/users/alice/outbox",
"followers": "https://example.com/users/alice/followers",
"following": "https://example.com/users/alice/following",
"icon": {
"type": "Image",
"url": "https://example.com/avatars/alice.png"
},
"publicKey": {
"id": "https://example.com/users/alice#main-key",
"owner": "https://example.com/users/alice",
"publicKeyPem": "-----BEGIN PUBLIC KEY-----..."
},
"endpoints": {
"sharedInbox": "https://example.com/inbox"
}
}

See Also