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