A small tool to view real-world ActivityPub objects as JSON! Enter a URL
or username from Mastodon or a similar service below, and we'll send a
request with
the right
Accept
header
to the server to view the underlying object.
{
"@context": [
"https://www.w3.org/ns/activitystreams",
{
"ostatus": "http://ostatus.org#",
"atomUri": "ostatus:atomUri",
"inReplyToAtomUri": "ostatus:inReplyToAtomUri",
"conversation": "ostatus:conversation",
"sensitive": "as:sensitive",
"toot": "http://joinmastodon.org/ns#",
"votersCount": "toot:votersCount",
"blurhash": "toot:blurhash",
"focalPoint": {
"@container": "@list",
"@id": "toot:focalPoint"
},
"Hashtag": "as:Hashtag"
}
],
"id": "https://mstdn.social/users/bread80/statuses/114364324657133247",
"type": "Note",
"summary": null,
"inReplyTo": null,
"published": "2025-04-19T11:11:46Z",
"url": "https://mstdn.social/@bread80/114364324657133247",
"attributedTo": "https://mstdn.social/users/bread80",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mstdn.social/users/bread80/followers"
],
"sensitive": false,
"atomUri": "https://mstdn.social/users/bread80/statuses/114364324657133247",
"inReplyToAtomUri": null,
"conversation": "tag:mstdn.social,2025-04-19:objectId=541816317:objectType=Conversation",
"content": "<p>I moving on to start implementing user types in the <a href=\"https://mstdn.social/tags/Quiche\" class=\"mention hashtag\" rel=\"tag\">#<span>Quiche</span></a> <a href=\"https://mstdn.social/tags/compiler\" class=\"mention hashtag\" rel=\"tag\">#<span>compiler</span></a>. I figure the most useful type to have is arrays and, by implication, strings. Arrays boil down to typed pointers internally so I'm starting with the pointer stuff.</p><p>This now works to assign the address of a variable to a typed pointer, and to instantiate a variable to assign that pointers value to. The PI variable is to test that assigning a ^Byte to it fails (which it does).</p><p><a href=\"https://mstdn.social/tags/Z80\" class=\"mention hashtag\" rel=\"tag\">#<span>Z80</span></a></p>",
"contentMap": {
"en": "<p>I moving on to start implementing user types in the <a href=\"https://mstdn.social/tags/Quiche\" class=\"mention hashtag\" rel=\"tag\">#<span>Quiche</span></a> <a href=\"https://mstdn.social/tags/compiler\" class=\"mention hashtag\" rel=\"tag\">#<span>compiler</span></a>. I figure the most useful type to have is arrays and, by implication, strings. Arrays boil down to typed pointers internally so I'm starting with the pointer stuff.</p><p>This now works to assign the address of a variable to a typed pointer, and to instantiate a variable to assign that pointers value to. The PI variable is to test that assigning a ^Byte to it fails (which it does).</p><p><a href=\"https://mstdn.social/tags/Z80\" class=\"mention hashtag\" rel=\"tag\">#<span>Z80</span></a></p>"
},
"attachment": [
{
"type": "Document",
"mediaType": "image/png",
"url": "https://media.mstdn.social/media_attachments/files/114/364/302/317/783/195/original/3c1432183d0e8fa8.png",
"name": "Source code:\nvar P: ^Byte\nvar PI: ^Integer\nvar B: Byte = 10\nP := @B\nvar X := P",
"blurhash": "U69jls^+M|%2%2RjRjxu0KWBayj[D*%LWCIo",
"focalPoint": [
0,
0
],
"width": 126,
"height": 82
},
{
"type": "Document",
"mediaType": "image/png",
"url": "https://media.mstdn.social/media_attachments/files/114/364/320/365/683/285/original/2820487b167eddb2.png",
"name": "The generated assembly:\n;==========_Global\n\n__global:\n;3: var B: Byte = 10\n__global1:\n ld a,$0a\n ld (_v__Global_B),a\n;4: P := @B\n ld hl,_v__Global_B\n ld (_v__Global_P),hl\n;5: var X := P\n ld (_v__Global_X),hl\n__global2:\n;Postamble\n ret\n;----------_Global\n\n_v__Global_P: dw 0\n_v__Global_PI: dw 0\n_v__Global_B: db 0\n_v__Global_X: dw 0",
"blurhash": "U16[2H_3D%RjWBj[j[j[M{ayj[ayIUj[t7of",
"focalPoint": [
0,
0
],
"width": 179,
"height": 308
}
],
"tag": [
{
"type": "Hashtag",
"href": "https://mstdn.social/tags/quiche",
"name": "#quiche"
},
{
"type": "Hashtag",
"href": "https://mstdn.social/tags/compiler",
"name": "#compiler"
},
{
"type": "Hashtag",
"href": "https://mstdn.social/tags/z80",
"name": "#z80"
}
],
"replies": {
"id": "https://mstdn.social/users/bread80/statuses/114364324657133247/replies",
"type": "Collection",
"first": {
"type": "CollectionPage",
"next": "https://mstdn.social/users/bread80/statuses/114364324657133247/replies?only_other_accounts=true&page=true",
"partOf": "https://mstdn.social/users/bread80/statuses/114364324657133247/replies",
"items": []
}
},
"likes": {
"id": "https://mstdn.social/users/bread80/statuses/114364324657133247/likes",
"type": "Collection",
"totalItems": 1
},
"shares": {
"id": "https://mstdn.social/users/bread80/statuses/114364324657133247/shares",
"type": "Collection",
"totalItems": 0
}
}