Follow
https://fedidevs.org/projects/server-apps/mastodon/activities/follow/
Mastodon sends a Follow activity when an actor follows an external actor. It also accepts Follow activities send by external instances when one of their actors follows a Mastodon actor.
When the receiving actor accepts the follow, its instance is generally expected to send an Accept in response. Mastodon will not deliver an actor’s activities to a new follower until that follower has accepted the follow.
Mastodon’s Follow activity ids aren’t fetchable via HTTP with Accept: application/activity+json content negotiation; they return HTTP 404 {"error":"Not Found"}.
Request
| Reference | |
|---|---|
| Activity | Follow |
| Object | An ActivityPub Actor (IRI or inline) |
| ID | A unique Follow request IRI |
| Official documentation | docs.joinmastodon.org |
Example Follow request
{
"@context": "https://www.w3.org/ns/activitystreams",
"id": "https://example.com/fce205fc-fced-4d81-9a7d-5485eec038a3",
"type": "Follow",
"actor": "https://example.com/users/123",
"object": "https://other.example/users/456"
}
Accept
The Accept activity is used to accept another activity that was previously received, usually a Follow.
Mastodon’s Accept activity ids are based on their actor’s ids, distinguished with a # fragment, which makes them not fetchable via HTTP with Accept: application/activity+json content negotiation. Attempting to fetch them returns the actor’s AS2 object instead. Background in this GitHub issue.
| Reference | |
|---|---|
| Activity | Accept |
| Object | Follow |
| Official documentation | docs.joinmastodon.org |
Example Accept request
{
"@context": "https://www.w3.org/ns/activitystreams",
"id": "https://other.example/users/456#accepts/follows/283636",
"type": "Accept",
"actor": "https://other.example/users/456",
"object": {
"id": "https://example.com/fce205fc-fced-4d81-9a7d-5485eec038a3",
"type": "Follow",
"actor": "https://example.com/users/123",
"object": "https://other.example/users/456"
}
}