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://fosstodon.org/users/drsensor/statuses/109616548814554489",
"type": "Note",
"summary": null,
"inReplyTo": null,
"published": "2023-01-01T23:29:56Z",
"url": "https://fosstodon.org/@drsensor/109616548814554489",
"attributedTo": "https://fosstodon.org/users/drsensor",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://fosstodon.org/users/drsensor/followers"
],
"sensitive": false,
"atomUri": "https://fosstodon.org/users/drsensor/statuses/109616548814554489",
"inReplyToAtomUri": null,
"conversation": "tag:fosstodon.org,2023-01-01:objectId=75569363:objectType=Conversation",
"content": "<p>Hi, how's your new year? Hopefully it's good.</p><p>From 1 January 2023, I plan to <a href=\"https://fosstodon.org/tags/buildInPublic\" class=\"mention hashtag\" rel=\"tag\">#<span>buildInPublic</span></a> my experimental web framework. My aim is to have a framework that is suitable for real-time MPA while load instantly without any setup or compilation. I will use <a href=\"https://fosstodon.org/tags/nusa\" class=\"mention hashtag\" rel=\"tag\">#<span>nusa</span></a> hashtag to post my progress 😊</p><p>site: <a href=\"https://nusa.pages.dev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"\">nusa.pages.dev</span><span class=\"invisible\"></span></a> (still blank page)<br />repo: <a href=\"https://github.com/DrSensor/nusa/releases\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">github.com/DrSensor/nusa/relea</span><span class=\"invisible\">ses</span></a></p><p><a href=\"https://fosstodon.org/tags/projects\" class=\"mention hashtag\" rel=\"tag\">#<span>projects</span></a> <a href=\"https://fosstodon.org/tags/webdev\" class=\"mention hashtag\" rel=\"tag\">#<span>webdev</span></a> <a href=\"https://fosstodon.org/tags/javascript\" class=\"mention hashtag\" rel=\"tag\">#<span>javascript</span></a> <a href=\"https://fosstodon.org/tags/html\" class=\"mention hashtag\" rel=\"tag\">#<span>html</span></a></p>",
"contentMap": {
"en": "<p>Hi, how's your new year? Hopefully it's good.</p><p>From 1 January 2023, I plan to <a href=\"https://fosstodon.org/tags/buildInPublic\" class=\"mention hashtag\" rel=\"tag\">#<span>buildInPublic</span></a> my experimental web framework. My aim is to have a framework that is suitable for real-time MPA while load instantly without any setup or compilation. I will use <a href=\"https://fosstodon.org/tags/nusa\" class=\"mention hashtag\" rel=\"tag\">#<span>nusa</span></a> hashtag to post my progress 😊</p><p>site: <a href=\"https://nusa.pages.dev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"\">nusa.pages.dev</span><span class=\"invisible\"></span></a> (still blank page)<br />repo: <a href=\"https://github.com/DrSensor/nusa/releases\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">github.com/DrSensor/nusa/relea</span><span class=\"invisible\">ses</span></a></p><p><a href=\"https://fosstodon.org/tags/projects\" class=\"mention hashtag\" rel=\"tag\">#<span>projects</span></a> <a href=\"https://fosstodon.org/tags/webdev\" class=\"mention hashtag\" rel=\"tag\">#<span>webdev</span></a> <a href=\"https://fosstodon.org/tags/javascript\" class=\"mention hashtag\" rel=\"tag\">#<span>javascript</span></a> <a href=\"https://fosstodon.org/tags/html\" class=\"mention hashtag\" rel=\"tag\">#<span>html</span></a></p>"
},
"updated": "2023-01-02T01:18:44Z",
"attachment": [
{
"type": "Document",
"mediaType": "image/png",
"url": "https://cdn.fosstodon.org/media_attachments/files/109/616/712/118/032/051/original/2d3934a8987efee2.png",
"name": "file index.html\n```html\n<script src=nusa/render-scope async></script>\n\n<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>\n\n<render-scope>\n <link href=counter.js>\n <!-- only fetch/run counter.js when user scroll until this scope -->\n\n <button :: on:click=increment text:= count>0</button>\n\n <input inputmode=\"numeric\" type=number :: value:=count on:change=set>\n</render-scope>\n\n<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>\n\n<render-scope>\n <link href=count-every-1ls.js>\n <!-- only fetch/run count-every-1s.js when in view -->\n <!-- previous <render-scope> also get updated-every-1.js -->\n\n automatically increment every 1s until it can be divided by 5\n <button :: on:click=increment text:= count>0</button>\n <input inputmode=\"numeric\" type=number :: value:=count on:change=set>\n when it dividable by 5, click to continue to increment on every 1s\n</render-scope>\n```",
"blurhash": "U78|YjWG-ZV{W0aybIay-tWCj]bHxdbHWVa|",
"focalPoint": [
0,
0
],
"width": 1454,
"height": 1334
},
{
"type": "Document",
"mediaType": "image/png",
"url": "https://cdn.fosstodon.org/media_attachments/files/109/616/712/518/194/872/original/ed2113d6ae9b6756.png",
"name": "file counter.js\n```js\nimport { current } from \"nusa/std\" \n\nexport default class { // counter.js \n accessor count = 0\n\n increment() { this.count++ }\n\n set() {\n this.count = +current.event.target.value\n }\n}\n```",
"blurhash": "UC9GnFR:-sR,xejuWXf6?1R*oMj[tUWVjZj]",
"focalPoint": [
0,
0
],
"width": 1040,
"height": 750
},
{
"type": "Document",
"mediaType": "image/png",
"url": "https://cdn.fosstodon.org/media_attachments/files/109/616/712/877/432/586/original/64687d172855e40a.png",
"name": "file count-every-1s.js\n```js\nimport Counter from \"./counter.js\"\nimport { iterate } from \"nusa/std\"\n\nsetInterval(() => { // count-every-1s.js\n iterate.for(Counter, (index, { count }) => {\n if (!(count[index] % 5)) { iterate.skip(); return }\n count[index]++\n })\n}, 1e3)\n\nexport { default } from \"./counter.js\"\n```",
"blurhash": "UB9ZypS6-ZNHxxbHWCja-aRkogj]xeWEj[fk",
"focalPoint": [
0,
0
],
"width": 1146,
"height": 750
}
],
"tag": [
{
"type": "Hashtag",
"href": "https://fosstodon.org/tags/buildinpublic",
"name": "#buildinpublic"
},
{
"type": "Hashtag",
"href": "https://fosstodon.org/tags/nusa",
"name": "#nusa"
},
{
"type": "Hashtag",
"href": "https://fosstodon.org/tags/projects",
"name": "#projects"
},
{
"type": "Hashtag",
"href": "https://fosstodon.org/tags/webdev",
"name": "#webdev"
},
{
"type": "Hashtag",
"href": "https://fosstodon.org/tags/javascript",
"name": "#javascript"
},
{
"type": "Hashtag",
"href": "https://fosstodon.org/tags/html",
"name": "#html"
}
],
"replies": {
"id": "https://fosstodon.org/users/drsensor/statuses/109616548814554489/replies",
"type": "Collection",
"first": {
"type": "CollectionPage",
"next": "https://fosstodon.org/users/drsensor/statuses/109616548814554489/replies?only_other_accounts=true&page=true",
"partOf": "https://fosstodon.org/users/drsensor/statuses/109616548814554489/replies",
"items": []
}
},
"likes": {
"id": "https://fosstodon.org/users/drsensor/statuses/109616548814554489/likes",
"type": "Collection",
"totalItems": 2
},
"shares": {
"id": "https://fosstodon.org/users/drsensor/statuses/109616548814554489/shares",
"type": "Collection",
"totalItems": 0
}
}