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"
]
}
Magazine Featured
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"
}