Skip to main content

Activity Types Reference

This reference covers all activity types used in ActivityPub federation.

Content Activities​

Create​

Creates new content:

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Create",
"id": "https://example.com/activities/1",
"actor": "https://example.com/users/alice",
"object": {
"type": "Note",
"id": "https://example.com/notes/1",
"content": "Hello, world!"
},
"to": ["https://www.w3.org/ns/activitystreams#Public"]
}

Processing: Store the object, notify recipients.

Update​

Modifies existing content:

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Update",
"id": "https://example.com/activities/2",
"actor": "https://example.com/users/alice",
"object": {
"type": "Note",
"id": "https://example.com/notes/1",
"content": "Hello, world! (edited)",
"updated": "2024-01-15T11:00:00Z"
}
}

Processing: Verify actor owns object, update stored content.

Delete​

Removes content:

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Delete",
"id": "https://example.com/activities/3",
"actor": "https://example.com/users/alice",
"object": "https://example.com/notes/1"
}

Processing: Verify ownership, replace with Tombstone.

Social Activities​

Follow​

Request to follow an actor:

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Follow",
"id": "https://example.com/activities/4",
"actor": "https://example.com/users/alice",
"object": "https://other.example/users/bob"
}

Processing: Add to pending follows, send Accept or Reject.

Accept​

Accepts a request (usually Follow):

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Accept",
"id": "https://other.example/activities/5",
"actor": "https://other.example/users/bob",
"object": {
"type": "Follow",
"id": "https://example.com/activities/4",
"actor": "https://example.com/users/alice",
"object": "https://other.example/users/bob"
}
}

Processing: Add to following list, start receiving content.

Reject​

Rejects a request:

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Reject",
"id": "https://other.example/activities/6",
"actor": "https://other.example/users/bob",
"object": {
"type": "Follow",
"id": "https://example.com/activities/4"
}
}

Processing: Remove from pending follows.

Reaction Activities​

Like​

Express appreciation:

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Like",
"id": "https://example.com/activities/7",
"actor": "https://example.com/users/alice",
"object": "https://other.example/notes/1"
}

Processing: Store like, notify author.

Announce​

Share/boost content:

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Announce",
"id": "https://example.com/activities/8",
"actor": "https://example.com/users/alice",
"object": "https://other.example/notes/1",
"to": ["https://www.w3.org/ns/activitystreams#Public"],
"cc": [
"https://other.example/users/bob",
"https://example.com/users/alice/followers"
]
}

Processing: Store boost, notify author, deliver to followers.

Negative Activities​

Block​

Block an actor:

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Block",
"id": "https://example.com/activities/9",
"actor": "https://example.com/users/alice",
"object": "https://other.example/users/spammer"
}

Note: Usually kept local, only federated if you want the blocked party to know.

Flag​

Report content/actors:

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Flag",
"id": "https://example.com/activities/10",
"actor": "https://example.com/users/alice",
"object": [
"https://other.example/users/abuser",
"https://other.example/notes/offensive"
],
"content": "This user is posting abusive content"
}

Processing: Create moderation report for admins.

Undo Activity​

Reverses a previous activity:

Undo Follow​

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Undo",
"id": "https://example.com/activities/11",
"actor": "https://example.com/users/alice",
"object": {
"type": "Follow",
"id": "https://example.com/activities/4",
"actor": "https://example.com/users/alice",
"object": "https://other.example/users/bob"
}
}

Undo Like​

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Undo",
"id": "https://example.com/activities/12",
"actor": "https://example.com/users/alice",
"object": {
"type": "Like",
"id": "https://example.com/activities/7"
}
}

Undo Announce​

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Undo",
"id": "https://example.com/activities/13",
"actor": "https://example.com/users/alice",
"object": {
"type": "Announce",
"id": "https://example.com/activities/8"
}
}

Collection Activities​

Add​

Add to a collection (e.g., pin a post):

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Add",
"id": "https://example.com/activities/14",
"actor": "https://example.com/users/alice",
"object": "https://example.com/notes/1",
"target": "https://example.com/users/alice/collections/featured"
}

Remove​

Remove from a collection:

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Remove",
"id": "https://example.com/activities/15",
"actor": "https://example.com/users/alice",
"object": "https://example.com/notes/1",
"target": "https://example.com/users/alice/collections/featured"
}

Migration Activity​

Move​

Account migration:

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Move",
"id": "https://old.example/activities/16",
"actor": "https://old.example/users/alice",
"object": "https://old.example/users/alice",
"target": "https://new.example/users/alice"
}

Activity Summary​

ActivityPurposeCommon Use
CreateNew contentPosts, notes
UpdateEdit contentEditing posts
DeleteRemove contentDeleting posts
FollowSubscribeFollowing users
AcceptApprove requestAccept follows
RejectDeny requestReject follows
LikeReact positivelyFavorites
AnnounceShare contentBoosts/reblogs
UndoReverse actionUnfollow, unlike
BlockBlock actorBlocking users
FlagReportReporting abuse
AddAdd to collectionPin posts
RemoveRemove from collectionUnpin posts
MoveMigrate accountAccount moves

See Also​