Skip to main content

Fediverse Developers

This page is mainly for outlining the activities and circumstances Mbin sends out activities and how activities, objects and actors are represented. To communicate between instances, Mbin utilizes the ActivityPub protocol (ActivityPub standard, ActivityPub vocabulary) and the FEP Group federation.

Context​

The @context property for all Mbin payloads should be this:

[
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/security/v1",
"https://mbin.example/contexts"
]

The /contexts endpoint resolves to this:

[
{
"ostatus": "http://ostatus.org#",
"schema": "http://schema.org#",
"toot": "http://joinmastodon.org/ns#",
"pt": "https://joinpeertube.org/ns#",
"lemmy": "https://join-lemmy.org/ns#",
"Hashtag": "as:Hashtag",
"PropertyValue": "schema:PropertyValue",
"manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
"sensitive": "as:sensitive",
"value": "schema:value",
"blurhash": "toot:blurhash",
"focalPoint": "toot:focalPoint",
"votersCount": "toot:votersCount",
"featured": "toot:featured",
"commentsEnabled": "pt:commentsEnabled",
"postingRestrictedToMods": "lemmy:postingRestrictedToMods",
"stickied": "lemmy:stickied"
}
]

Actors​

The actors Mbin uses are

  • the Instance actor (AP Application)
  • the User actor (AP Person)
  • the Magazine actor (AP Group)

Instance Actor​

Each instance has an instance actor at https://instance.tld/i/actor and https://instance.tld (they are the same):

{
"id": "https://mbin.example/i/actor",
"type": "Application",
"name": "Mbin",
"inbox": "https://mbin.example/i/inbox",
"outbox": "https://mbin.example/i/outbox",
"preferredUsername": "kbin.test",
"manuallyApprovesFollowers": true,
"publicKey": {
"id": "https://mbin.example/i/actor#main-key",
"owner": "https://mbin.example/i/actor",
"publicKeyPem": "-----BEGIN PUBLIC KEY-----\r\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzuaeeaa5c9DCPJGJdSjq\r\nFvGPB3pfwZ806UtwKbRpqvtehvy7+1WW2BHoz09iX8dspr/uitfftQ686mca9h/x\r\nGp5Uw2bd/UpBAevcNWLSBjhEqvHl60dT6r+KujRshWTrQrAmINpiHwGQavcoB80R\r\n9nKcgp8RgqZZBruOXrlYuWSKrYosBnUFRHrjW+gv+4leEcku/IVS4HCg4S9Y8kqU\r\nHU2RFVj9frEmcTjWS8UONLHqIG/MAT/4+yTEtXmWITfRcpvahOvQ95wvPVlOvIar\r\nBZTjZ4gZmyprOkOuQNy0K72iD7+qWYbzkmUWFNZQ2YDoYT9o6gf8cXuHIvDWTiZB\r\n67RXG/xE58NIE20xmbJSZcWAOi2zKuIsMzmMHvIyP2acjDo74v0yy9/2k2DubHEV\r\nEkn4kveDLkC6wMO1YC8tQHuyBQVEHJlpCCxAQd552DRoBzgXalyhFCUNyuPw3xkO\r\njFcT9Kt3hEwdHyjK2VId90CwG9TcW+l6Xmn9SmpqKanonEKwYfSZrvC85gLeSfK5\r\nKgA/3WTkOBvPx4wj4o2bl6dy6rgOFMJoRSnALJVm/hlH9swApqSyIQeIdsBbkPeh\r\nIWW3AGjc1FuGp4i3LlQmLTjaX/M6ZAdFw0pqO9G7w0zBgZSEn51+p3u+NVPihPrt\r\nABqZAbUNfW/I24Nj58h56qsCAwEAAQ==\r\n-----END PUBLIC KEY-----"
},
"published": "2026-10-06T21:46:54+00:00"
}

User actor​

Each registered user has an AP actor at https://instance.tld/u/username:

{
"id": "https://mbin.example/u/BentiGorlich",
"type": "Person",
"name": "BentiGorlich",
"preferredUsername": "BentiGorlich",
"inbox": "https://mbin.example/u/BentiGorlich/inbox",
"outbox": "https://mbin.example/u/BentiGorlich/outbox",
"url": "https://mbin.example/u/BentiGorlich",
"manuallyApprovesFollowers": false,
"discoverable": true,
"indexable": true,
"published": "2026-10-06T21:46:54+00:00",
"following": "https://mbin.example/u/BentiGorlich/following",
"followers": "https://mbin.example/u/BentiGorlich/followers",
"publicKey": {
"owner": "https://mbin.example/u/BentiGorlich",
"id": "https://mbin.example/u/BentiGorlich#main-key",
"publicKeyPem": "-----BEGIN PUBLIC KEY-----\r\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA3alrgKChMFhMrwq11Hij\r\nABpbOijdTwmE5yt7zuczmcYhYqnNWw0yxZ1W+kfqHrAdmX6rbo+pTwpOvUNtv2AV\r\nGu8Kr4uz4+zrpT5ZkhRfARz5c4NrYad3s/Mvy/58ud3K1M5H0ab8MHaow6JiO6WT\r\n2INBCHGoX7k2LRsuuFiDbh3hAUvdZ4jNHUMgEjznL/Bifp1LATpC2Qv7n+PdUJqz\r\n9rZy47Buw+FiydhE36guf/hpHdVpc2GPpvwOmpdmAbRf0GPFRlySriR2ks1J+tYu\r\nNzg72OuSxdZsmMkNNeLXxTfY6VIHAcVjmj6JUQd2uQvzTQrInkZBeRr1EODE6pdS\r\nPzPDuoHBs/6lqzQ+5TLj367nkgsoZjMqDh6m7tS+EJTa4v/87WCdt+3oRSNPI3Sv\r\n3L4YzA6IhP9Cfgnb6fhrtdGoM/q5vVbPCUqm+/1tX577DvlFVxahTwUhrqzYvKee\r\nRrvIYJXGjcjuj1cO7WsteBP8INVcq2PhbvxO9dWfnKCD9WnJ3eTdQmaUCrL82b9+\r\nueJUDbPM/3I8Eim/JBr0LJACh93SQ1JuMFMXmdLDW1otu6yeveZetD+eZ4FVZo8v\r\nno+tCQzCOF7SwQXM+Caa9XLvSyAPlDVS0jDdQeFn0HdsegU40rii6FlXMEFpNq6n\r\nmkmhxzo7D2PjA4/CPqjmPjECAwEAAQ==\r\n-----END PUBLIC KEY-----"
},
"endpoints": {
"sharedInbox": "https://mbin.example/f/inbox"
},
"image": {
"type": "Image",
"url": "https://kbin.test/media/a441b15fe9a3cf56661190a0b93b9dec7d04127288cc87250967cf3b52894d11"
},
"icon": {
"type": "Image",
"url": "https://kbin.test/media/a441b15fe9a3cf56661190a0b93b9dec7d04127288cc87250967cf3b52894d11"
}
}

Magazine actor​

Each magazine has an AP actor at https://instance.tld/m/name:

{
"type": "Group",
"id": "https://mbin.example/m/melroyMag",
"name": "Melroys Magazine",
"preferredUsername": "melroyMag",
"inbox": "https://mbin.example/m/melroyMag/inbox",
"outbox": "https://mbin.example/m/melroyMag/outbox",
"followers": "https://mbin.example/m/melroyMag/followers",
"featured": "https://mbin.example/m/melroyMag/pinned",
"url": "https://mbin.example/m/melroyMag",
"publicKey": {
"owner": "https://mbin.example/m/melroyMag",
"id": "https://mbin.example/m/melroyMag#main-key",
"publicKeyPem": "-----BEGIN PUBLIC KEY-----\r\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsfetba9WPA73VUBM4ydJ\r\njkSrd0Ymj6INxX8/dRRXdLG3RlUrYf6hJu9nLP0rvC8WfHbBrmXx73+G4owlvEbV\r\nniSp07+THeAWgRphDO2GU2RcUtysO3V6NtKf2//5Zdkdo+F5SH4B2s3OODkxSV8l\r\nFsW95Fh/WgZdOcs65km/72tnw4DvGVYASfBwa9nBNQ8JsDcDA2gtTuMmn/sfhLt3\r\nYsrmb56nPkeQJ7abpYDKu/zA9Z6NVP2izV3I2yaPzNmX5jk3STUYcbNU3BfhKJZG\r\n8pJaJMLtC0xWD27l23Y15j7Ios9fqOQgdjgaqdcP3adyxDA2hAFLSoEzgF//mIM0\r\nj1LcT5duT/udOSWb4qZGIjs5L9U2WLwjkVYAENROCOeou+bEj4gEwzSQJa9hB8OJ\r\nSz4OKIk0EnDj7LabNNBOAgugJYyGvYIeockhW7xPQzNgE1AQQU1WEPqyQsVkodCU\r\n2h+m+iD/Gl6Y9HLF7msyoHOfhOKXf7KB8DdSzBRuP/20g+P89S4DRWn2DvrouEDo\r\nVGPBnjn1ouBKVunWYQeX2Z/l9/sy4ahNk0Moou8tOv20CEJYpgmi21McJl3dmGx/\r\nXfiRoBgxUF3lPrcF14jH7tXAEjDyJGcaVCPkzbi1rwbTW5DFA3kgeEZV41Tzph64\r\nqHoOn5WGCJ2YGXu9xXb+jP0CAwEAAQ==\r\n-----END PUBLIC KEY-----"
},
"summary": "<p>Melroys wonderful magazine</p>\n",
"source": {
"content": "Melroys wonderful magazine",
"mediaType": "text/markdown"
},
"sensitive": false,
"attributedTo": "https://mbin.example/m/melroyMag/moderators",
"postingRestrictedToMods": false,
"discoverable": true,
"indexable": true,
"endpoints": {
"sharedInbox": "https://mbin.example/f/inbox"
},
"published": "2026-10-06T21:46:56+00:00",
"updated": "2026-10-06T21:46:58+00:00",
"icon": {
"type": "Image",
"url": "https://kbin.test/media/a441b15fe9a3cf56661190a0b93b9dec7d04127288cc87250967cf3b52894d11"
}
}

Objects​

Threads​

{
"id": "https://mbin.example/m/melroyMag/t/1",
"type": "Page",
"attributedTo": "https://mbin.example/u/BentiGorlich",
"inReplyTo": null,
"to": [
"https://mbin.example/m/melroyMag",
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/u/BentiGorlich/followers"
],
"name": "Bentis thread",
"audience": "https://mbin.example/m/melroyMag",
"content": "<p>Bentis thread in melroys magazine</p>\n",
"summary": "Bentis thread #melroyMag",
"mediaType": "text/html",
"source": {
"content": "Bentis thread in melroys magazine",
"mediaType": "text/markdown"
},
"tag": [
{
"type": "Hashtag",
"href": "https://mbin.example/tag/melroyMag",
"name": "#melroyMag"
}
],
"commentsEnabled": true,
"sensitive": false,
"stickied": true,
"published": "2026-10-06T21:46:58+00:00",
"contentMap": {
"en": "<p>Bentis thread in melroys magazine</p>\n"
}
}

Comments on threads​

{
"id": "https://mbin.example/m/melroyMag/t/1/-/comment/1",
"type": "Note",
"attributedTo": "https://mbin.example/u/Melroy",
"inReplyTo": "https://mbin.example/m/melroyMag/t/1",
"to": [
"https://www.w3.org/ns/activitystreams#Public",
"https://mbin.example/u/BentiGorlich"
],
"cc": [
"https://mbin.example/m/melroyMag",
"https://mbin.example/u/Melroy/followers"
],
"audience": "https://mbin.example/m/melroyMag",
"sensitive": false,
"content": "<p>melroys comment</p>\n",
"mediaType": "text/html",
"source": {
"content": "melroys comment",
"mediaType": "text/markdown"
},
"url": "https://mbin.example/m/melroyMag/t/1/-/comment/1",
"tag": [
{
"type": "Hashtag",
"href": "https://mbin.example/tag/melroyMag",
"name": "#melroyMag"
},
{
"type": "Mention",
"href": "https://mbin.example/u/BentiGorlich",
"name": "@BentiGorlich@mbin.example"
}
],
"published": "2026-10-06T21:46:58+00:00",
"contentMap": {
"en": "<p>melroys comment</p>\n"
}
}

Microblogs​

{
"id": "https://mbin.example/m/melroyMag/p/1",
"type": "Note",
"attributedTo": "https://mbin.example/u/BentiGorlich",
"inReplyTo": null,
"to": [
"https://mbin.example/m/melroyMag",
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/u/BentiGorlich/followers"
],
"audience": "https://mbin.example/m/melroyMag",
"sensitive": false,
"stickied": false,
"content": "<p>Melroys post</p>\n<p><a href=\"https://mbin.example/tag/melroyMag\">#melroyMag</a></p>\n",
"mediaType": "text/html",
"source": {
"content": "Melroys post\n\n #melroyMag",
"mediaType": "text/markdown"
},
"url": "https://mbin.example/m/melroyMag/p/1",
"tag": [
{
"type": "Hashtag",
"href": "https://mbin.example/tag/melroyMag",
"name": "#melroyMag"
}
],
"commentsEnabled": true,
"published": "2026-10-06T21:46:58+00:00",
"contentMap": {
"en": "<p>Melroys post</p>\n<p><a href=\"https://mbin.example/tag/melroyMag\">#melroyMag</a></p>\n"
}
}

Comments on microblogs​

{
"id": "https://mbin.example/m/melroyMag/p/1/-/reply/1",
"type": "Note",
"attributedTo": "https://mbin.example/u/BentiGorlich",
"inReplyTo": "https://mbin.example/m/melroyMag/p/1",
"to": [
"https://www.w3.org/ns/activitystreams#Public",
"https://mbin.example/u/BentiGorlich"
],
"cc": [
"https://mbin.example/m/melroyMag",
"https://mbin.example/u/BentiGorlich/followers"
],
"audience": "https://mbin.example/m/melroyMag",
"sensitive": false,
"content": "<p>Bentis post comment</p>\n",
"mediaType": "text/html",
"source": {
"content": "Bentis post comment",
"mediaType": "text/markdown"
},
"url": "https://mbin.example/m/melroyMag/p/1/-/reply/1",
"tag": [
{
"type": "Hashtag",
"href": "https://mbin.example/tag/melroyMag",
"name": "#melroyMag"
}
],
"published": "2026-10-06T21:46:58+00:00",
"contentMap": {
"en": "<p>Bentis post comment</p>\n"
}
}

Private message​

{
"id": "https://mbin.example/message/9330395b-e1b3-4990-b97a-2f32e0cbce34",
"attributedTo": "https://mbin.example/u/BentiGorlich",
"to": [
"https://mbin.example/u/Melroy"
],
"cc": [],
"type": "ChatMessage",
"published": "2026-10-06T21:46:58+00:00",
"content": "<p>Bentis message</p>\n",
"mediaType": "text/html",
"source": {
"mediaType": "text/markdown",
"content": "Bentis message"
}
}

Collections​

User Outbox​

{
"type": "OrderedCollection",
"id": "https://mbin.example/u/BentiGorlich/outbox",
"first": "https://mbin.example/u/BentiGorlich/outbox?page=1",
"totalItems": 3
}

First Page:

{
"type": "OrderedCollectionPage",
"partOf": "https://mbin.example/u/BentiGorlich/outbox",
"id": "https://mbin.example/u/BentiGorlich/outbox?page=1",
"totalItems": 3,
"orderedItems": [
{
"id": "https://mbin.example/f/object/01a1132f-224b-7aec-a84b-176102b2cb9f",
"type": "Create",
"actor": "https://mbin.example/u/BentiGorlich",
"published": "2026-10-06T21:46:58+00:00",
"to": [
"https://www.w3.org/ns/activitystreams#Public",
"https://mbin.example/u/BentiGorlich"
],
"cc": [
"https://mbin.example/m/melroyMag",
"https://mbin.example/u/BentiGorlich/followers"
],
"object": {
"id": "https://mbin.example/m/melroyMag/p/1/-/reply/1",
"type": "Note",
"attributedTo": "https://mbin.example/u/BentiGorlich",
"inReplyTo": "https://mbin.example/m/melroyMag/p/1",
"to": [
"https://www.w3.org/ns/activitystreams#Public",
"https://mbin.example/u/BentiGorlich"
],
"cc": [
"https://mbin.example/m/melroyMag",
"https://mbin.example/u/BentiGorlich/followers"
],
"audience": "https://mbin.example/m/melroyMag",
"sensitive": false,
"content": "<p>Bentis post comment</p>\n",
"mediaType": "text/html",
"source": {
"content": "Bentis post comment",
"mediaType": "text/markdown"
},
"url": "https://mbin.example/m/melroyMag/p/1/-/reply/1",
"tag": [
{
"type": "Hashtag",
"href": "https://mbin.example/tag/melroyMag",
"name": "#melroyMag"
}
],
"published": "2026-10-06T21:46:58+00:00",
"contentMap": {
"en": "<p>Bentis post comment</p>\n"
}
},
"audience": "https://mbin.example/m/melroyMag"
},
{
"id": "https://mbin.example/f/object/01a1132f-2224-79aa-af08-5065aa533654",
"type": "Create",
"actor": "https://mbin.example/u/BentiGorlich",
"published": "2026-10-06T21:46:58+00:00",
"to": [
"https://mbin.example/m/melroyMag",
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/u/BentiGorlich/followers"
],
"object": {
"id": "https://mbin.example/m/melroyMag/p/1",
"type": "Note",
"attributedTo": "https://mbin.example/u/BentiGorlich",
"inReplyTo": null,
"to": [
"https://mbin.example/m/melroyMag",
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/u/BentiGorlich/followers"
],
"audience": "https://mbin.example/m/melroyMag",
"sensitive": false,
"stickied": false,
"content": "<p>Melroys post</p>\n<p><a href=\"https://mbin.example/tag/melroyMag\">#melroyMag</a></p>\n",
"mediaType": "text/html",
"source": {
"content": "Melroys post\n\n #melroyMag",
"mediaType": "text/markdown"
},
"url": "https://mbin.example/m/melroyMag/p/1",
"tag": [
{
"type": "Hashtag",
"href": "https://mbin.example/tag/melroyMag",
"name": "#melroyMag"
}
],
"commentsEnabled": true,
"published": "2026-10-06T21:46:58+00:00",
"contentMap": {
"en": "<p>Melroys post</p>\n<p><a href=\"https://mbin.example/tag/melroyMag\">#melroyMag</a></p>\n"
}
},
"audience": "https://mbin.example/m/melroyMag"
},
{
"id": "https://mbin.example/f/object/01a1132f-21cd-7cd8-a5c6-0c5d46f635af",
"type": "Create",
"actor": "https://mbin.example/u/BentiGorlich",
"published": "2026-10-06T21:46:58+00:00",
"to": [
"https://mbin.example/m/melroyMag",
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/u/BentiGorlich/followers"
],
"object": {
"id": "https://mbin.example/m/melroyMag/t/1",
"type": "Page",
"attributedTo": "https://mbin.example/u/BentiGorlich",
"inReplyTo": null,
"to": [
"https://mbin.example/m/melroyMag",
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/u/BentiGorlich/followers"
],
"name": "Bentis thread",
"audience": "https://mbin.example/m/melroyMag",
"content": "<p>Bentis thread in melroys magazine</p>\n",
"summary": "Bentis thread #melroyMag",
"mediaType": "text/html",
"source": {
"content": "Bentis thread in melroys magazine",
"mediaType": "text/markdown"
},
"tag": [
{
"type": "Hashtag",
"href": "https://mbin.example/tag/melroyMag",
"name": "#melroyMag"
}
],
"commentsEnabled": true,
"sensitive": false,
"stickied": true,
"published": "2026-10-06T21:46:58+00:00",
"contentMap": {
"en": "<p>Bentis thread in melroys magazine</p>\n"
}
},
"audience": "https://mbin.example/m/melroyMag"
}
]
}

User Followers​

{
"type": "OrderedCollection",
"id": "https://mbin.example/u/BentiGorlich/followers",
"first": "https://mbin.example/u/BentiGorlich/followers?page=1",
"totalItems": 2
}

User Followings​

{
"type": "OrderedCollection",
"id": "https://mbin.example/u/BentiGorlich/following",
"first": "https://mbin.example/u/BentiGorlich/following?page=1",
"totalItems": 0
}

Magazine Outbox​

The magazine outbox endpoint does technically exist, but it just returns an empty JSON object at the moment.

{}

Magazine Moderators​

The moderators collection contains all moderators and is not paginated:

{
"type": "OrderedCollection",
"id": "https://mbin.example/m/melroyMag/moderators",
"totalItems": 1,
"orderedItems": [
"https://mbin.example/u/BentiGorlich"
]
}

The featured collection contains all threads and is not paginated:

{
"type": "OrderedCollection",
"id": "https://mbin.example/m/melroyMag/pinned",
"totalItems": 1,
"orderedItems": [
{
"id": "https://mbin.example/m/melroyMag/t/1",
"type": "Page",
"attributedTo": "https://mbin.example/u/BentiGorlich",
"inReplyTo": null,
"to": [
"https://mbin.example/m/melroyMag",
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/u/BentiGorlich/followers"
],
"name": "Bentis thread",
"audience": "https://mbin.example/m/melroyMag",
"content": "<p>Bentis thread in melroys magazine</p>\n",
"summary": "Bentis thread #melroyMag",
"mediaType": "text/html",
"source": {
"content": "Bentis thread in melroys magazine",
"mediaType": "text/markdown"
},
"tag": [
{
"type": "Hashtag",
"href": "https://mbin.example/tag/melroyMag",
"name": "#melroyMag"
}
],
"commentsEnabled": true,
"sensitive": false,
"stickied": true,
"published": "2026-10-06T21:46:58+00:00",
"contentMap": {
"en": "<p>Bentis thread in melroys magazine</p>\n"
}
}
]
}

Magazine Followers​

The followers collection does not contain items, it only shows the number of subscribed users:

{
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/security/v1",
"https://mbin.example/contexts"
],
"type": "OrderedCollection",
"id": "https://mbin.example/m/melroyMag/followers",
"first": "https://mbin.example/m/melroyMag/followers?page=1",
"totalItems": 1
}

User Activities​

Follow and unfollow​

If the user wants to follow another user or magazine:

{
"id": "https://mbin.example/f/object/01a1132f-22e4-7be2-8d30-8342ff4b5557",
"type": "Follow",
"actor": "https://mbin.example/u/BentiGorlich",
"object": "https://mbin.example/u/Melroy",
"to": [
"https://mbin.example/u/Melroy"
]
}

If the user stops following another user or magazine:

{
"id": "https://mbin.example/f/object/01a1132f-22ea-755e-ac81-e8cf2f540382",
"type": "Undo",
"actor": "https://mbin.example/u/BentiGorlich",
"object": {
"id": "https://mbin.example/f/object/01a1132f-22e4-7be2-8d30-8342ff4b5557",
"type": "Follow",
"actor": "https://mbin.example/u/BentiGorlich",
"object": "https://mbin.example/u/Melroy",
"to": [
"https://mbin.example/u/Melroy"
]
},
"to": [
"https://mbin.example/u/Melroy"
],
"cc": []
}

Accept and Reject​

Mbin automatically sends an Accept activity when a user receives a Follow activity.

{
"id": "https://mbin.example/f/object/01a1132f-22ef-7ce9-9ec2-b98937e029ec",
"type": "Accept",
"actor": "https://mbin.example/u/Melroy",
"object": {
"id": "https://mbin.example/f/object/01a1132f-22e4-7be2-8d30-8342ff4b5557",
"type": "Follow",
"actor": "https://mbin.example/u/BentiGorlich",
"object": "https://mbin.example/u/Melroy",
"to": [
"https://mbin.example/u/Melroy"
]
},
"to": [
"https://mbin.example/u/BentiGorlich"
]
}

Create​

{
"id": "https://mbin.example/f/object/01a1132f-21cd-7cd8-a5c6-0c5d46f635af",
"type": "Create",
"actor": "https://mbin.example/u/BentiGorlich",
"published": "2026-10-06T21:46:58+00:00",
"to": [
"https://mbin.example/m/melroyMag",
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/u/BentiGorlich/followers"
],
"object": {
"id": "https://mbin.example/m/melroyMag/t/1",
"type": "Page",
"attributedTo": "https://mbin.example/u/BentiGorlich",
"inReplyTo": null,
"to": [
"https://mbin.example/m/melroyMag",
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/u/BentiGorlich/followers"
],
"name": "Bentis thread",
"audience": "https://mbin.example/m/melroyMag",
"content": "<p>Bentis thread in melroys magazine</p>\n",
"summary": "Bentis thread #melroyMag",
"mediaType": "text/html",
"source": {
"content": "Bentis thread in melroys magazine",
"mediaType": "text/markdown"
},
"tag": [
{
"type": "Hashtag",
"href": "https://mbin.example/tag/melroyMag",
"name": "#melroyMag"
}
],
"commentsEnabled": true,
"sensitive": false,
"stickied": true,
"published": "2026-10-06T21:46:58+00:00",
"contentMap": {
"en": "<p>Bentis thread in melroys magazine</p>\n"
}
},
"audience": "https://mbin.example/m/melroyMag"
}

Report​

{
"id": "https://mbin.example/f/object/01a1132f-22f5-73d5-b60f-35246ba01b22",
"type": "Flag",
"actor": "https://mbin.example/u/Melroy",
"object": "https://mbin.example/m/melroyMag/t/1",
"audience": "https://mbin.example/m/melroyMag",
"summary": "Spam",
"content": "Spam",
"to": [
"https://mbin.example/m/melroyMag"
]
}

Vote​

When a user votes it is translated to a Like activity for an up-vote and a Dislike activity for a down-vote. Down-votes are not federated, yet.

{
"id": "https://mbin.example/f/object/01a1132f-2303-7a11-bfc8-d13f2518e078",
"type": "Like",
"actor": "https://mbin.example/u/Melroy",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/u/Melroy/followers",
"https://mbin.example/m/melroyMag"
],
"object": "https://mbin.example/m/melroyMag/t/1",
"audience": "https://mbin.example/m/melroyMag"
}

If the vote is removed:

{
"id": "https://mbin.example/f/object/01a1132f-2309-71d3-ab99-00788a75d730",
"type": "Undo",
"actor": "https://mbin.example/u/Melroy",
"object": {
"id": "https://mbin.example/f/object/01a1132f-2303-7a11-bfc8-d13f2518e078",
"type": "Like",
"actor": "https://mbin.example/u/Melroy",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/u/Melroy/followers",
"https://mbin.example/m/melroyMag"
],
"object": "https://mbin.example/m/melroyMag/t/1",
"audience": "https://mbin.example/m/melroyMag"
},
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/u/Melroy/followers",
"https://mbin.example/m/melroyMag"
],
"audience": "https://mbin.example/m/melroyMag"
}

Boost​

If a user boosts content:

{
"id": "https://mbin.example/f/object/01a1132f-2315-7653-ad0b-fed6c5d90259",
"type": "Announce",
"actor": "https://mbin.example/u/Melroy",
"object": "https://mbin.example/m/melroyMag/t/1",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/u/Melroy/followers"
],
"published": "2026-10-06T21:46:58+00:00"
}

Edit account​

{
"id": "https://mbin.example/f/object/01a1132f-231b-721e-a20b-3ad0ead4550c",
"type": "Update",
"actor": "https://mbin.example/u/Melroy",
"published": "2026-10-06T21:46:55+00:00",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/u/Melroy/followers"
],
"object": {
"id": "https://mbin.example/u/Melroy",
"type": "Person",
"name": "Melroy",
"preferredUsername": "Melroy",
"inbox": "https://mbin.example/u/Melroy/inbox",
"outbox": "https://mbin.example/u/Melroy/outbox",
"url": "https://mbin.example/u/Melroy",
"manuallyApprovesFollowers": false,
"discoverable": true,
"indexable": true,
"published": "2026-10-06T21:46:55+00:00",
"following": "https://mbin.example/u/Melroy/following",
"followers": "https://mbin.example/u/Melroy/followers",
"publicKey": {
"owner": "https://mbin.example/u/Melroy",
"id": "https://mbin.example/u/Melroy#main-key",
"publicKeyPem": "-----BEGIN PUBLIC KEY-----\r\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtg8yYcOQNp3JEV+jhL9T\r\nUenNkGnSdaGK5dbYg7FQBdmRoEEYlPkdclrNm+CBMYLlElDyYzKuNYLREk3tNLPg\r\n2Rul9nlPkudu22m6asRusZ+/3fkZGNvmPr83WSL/t9zKA7fPJErTp9L9yzA4YgFZ\r\nT77kGoKjaMwRtvCHbzIm7KjInqdDd5YViQq88/4H2gHbDjv3J24+mANL1CGIrjzD\r\n2iTaO5qhaKoo4n6DHd4snYBCpKbeh1veOQ5dFpEuUZD1TVMyzRr4cydI3K3VEHCy\r\nR8ulv6bXm86jOyiSvRjXC+5tpD1obFIx7SCsd3i0izMfJkBUt3Ldu6JWmvWZbLlW\r\nNsp0kd3W5eyX7bxDJ/EdK0hGpFiDVLL5DQRU27g68QsnqN8b4d5keIdtYBfXPqXi\r\n1i2Y5Ts+9uG/2djGxx4zOiHe77uLKau+4/xjfT/oD6uMInVJgU2TPxazEijOYZrF\r\nYBfU+sqNOIOHsN+3Oa3CY2hiteH209Da1FajNAcKi/X9mpsf/UrE5r7ZHVjDj4iZ\r\n244LK6lv9cMFJGFFSueRH3MtWTXFbygJh4hk0L8m8/JVOJwz6HKYigJWEj7V3sC+\r\n2DiIlaqUl596BA1cXcRj4uQUILNGPvHV6xuAQbm3v9i3ggRJHBS/8RMoqgFrPKVc\r\nczHibJs2qfPlpS5F7itUQ1ECAwEAAQ==\r\n-----END PUBLIC KEY-----"
},
"endpoints": {
"sharedInbox": "https://mbin.example/f/inbox"
},
"image": {
"type": "Image",
"url": "https://kbin.test/media/a441b15fe9a3cf56661190a0b93b9dec7d04127288cc87250967cf3b52894d11"
},
"icon": {
"type": "Image",
"url": "https://kbin.test/media/a441b15fe9a3cf56661190a0b93b9dec7d04127288cc87250967cf3b52894d11"
}
}
}

Edit content​

{
"id": "https://mbin.example/f/object/01a1132f-2320-7c92-9595-08bbd00e8a24",
"type": "Update",
"actor": "https://mbin.example/u/BentiGorlich",
"published": "2026-10-06T21:46:58+00:00",
"to": [
"https://mbin.example/m/melroyMag",
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/u/BentiGorlich/followers"
],
"object": {
"id": "https://mbin.example/m/melroyMag/t/1",
"type": "Page",
"attributedTo": "https://mbin.example/u/BentiGorlich",
"inReplyTo": null,
"to": [
"https://mbin.example/m/melroyMag",
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/u/BentiGorlich/followers"
],
"name": "Bentis thread",
"audience": "https://mbin.example/m/melroyMag",
"content": "<p>Bentis thread in melroys magazine</p>\n",
"summary": "Bentis thread #melroyMag",
"mediaType": "text/html",
"source": {
"content": "Bentis thread in melroys magazine",
"mediaType": "text/markdown"
},
"tag": [
{
"type": "Hashtag",
"href": "https://mbin.example/tag/melroyMag",
"name": "#melroyMag"
}
],
"commentsEnabled": true,
"sensitive": false,
"stickied": true,
"published": "2026-10-06T21:46:58+00:00",
"contentMap": {
"en": "<p>Bentis thread in melroys magazine</p>\n"
},
"object": {
"updated": "2026-10-06T21:46:58+00:00"
}
},
"audience": "https://mbin.example/m/melroyMag"
}

Delete content​

{
"id": "https://mbin.example/f/object/01a1132f-232d-7d57-b515-01a6deb38032",
"type": "Delete",
"actor": "https://mbin.example/u/BentiGorlich",
"object": {
"id": "https://mbin.example/m/melroyMag/t/1",
"type": "Tombstone"
},
"to": [
"https://mbin.example/m/melroyMag",
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/u/BentiGorlich/followers"
]
}

Delete own account​

{
"id": "https://mbin.example/f/object/01a1132f-2338-78ab-af35-8c446c091f38",
"type": "Delete",
"actor": "https://mbin.example/u/BentiGorlich",
"object": "https://mbin.example/u/BentiGorlich",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/u/BentiGorlich/followers"
],
"removeData": true
}

Lock own content​

Only top level content (meaning no comments) can be locked. When content is locked, comments can no longer be created for it.

{
"id": "https://mbin.example/f/object/01a1132f-2343-78a0-ac40-9276f2a8ee69",
"type": "Lock",
"actor": "https://mbin.example/u/Melroy",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/m/melroyMag",
"https://mbin.example/u/Melroy/followers"
],
"object": "https://mbin.example/m/melroyMag/t/1"
}

Moderator Activities​

Add or Remove moderator​

When a moderator is added:

{
"id": "https://mbin.example/f/object/01a1132f-234a-71d2-8fc9-b0f5b0817a3c",
"actor": "https://mbin.example/u/BentiGorlich",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": "https://mbin.example/u/Melroy",
"cc": [
"https://mbin.example/m/melroyMag"
],
"type": "Add",
"target": "https://mbin.example/m/melroyMag/moderators",
"audience": "https://mbin.example/m/melroyMag"
}

When a moderator is removed:

{
"id": "https://mbin.example/f/object/01a1132f-2351-7865-969e-5b81e5924462",
"actor": "https://mbin.example/u/BentiGorlich",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": "https://mbin.example/u/Melroy",
"cc": [
"https://mbin.example/m/melroyMag"
],
"type": "Remove",
"target": "https://mbin.example/m/melroyMag/moderators",
"audience": "https://mbin.example/m/melroyMag"
}

Pin or Unpin a thread​

When a thread is pinned:

{
"id": "https://mbin.example/f/object/01a1132f-2357-7f28-852a-cca050283b07",
"actor": "https://mbin.example/u/BentiGorlich",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": "https://mbin.example/m/melroyMag/t/1",
"cc": [
"https://mbin.example/m/melroyMag"
],
"type": "Add",
"target": "https://mbin.example/m/melroyMag/pinned",
"audience": "https://mbin.example/m/melroyMag"
}

When a thread is unpinned:

{
"id": "https://mbin.example/f/object/01a1132f-235e-724f-b8b8-f8bbb8309865",
"actor": "https://mbin.example/u/BentiGorlich",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": "https://mbin.example/m/melroyMag/t/1",
"cc": [
"https://mbin.example/m/melroyMag"
],
"type": "Remove",
"target": "https://mbin.example/m/melroyMag/pinned",
"audience": "https://mbin.example/m/melroyMag"
}

Delete content​

{
"id": "https://mbin.example/f/object/01a1132f-2371-7971-84f8-b8097073cbb9",
"type": "Delete",
"actor": "https://mbin.example/u/BentiGorlich",
"object": {
"id": "https://mbin.example/m/melroyMag/t/1/-/comment/1",
"type": "Tombstone"
},
"to": [
"https://www.w3.org/ns/activitystreams#Public",
"https://mbin.example/u/BentiGorlich"
],
"cc": [
"https://mbin.example/m/melroyMag",
"https://mbin.example/u/Melroy/followers"
],
"summary": " "
}

Ban user from magazine​

{
"id": "https://mbin.example/f/object/01a1132f-2383-7e04-8eaf-eb3c667c40ba",
"type": "Block",
"actor": "https://mbin.example/u/Melroy",
"object": "https://mbin.example/u/BentiGorlich",
"target": "https://mbin.example/m/melroyMag",
"summary": "A very specific reason",
"audience": "https://mbin.example/m/melroyMag",
"expires": "2025-01-01T21:46:58+00:00",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/m/melroyMag"
]
}

Lock content​

When content is locked, comments can no longer be created for it.

{
"id": "https://mbin.example/f/object/01a1132f-2384-700b-bdd5-70cd60bc96c3",
"type": "Lock",
"actor": "https://mbin.example/u/BentiGorlich",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/m/melroyMag",
"https://mbin.example/u/BentiGorlich/followers"
],
"object": "https://mbin.example/m/melroyMag/t/1"
}

Admin Activities​

Ban user from instance​

{
"id": "https://mbin.example/f/object/01a1132f-2392-7405-9bf9-c3c7bb0c61f9",
"type": "Block",
"actor": "https://mbin.example/u/BentiGorlich",
"object": "https://mbin.example/u/Melroy",
"target": "https://kbin.test",
"summary": null,
"audience": null,
"expires": null,
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": []
}

Delete account​

If an admin deletes another user's account the activity actually does not reflect that, it looks exactly as if the user deleted their own account.

{
"id": "https://mbin.example/f/object/01a1132f-2392-7509-9bf9-c3c7bb40d379",
"type": "Delete",
"actor": "https://mbin.example/u/BentiGorlich",
"object": "https://mbin.example/u/BentiGorlich",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/u/BentiGorlich/followers"
],
"removeData": true
}

Magazine Activities​

Announce activities​

The magazine is mainly there to announce the activities users do with it as the audience. The announced type can be Create, Update, Add, Remove, Announce, Delete, Like, Dislike, Flag and Lock. Announce(Flag) activities are only sent to instances with moderators of this magazine on them.

{
"id": "https://mbin.example/f/object/01a1132f-238b-782b-96a8-b5adc419b40a",
"type": "Announce",
"actor": "https://mbin.example/m/melroyMag",
"object": {
"id": "https://mbin.example/f/object/01a1132f-21cd-7cd8-a5c6-0c5d46f635af",
"type": "Create",
"actor": "https://mbin.example/u/BentiGorlich",
"published": "2026-10-06T21:46:58+00:00",
"to": [
"https://mbin.example/m/melroyMag",
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/u/BentiGorlich/followers"
],
"object": {
"id": "https://mbin.example/m/melroyMag/t/1",
"type": "Page",
"attributedTo": "https://mbin.example/u/BentiGorlich",
"inReplyTo": null,
"to": [
"https://mbin.example/m/melroyMag",
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/u/BentiGorlich/followers"
],
"name": "Bentis thread",
"audience": "https://mbin.example/m/melroyMag",
"content": "<p>Bentis thread in melroys magazine</p>\n",
"summary": "Bentis thread #melroyMag",
"mediaType": "text/html",
"source": {
"content": "Bentis thread in melroys magazine",
"mediaType": "text/markdown"
},
"tag": [
{
"type": "Hashtag",
"href": "https://mbin.example/tag/melroyMag",
"name": "#melroyMag"
}
],
"commentsEnabled": true,
"sensitive": false,
"stickied": true,
"published": "2026-10-06T21:46:58+00:00",
"contentMap": {
"en": "<p>Bentis thread in melroys magazine</p>\n"
}
},
"audience": "https://mbin.example/m/melroyMag"
},
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mbin.example/m/melroyMag/followers",
"https://mbin.example/u/BentiGorlich/followers"
],
"published": "2026-10-06T21:46:58+00:00",
"audience": "https://mbin.example/m/melroyMag"
}