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.social/users/anatudor/statuses/114261639257971984",
"type": "Note",
"summary": null,
"inReplyTo": "https://mastodon.social/users/anatudor/statuses/114261599473975952",
"published": "2025-04-01T07:57:31Z",
"url": "https://mastodon.social/@anatudor/114261639257971984",
"attributedTo": "https://mastodon.social/users/anatudor",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://mastodon.social/users/anatudor/followers"
],
"sensitive": false,
"atomUri": "https://mastodon.social/users/anatudor/statuses/114261639257971984",
"inReplyToAtomUri": "https://mastodon.social/users/anatudor/statuses/114261599473975952",
"conversation": "tag:mastodon.social,2024-05-29:objectId=717883329:objectType=Conversation",
"content": "<p>This effectively pushes all pixels except for those with alphas originally in the [.4, .6] interval (which now stretch across the [0, 1] interval) to either 0 or 1, whichever is closer.</p><p>Now you may be wondering why not do this from the start instead of those first two primitives.</p><p>Well, because without knowing the blur radius in px (something that's not really possible without JS if we set it in container query or viewport units), we can't know what interval to map to.🤷♀️</p><p><a href=\"https://mastodon.social/tags/SVG\" class=\"mention hashtag\" rel=\"tag\">#<span>SVG</span></a> <a href=\"https://mastodon.social/tags/CSS\" class=\"mention hashtag\" rel=\"tag\">#<span>CSS</span></a> <a href=\"https://mastodon.social/tags/filter\" class=\"mention hashtag\" rel=\"tag\">#<span>filter</span></a> <a href=\"https://mastodon.social/tags/code\" class=\"mention hashtag\" rel=\"tag\">#<span>code</span></a></p>",
"contentMap": {
"en": "<p>This effectively pushes all pixels except for those with alphas originally in the [.4, .6] interval (which now stretch across the [0, 1] interval) to either 0 or 1, whichever is closer.</p><p>Now you may be wondering why not do this from the start instead of those first two primitives.</p><p>Well, because without knowing the blur radius in px (something that's not really possible without JS if we set it in container query or viewport units), we can't know what interval to map to.🤷♀️</p><p><a href=\"https://mastodon.social/tags/SVG\" class=\"mention hashtag\" rel=\"tag\">#<span>SVG</span></a> <a href=\"https://mastodon.social/tags/CSS\" class=\"mention hashtag\" rel=\"tag\">#<span>CSS</span></a> <a href=\"https://mastodon.social/tags/filter\" class=\"mention hashtag\" rel=\"tag\">#<span>filter</span></a> <a href=\"https://mastodon.social/tags/code\" class=\"mention hashtag\" rel=\"tag\">#<span>code</span></a></p>"
},
"attachment": [
{
"type": "Document",
"mediaType": "image/png",
"url": "https://files.mastodon.social/media_attachments/files/114/261/637/955/519/578/original/94c078c16025328b.png",
"name": "Quick example of using feComponentTransfer with `type='table'`.\n\n```\n<feComponentTransfer>\n <feFuncR type=\"table\" tableValues=\"0.0 0.7 0.9 1.0\"/>\n</feComponentTransfer>\n````\n\nHere, since there are n=4 values in the “tableValues” array, the input color channel is divided into 3 (n-1) equal ranges whose start and end values are:\n\n```\n 0.00 ... 0.33\n 0.33 ... 0.66\n 0.66 ... 1.00\n```\n\nValues in these ranges are then evenly mapped into the ranges specified in tableValues, which are:\n\n```\n 0.00 ... 0.70\n 0.70 ... 0.90\n 0.90 ... 1.00\n```\n\nFor example, an input pixel whose red value is 0.5 - the midpoint of the second input range (0.33 to 0.66) - is mapped to the midpoint of the second output range (0.70 to 0.90), resulting in an output value for that pixel of 0.80.\n\nNote that the start and end values for the input ranges(and their number) are automatically calculated based on the number of values in \"tableValues\". For example, if tableValues had eleven values, then the input ranges would be calculated as (0.0 -> 0.1, 0.1 -> 0.2 etc. through 0.9 -> 1.0.) There is no capability in SVG 1.1 to customize the start and end values of input ranges.",
"blurhash": "UHRyjG4UDjoz?^yDtRf7xuxut7j[R5IAMyWX",
"focalPoint": [
0,
0
],
"width": 929,
"height": 904
}
],
"tag": [
{
"type": "Hashtag",
"href": "https://mastodon.social/tags/svg",
"name": "#svg"
},
{
"type": "Hashtag",
"href": "https://mastodon.social/tags/css",
"name": "#css"
},
{
"type": "Hashtag",
"href": "https://mastodon.social/tags/filter",
"name": "#filter"
},
{
"type": "Hashtag",
"href": "https://mastodon.social/tags/code",
"name": "#code"
}
],
"replies": {
"id": "https://mastodon.social/users/anatudor/statuses/114261639257971984/replies",
"type": "Collection",
"first": {
"type": "CollectionPage",
"next": "https://mastodon.social/users/anatudor/statuses/114261639257971984/replies?only_other_accounts=true&page=true",
"partOf": "https://mastodon.social/users/anatudor/statuses/114261639257971984/replies",
"items": []
}
},
"likes": {
"id": "https://mastodon.social/users/anatudor/statuses/114261639257971984/likes",
"type": "Collection",
"totalItems": 1
},
"shares": {
"id": "https://mastodon.social/users/anatudor/statuses/114261639257971984/shares",
"type": "Collection",
"totalItems": 0
}
}