Skip to main content

Activity Types

ActivityStreams 2.0 defines a comprehensive set of activity types for describing actions. These are organized into categories based on their purpose.

Activity Categories​

ACTIVITY TYPE CATEGORIESContentCreate, Update, DeleteRelationshipFollow, Accept, Reject,Block, IgnoreReactionLike, Dislike, AnnounceCollectionAdd, Remove, MoveNotificationOffer, Invite, FlagNegationUndoMost common: Create, Follow, Like, Announce, UndoEach category serves a specific purpose in federated social networking

Content Activities​

Create​

Indicates a new object has been created.

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Create",
"id": "https://example.com/activities/create/1",
"actor": "https://example.com/users/alice",
"object": {
"type": "Note",
"id": "https://example.com/notes/1",
"content": "Hello, world!"
},
"published": "2024-01-15T10:00:00Z",
"to": ["https://www.w3.org/ns/activitystreams#Public"],
"cc": ["https://example.com/users/alice/followers"]
}

Usage: Creating posts, articles, images, or any new content.

Update​

Indicates an existing object has been modified.

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

Usage: Editing posts, updating profiles, modifying settings.

Delete​

Indicates an object has been deleted.

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Delete",
"id": "https://example.com/activities/delete/1",
"actor": "https://example.com/users/alice",
"object": "https://example.com/notes/1",
"published": "2024-01-15T14:00:00Z"
}

Result: The object should return a Tombstone or 410 Gone.

Relationship Activities​

Follow​

Indicates the actor wants to receive updates from the object.

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

Response: The target should respond with Accept or Reject.

Accept​

Indicates approval of another activity.

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

Usage: Accepting follows, event invitations, friend requests.

Reject​

Indicates disapproval of another activity.

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

Usage: Rejecting follow requests, declining invitations.

Block​

Indicates the actor is blocking the object.

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

Note: Block activities should generally not be delivered to the blocked actor.

Ignore​

Indicates the actor is ignoring the object (muting).

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

Usage: Muting users without blocking them.

Reaction Activities​

Like​

Indicates the actor likes or approves of the object.

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

Usage: Liking posts, favoriting content.

Dislike​

Indicates the actor dislikes or disapproves of the object.

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

Note: Not widely used in Mastodon, but supported by Lemmy and others.

Announce​

Indicates the actor is sharing/boosting the object.

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Announce",
"id": "https://example.com/activities/announce/1",
"actor": "https://example.com/users/alice",
"object": "https://example.com/notes/789",
"published": "2024-01-15T10:00:00Z",
"to": ["https://www.w3.org/ns/activitystreams#Public"],
"cc": [
"https://example.com/users/alice/followers",
"https://example.com/users/bob"
]
}

Usage: Retweets, boosts, shares.

Collection Activities​

Add​

Indicates the actor has added the object to the target collection.

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

Usage: Adding to collections, bookmarks, playlists.

Remove​

Indicates the actor has removed the object from the target collection.

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

Move​

Indicates the actor is moving the object to a new location.

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

Usage: Account migration between servers.

Notification Activities​

Flag​

Indicates the actor is reporting the object.

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

Usage: Reporting users or content to moderators.

Offer​

Indicates the actor is offering the object to the target.

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Offer",
"id": "https://example.com/activities/offer/1",
"actor": "https://example.com/users/alice",
"object": {
"type": "Event",
"name": "Birthday Party"
},
"target": "https://example.com/users/bob"
}

Invite​

Indicates the actor is inviting the target to the object.

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Invite",
"id": "https://example.com/activities/invite/1",
"actor": "https://example.com/users/alice",
"object": {
"type": "Event",
"name": "Birthday Party"
},
"target": "https://example.com/users/bob"
}

Negation Activity​

Undo​

Reverses a previous activity.

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

Usage: Unfollowing, unliking, unboosting.

Less Common Activities​

Arrive​

Indicates the actor has arrived at a location (IntransitiveActivity).

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Arrive",
"actor": "https://example.com/users/alice",
"location": {
"type": "Place",
"name": "San Francisco"
}
}

Leave​

Indicates the actor has left a location or group.

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Leave",
"actor": "https://example.com/users/alice",
"object": {
"type": "Group",
"name": "Photography Club"
}
}

Join​

Indicates the actor has joined a group.

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Join",
"actor": "https://example.com/users/alice",
"object": {
"type": "Group",
"id": "https://example.com/groups/photography"
}
}

Read​

Indicates the actor has read the object.

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Read",
"actor": "https://example.com/users/alice",
"object": "https://example.com/articles/1"
}

View​

Indicates the actor has viewed the object.

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "View",
"actor": "https://example.com/users/alice",
"object": "https://example.com/videos/1"
}

Listen​

Indicates the actor has listened to the object.

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Listen",
"actor": "https://example.com/users/alice",
"object": "https://example.com/audio/podcast-episode-1"
}

Question (IntransitiveActivity)​

Represents a poll or question. The object property contains the options.

{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Question",
"id": "https://example.com/polls/1",
"attributedTo": "https://example.com/users/alice",
"content": "What's your favorite color?",
"oneOf": [
{ "type": "Note", "name": "Red" },
{ "type": "Note", "name": "Blue" },
{ "type": "Note", "name": "Green" }
],
"endTime": "2024-01-16T10:00:00Z"
}

Options:

  • oneOf: Single-choice (radio buttons)
  • anyOf: Multiple-choice (checkboxes)

Activity Quick Reference​

ActivityActor does whatTo/with objectNotes
CreatecreatescontentNew content
UpdatemodifiescontentEdit existing
DeleteremovescontentPermanent removal
Followsubscribes toactorRequest updates
AcceptapprovesactivityConfirm action
RejectdeniesactivityDeny action
BlockblocksactorPrevent interaction
LikeapprovescontentPositive reaction
AnnouncesharescontentBoost/retweet
UndoreversesactivityCancel previous
Addadds object tocollectionBookmark, etc
Removeremoves object fromcollectionUnbookmark
Flagreportscontent/actorModeration
MoverelocatesactorMigration

Next Steps​