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://mbin.example/contexts"
]

The /contexts endpoint resolves to this:

[
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/security/v1",
{
"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://kbin.test/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://kbin.test/i/actor#main-key",
"owner": "https://kbin.test/i/actor",
"publicKeyPem": "-----BEGIN PUBLIC KEY-----\r\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxZSIuRaOdl7g/HFFeR9m\r\nnZULVzsreImfvlwgaQQQsvoLyu0vjF+bHpljmdhD0zei7AV06CKJ1CB6F2uYs3XE\r\nKYiOAdpeHh1L8OHJFsjCPkv4t2UwUBmtWvE7pFQlZ2N6+TRhOMSbbmVu6ZpvWaPV\r\ntDbP9Uoe+Y7kMIHA5bsPbfrZgFeklqLt9U4oN29sLR70yH46h+afK0tKXbGel83c\r\nXOLrsrkpH3hwRkjCldWXA4gNJUjarWQAFcQj8X+QirH4y9IcbKYOCMBBvbKB4GKE\r\n0iPaugTWoUBGSlT43pduilFA9x2B679uYbt2j9JTGtb56ySjUwNrRE/5aYCyhAdH\r\nVLhnhX+hAMq7ASWPZ3Tq4y0n8Z7PbA8bACCsu6+LOyCLDOxtHIqW9C5ovIdpu5FL\r\nvVgHmzwhrpTJF7XaQzyjriM7pk7CvbK7uwzPvS9pvBRDCRYuCs/tpKfg53veEebw\r\ni0na0PDS3IlCA3hhaNno6Sjcl+EDdu7+HZd06FsI1U/qXn88Ci2/84sw2cVL8iqU\r\njADeZfk457q4ekUHoHnMEH3oYUoMPgQC5gICgmbeo7MX8FCKXcmP7z/0OSYlMOyk\r\nt8yVkNEhkLjERAYKiH/f2y/sYdnKCXJ5T8VvQPUuiKJFqD6GkoHyEzR4C1nRboIy\r\nihbKzZBcqbOG/bw/T0yRll0CAwEAAQ==\r\n-----END PUBLIC KEY-----"
}
}

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,
"published": "2025-09-14T03:01:19+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\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAv1k9lZyk3NiFcE5hiKZ5\r\nlceDs6amoyoiq2AQ2P/4VeWB5T2Z8d1mNdzPwpjzdwNkwECG1ubvF20zQYw9IjP6\r\nXV6+IWK5R+26x1njL01XaMhIGLd/Ool1FflT37AiHak4n5tqztKh/QSXTFLX7n6F\r\nMT5nRl7nakG5+iVnJ55eC0Mi1WOyz8AChMdHQYzSMc1kJgCNj7DFlWcHkzUrgIXz\r\n0RQ+6zKwJlrgwCgTeIyBuQ4ujk617bfeciBcXC0TMkHePRbqt6cooZm0oHzk4AFn\r\nMbAjDkk+0cg1GX86beuBvQK3uTngOgOzFWzUHM6Gu7OelshrXIjsKkbHT/7Ay+dx\r\nfXYjYhUcPMirIUovhZEgcH5kE65DmiYERh0LFcGZWyEhYsXxzEcIRi8ncqQq7n+v\r\n7U/dlfqTEDfT57rm1t2KXPAqeKwkIoDqzbynk/MLci5qpVxGzt7Kr9V64oJ37xvv\r\nfisb+LOqsSOgm+ZaepMVI8ghXjCz6mYFkDoOc86g45HEpKqOvh7Sx3XpaJS/YPFy\r\noVXd3zMfeN0Wk1xQ2rl9mmNqou8whDdHzVJE1qVdRzyM78aWH+FhUkfjP9XmrmDS\r\nZSx+nOJpY1qVgkGY01HhGRjetPtklqLWbdSjnDWXBB+hvWyyAdCPIAVzuINXJXIU\r\nFJdRCtihpWA3KYJta187KksCAwEAAQ==\r\n-----END PUBLIC KEY-----"
},
"endpoints": {
"sharedInbox": "https://mbin.example/f/inbox"
},
"image": {
"type": "Image",
"url": "https://mbin.domain.tld/media/a441b15fe9a3cf56661190a0b93b9dec7d04127288cc87250967cf3b52894d11"
},
"icon": {
"type": "Image",
"url": "https://mbin.domain.tld/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\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArpjnUgl7pi2l0kOwm1PS\r\nk8Lc5q0IqZIN3e4YlYxe3y0OkjWTMKIC43AY4OzxH5fZYud8yrg/p2A+lrMOROJC\r\nLOLN8duWCMdR1xIbEMN6VDmB8E2vrdac8Zc+tsn1TtIatg3DiMwBapmRPRKesNwK\r\ntw75Xzk+yyoy8z3/ee7LCfDX81cFFJaGftJulYYDqRcFGPS3U3DJsw4BtfKm5Jbr\r\nqgXnPM4YkIXSUs/3WnhPin21Tt/ndFBC28HGiGVDnl2qhNAwncHrbgH6OZchK5qz\r\n/Fm2zXgIIjxOmhpxZMJ1xQvytN+hQzfYzREod8bAs8lV2wPcQFQtD/BLhfk8spDw\r\n4swXad6ubkr0682TEi+aiGb2536ej0koaUqljdPjdRAInEdMn6Wcprm7wO2OocnB\r\nZyEkB/KRaPiSmxl9gDmPbUQopjMFfFMTVVAhE26X2Idn0kG47kbtaFsNbln1KGJG\r\nt8i6xOkFnZoHtGbZxkF8wJtvpYX053k/HrW0qZsiWrM2wY2IlorEL3zKEdy2jA82\r\nGCuNUNQCk4ismk1ooiaW8vcukhJnA9qz8F6ykFJP19V1xVbl5rD+rIv+ttzI76x4\r\nqOj9Tnv5edhlQAjU2fAWFwJm9zpt/cKqS5t+5AiikubxD9g0T9QDiT0sC8vo5LzE\r\nmPOwWlEVL5viQEdiLn7aWRkCAwEAAQ==\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,
"endpoints": {
"sharedInbox": "https://mbin.example/f/inbox"
},
"published": "2025-09-14T03:01:22+00:00",
"updated": "2025-09-14T03:01:24+00:00",
"icon": {
"type": "Image",
"url": "https://mbin.domain.tld/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": "2025-09-14T03:01:24+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": "2025-09-14T03:01:24+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": "2025-09-14T03:01:24+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": "2025-09-14T03:01:24+00:00",
"contentMap": {
"en": "<p>Bentis post comment</p>\n"
}
}

Private message

{
"id": "https://mbin.example/message/86ca6670-7974-40d6-a256-74c56962e961",
"attributedTo": "https://mbin.example/u/BentiGorlich",
"to": [
"https://mbin.example/u/Melroy"
],
"cc": [],
"type": "ChatMessage",
"published": "2025-09-14T03:01:24+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/0199462b-928f-70a4-bd74-f7b526cecf32",
"type": "Create",
"actor": "https://mbin.example/u/BentiGorlich",
"published": "2025-09-14T03:01:24+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": "2025-09-14T03:01:24+00:00",
"contentMap": {
"en": "<p>Bentis post comment</p>\n"
}
},
"audience": "https://mbin.example/m/melroyMag"
},
{
"id": "https://mbin.example/f/object/0199462b-926e-7a75-85ff-cff41382e4ee",
"type": "Create",
"actor": "https://mbin.example/u/BentiGorlich",
"published": "2025-09-14T03:01:24+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": "2025-09-14T03:01:24+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/0199462b-920c-7616-9e2e-7c23c848c9b9",
"type": "Create",
"actor": "https://mbin.example/u/BentiGorlich",
"published": "2025-09-14T03:01:24+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": "2025-09-14T03:01:24+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": "2025-09-14T03:01:24+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://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/0199462b-9313-7aed-9b6d-0287376596f6",
"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/0199462b-9318-7ab8-b078-bd81d30ee6d1",
"type": "Undo",
"actor": "https://mbin.example/u/BentiGorlich",
"object": {
"id": "https://mbin.example/f/object/0199462b-9313-7aed-9b6d-0287376596f6",
"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/0199462b-931d-7e10-860d-c408beef766e",
"type": "Accept",
"actor": "https://mbin.example/u/Melroy",
"object": {
"id": "https://mbin.example/f/object/0199462b-9313-7aed-9b6d-0287376596f6",
"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/0199462b-920c-7616-9e2e-7c23c848c9b9",
"type": "Create",
"actor": "https://mbin.example/u/BentiGorlich",
"published": "2025-09-14T03:01:24+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": "2025-09-14T03:01:24+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/0199462b-9322-727d-96f9-9bc447bd05f9",
"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/0199462b-932e-783e-bcfa-772533342027",
"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/followers"
],
"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/0199462b-9332-7b8d-9118-41c739197eb3",
"type": "Undo",
"actor": "https://mbin.example/u/Melroy",
"object": {
"id": "https://mbin.example/f/object/0199462b-932e-783e-bcfa-772533342027",
"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/followers"
],
"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/followers"
],
"audience": "https://mbin.example/m/melroyMag"
}

Boost

If a user boosts content:

{
"id": "https://mbin.example/f/object/0199462b-933e-7ba8-90c7-725fb0078aff",
"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": [],
"published": "2025-09-14T03:01:25+00:00"
}

Edit account

{
"id": "https://mbin.example/f/object/0199462b-9343-7b0c-975e-5f4cd2640097",
"type": "Update",
"actor": "https://mbin.example/u/Melroy",
"published": "2025-09-14T03:01:21+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,
"published": "2025-09-14T03:01:21+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\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz0Vugy/OUKyRX8r4mR6J\r\nw0axmmbdkqsAHahQaNgAww3YgnmlTN5jtAC7k21jhYqbzB1qUENtCOr4o9jQV9+I\r\ntZmXZrRw6B612GPNvTtMH8tXZjI4UPPb+CN3AmtgqJXJW94yvSdNa2lpRhaQROZI\r\nHYm3YIIecNCYHDcRnkkSyvnE28bQ6NRKS14sD1g3EjyxyrKsrWz0zuRfwdlYCy6x\r\nqnRl+R25eGdLz2iia7Y7/1DWSWjtAXJcmeHBDnpOHVZM/Chn0bvcFoOU2Ps1R84/\r\nzYoD4ESN9eOez7NDUXX6oum1JT3gx02Y3fivQaV5wQIJyoksQBVW6SiYJgUKjxMZ\r\nY+eDWs35rvBuK/S+UzFWMBkOedJT8A7DCWFMp96z7OcI3bvIogZaMfHPcqOyes0J\r\nVVctcqE8hFueWGXkZ+Zjmfya7ZhKwVUP/6e98WFb9FMOhyn4bOZdwK3Da7NyFYgN\r\nCvF0n4VCkBRZO/INWA6Rc9q/fMxIJ0+2IcYNvArJ8ngq40ouiNH7YU2YYiju1b0Z\r\nba+gRsT9/C7ZpJ0ISygHdjpt6T/GgGA7TBeu2smSarKt1Do609pIz6krIAAESAwB\r\n0q7xDEtv8yRyGskmWKlNL4O1NOlB6aGCI/DBCiRM9N+gu8eCwjybfVwuDzPD7Nt7\r\n+ZnXj8yqMnmDjkpjM+U8898CAwEAAQ==\r\n-----END PUBLIC KEY-----"
},
"endpoints": {
"sharedInbox": "https://mbin.example/f/inbox"
},
"image": {
"type": "Image",
"url": "https://mbin.domain.tld/media/a441b15fe9a3cf56661190a0b93b9dec7d04127288cc87250967cf3b52894d11"
},
"icon": {
"type": "Image",
"url": "https://mbin.domain.tld/media/a441b15fe9a3cf56661190a0b93b9dec7d04127288cc87250967cf3b52894d11"
}
}
}

Edit content

{
"id": "https://mbin.example/f/object/0199462b-9348-7197-8b1c-aba23a718203",
"type": "Update",
"actor": "https://mbin.example/u/BentiGorlich",
"published": "2025-09-14T03:01:24+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": "2025-09-14T03:01:24+00:00",
"contentMap": {
"en": "<p>Bentis thread in melroys magazine</p>\n"
},
"object": {
"updated": "2025-09-14T03:01:25+00:00"
}
},
"audience": "https://mbin.example/m/melroyMag"
}

Delete content

{
"id": "https://mbin.example/f/object/0199462b-9355-70c0-9898-7f7bbfc8d4bd",
"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"
]
}

Moderator Activities

Add or Remove moderator

When a moderator is added:

{
"id": "https://mbin.example/f/object/0199462b-935f-7aa6-bd6e-e6cccbb2a420",
"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/0199462b-9364-7243-b5cb-54573698627f",
"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/0199462b-936a-7738-a677-d8ed3bda2f96",
"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/0199462b-936f-75b8-822e-3588e019ed5e",
"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/0199462b-937e-718f-b79e-3cdf1513d4af",
"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": " "
}

Admin Activities

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 and Flag. Announce(Flag) activities are only sent to instances with moderators of this magazine on them.

{
"id": "https://mbin.example/f/object/0199462b-938e-7c63-b99a-bca1fb1a7455",
"type": "Announce",
"actor": "https://mbin.example/m/melroyMag",
"object": {
"id": "https://mbin.example/f/object/0199462b-920c-7616-9e2e-7c23c848c9b9",
"type": "Create",
"actor": "https://mbin.example/u/BentiGorlich",
"published": "2025-09-14T03:01:24+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": "2025-09-14T03:01:24+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/u/BentiGorlich/followers"
],
"published": "2025-09-14T03:01:25+00:00",
"audience": "https://mbin.example/m/melroyMag"
}