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://mastodon.bsd.cafe/users/zirias/statuses/114383112910490053",
"type": "Note",
"summary": null,
"inReplyTo": null,
"published": "2025-04-22T18:49:52Z",
"url": "https://mastodon.bsd.cafe/@zirias/114383112910490053",
"attributedTo": "https://mastodon.bsd.cafe/users/zirias",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mastodon.bsd.cafe/users/zirias/followers"
],
"sensitive": false,
"atomUri": "https://mastodon.bsd.cafe/users/zirias/statuses/114383112910490053",
"inReplyToAtomUri": null,
"conversation": "tag:bsd.cafe,2025-04-22:objectId=16068469:objectType=Conversation",
"content": "<p>I figured <a href=\"https://mastodon.bsd.cafe/tags/swad\" class=\"mention hashtag\" rel=\"tag\">#<span>swad</span></a>'s password file management tool (swadpw) should really *ensure* that when reading a password from the <a href=\"https://mastodon.bsd.cafe/tags/terminal\" class=\"mention hashtag\" rel=\"tag\">#<span>terminal</span></a>, prompts are printed to exactly that terminal.</p><p>Well, I already check whether standard input *is* a terminal. In that case, I assume it *should* be writable. It certainly *is* writable on <a href=\"https://mastodon.bsd.cafe/tags/FreeBSD\" class=\"mention hashtag\" rel=\"tag\">#<span>FreeBSD</span></a> and <a href=\"https://mastodon.bsd.cafe/tags/Linux\" class=\"mention hashtag\" rel=\"tag\">#<span>Linux</span></a>. But I can't find any guarantee looking at <a href=\"https://mastodon.bsd.cafe/tags/POSIX\" class=\"mention hashtag\" rel=\"tag\">#<span>POSIX</span></a> specs 🤔.</p><p>Ok, so I wrote a weirdo function to provide fallbacks. 🤪 Is this taking it too far? And how would I ever test these fallbacks? 🙈 </p><p><a href=\"https://mastodon.bsd.cafe/tags/C\" class=\"mention hashtag\" rel=\"tag\">#<span>C</span></a> <a href=\"https://mastodon.bsd.cafe/tags/coding\" class=\"mention hashtag\" rel=\"tag\">#<span>coding</span></a></p>",
"contentMap": {
"en": "<p>I figured <a href=\"https://mastodon.bsd.cafe/tags/swad\" class=\"mention hashtag\" rel=\"tag\">#<span>swad</span></a>'s password file management tool (swadpw) should really *ensure* that when reading a password from the <a href=\"https://mastodon.bsd.cafe/tags/terminal\" class=\"mention hashtag\" rel=\"tag\">#<span>terminal</span></a>, prompts are printed to exactly that terminal.</p><p>Well, I already check whether standard input *is* a terminal. In that case, I assume it *should* be writable. It certainly *is* writable on <a href=\"https://mastodon.bsd.cafe/tags/FreeBSD\" class=\"mention hashtag\" rel=\"tag\">#<span>FreeBSD</span></a> and <a href=\"https://mastodon.bsd.cafe/tags/Linux\" class=\"mention hashtag\" rel=\"tag\">#<span>Linux</span></a>. But I can't find any guarantee looking at <a href=\"https://mastodon.bsd.cafe/tags/POSIX\" class=\"mention hashtag\" rel=\"tag\">#<span>POSIX</span></a> specs 🤔.</p><p>Ok, so I wrote a weirdo function to provide fallbacks. 🤪 Is this taking it too far? And how would I ever test these fallbacks? 🙈 </p><p><a href=\"https://mastodon.bsd.cafe/tags/C\" class=\"mention hashtag\" rel=\"tag\">#<span>C</span></a> <a href=\"https://mastodon.bsd.cafe/tags/coding\" class=\"mention hashtag\" rel=\"tag\">#<span>coding</span></a></p>"
},
"attachment": [
{
"type": "Document",
"mediaType": "image/png",
"url": "https://media.bsd.cafe/bsdmmedia01/media_attachments/files/114/383/108/476/568/491/original/62e19cb9a1722e86.png",
"name": "A function to write a prompt to a terminal connected to stdin, first trying stdin directly, then a new fd opened from the ttyname stdin points to and finally stderr IF this is a terminal as well ...",
"blurhash": "U02Yw??IVqRN%NxvV@RPniadozt8n~V@fltR",
"focalPoint": [
0,
0
],
"width": 522,
"height": 568
}
],
"tag": [
{
"type": "Hashtag",
"href": "https://mastodon.bsd.cafe/tags/swad",
"name": "#swad"
},
{
"type": "Hashtag",
"href": "https://mastodon.bsd.cafe/tags/terminal",
"name": "#terminal"
},
{
"type": "Hashtag",
"href": "https://mastodon.bsd.cafe/tags/freebsd",
"name": "#freebsd"
},
{
"type": "Hashtag",
"href": "https://mastodon.bsd.cafe/tags/linux",
"name": "#linux"
},
{
"type": "Hashtag",
"href": "https://mastodon.bsd.cafe/tags/posix",
"name": "#posix"
},
{
"type": "Hashtag",
"href": "https://mastodon.bsd.cafe/tags/c",
"name": "#c"
},
{
"type": "Hashtag",
"href": "https://mastodon.bsd.cafe/tags/coding",
"name": "#coding"
}
],
"replies": {
"id": "https://mastodon.bsd.cafe/users/zirias/statuses/114383112910490053/replies",
"type": "Collection",
"first": {
"type": "CollectionPage",
"next": "https://mastodon.bsd.cafe/users/zirias/statuses/114383112910490053/replies?only_other_accounts=true&page=true",
"partOf": "https://mastodon.bsd.cafe/users/zirias/statuses/114383112910490053/replies",
"items": []
}
},
"likes": {
"id": "https://mastodon.bsd.cafe/users/zirias/statuses/114383112910490053/likes",
"type": "Collection",
"totalItems": 1
},
"shares": {
"id": "https://mastodon.bsd.cafe/users/zirias/statuses/114383112910490053/shares",
"type": "Collection",
"totalItems": 2
}
}