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",
"Emoji": "toot:Emoji"
}
],
"id": "https://ruby.social/users/alexanderadam/statuses/114669176535662470",
"type": "Note",
"summary": null,
"inReplyTo": null,
"published": "2025-06-12T07:19:36Z",
"url": "https://ruby.social/@alexanderadam/114669176535662470",
"attributedTo": "https://ruby.social/users/alexanderadam",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://ruby.social/users/alexanderadam/followers",
"https://ruby.social/users/matz",
"https://ruby.social/users/balticruby"
],
"sensitive": false,
"atomUri": "https://ruby.social/users/alexanderadam/statuses/114669176535662470",
"inReplyToAtomUri": null,
"conversation": "tag:ruby.social,2025-06-12:objectId=76343005:objectType=Conversation",
"content": "<p>Uuuh, :ruby: <a href=\"https://ruby.social/tags/Ruby\" class=\"mention hashtag\" rel=\"tag\">#<span>Ruby</span></a> will likely get <a href=\"https://ruby.social/tags/Namespaces\" class=\"mention hashtag\" rel=\"tag\">#<span>Namespaces</span></a> although the syntax will change because <a href=\"https://ruby.social/tags/GitLab\" class=\"mention hashtag\" rel=\"tag\">#<span>GitLab</span></a> already uses `Namespace` a lot and <span class=\"h-card\" translate=\"no\"><a href=\"https://ruby.social/@matz\" class=\"u-url mention\">@<span>matz</span></a></span> doesn't want to break it for them.</p><p>But that is indeed a feature that I was missing from <a href=\"https://ruby.social/tags/rubylang\" class=\"mention hashtag\" rel=\"tag\">#<span>rubylang</span></a>. 🤩</p><p><a href=\"https://ruby.social/tags/balticruby\" class=\"mention hashtag\" rel=\"tag\">#<span>balticruby</span></a> <a href=\"https://ruby.social/tags/balticruby2025\" class=\"mention hashtag\" rel=\"tag\">#<span>balticruby2025</span></a> <a href=\"https://ruby.social/tags/riga\" class=\"mention hashtag\" rel=\"tag\">#<span>riga</span></a> <span class=\"h-card\" translate=\"no\"><a href=\"https://ruby.social/@balticruby\" class=\"u-url mention\">@<span>balticruby</span></a></span></p>",
"contentMap": {
"en": "<p>Uuuh, :ruby: <a href=\"https://ruby.social/tags/Ruby\" class=\"mention hashtag\" rel=\"tag\">#<span>Ruby</span></a> will likely get <a href=\"https://ruby.social/tags/Namespaces\" class=\"mention hashtag\" rel=\"tag\">#<span>Namespaces</span></a> although the syntax will change because <a href=\"https://ruby.social/tags/GitLab\" class=\"mention hashtag\" rel=\"tag\">#<span>GitLab</span></a> already uses `Namespace` a lot and <span class=\"h-card\" translate=\"no\"><a href=\"https://ruby.social/@matz\" class=\"u-url mention\">@<span>matz</span></a></span> doesn't want to break it for them.</p><p>But that is indeed a feature that I was missing from <a href=\"https://ruby.social/tags/rubylang\" class=\"mention hashtag\" rel=\"tag\">#<span>rubylang</span></a>. 🤩</p><p><a href=\"https://ruby.social/tags/balticruby\" class=\"mention hashtag\" rel=\"tag\">#<span>balticruby</span></a> <a href=\"https://ruby.social/tags/balticruby2025\" class=\"mention hashtag\" rel=\"tag\">#<span>balticruby2025</span></a> <a href=\"https://ruby.social/tags/riga\" class=\"mention hashtag\" rel=\"tag\">#<span>riga</span></a> <span class=\"h-card\" translate=\"no\"><a href=\"https://ruby.social/@balticruby\" class=\"u-url mention\">@<span>balticruby</span></a></span></p>"
},
"updated": "2025-06-12T07:20:01Z",
"attachment": [
{
"type": "Document",
"mediaType": "image/jpeg",
"url": "https://cdn.masto.host/rubysocial/media_attachments/files/114/669/164/592/055/424/original/94060f5815c00046.jpg",
"name": "Matz presenting a first draft for Ruby namespaces",
"blurhash": "UUCQ}L?[V[RPo[tRWAogDOR7oyoft9V@o#WA",
"width": 1757,
"height": 1180
}
],
"tag": [
{
"type": "Mention",
"href": "https://ruby.social/users/matz",
"name": "@matz"
},
{
"type": "Mention",
"href": "https://ruby.social/users/balticruby",
"name": "@balticruby"
},
{
"type": "Hashtag",
"href": "https://ruby.social/tags/ruby",
"name": "#ruby"
},
{
"type": "Hashtag",
"href": "https://ruby.social/tags/namespaces",
"name": "#namespaces"
},
{
"type": "Hashtag",
"href": "https://ruby.social/tags/gitlab",
"name": "#gitlab"
},
{
"type": "Hashtag",
"href": "https://ruby.social/tags/rubylang",
"name": "#rubylang"
},
{
"type": "Hashtag",
"href": "https://ruby.social/tags/balticruby",
"name": "#balticruby"
},
{
"type": "Hashtag",
"href": "https://ruby.social/tags/balticruby2025",
"name": "#balticruby2025"
},
{
"type": "Hashtag",
"href": "https://ruby.social/tags/riga",
"name": "#riga"
},
{
"id": "https://ruby.social/emojis/356",
"type": "Emoji",
"name": ":ruby:",
"updated": "2018-08-22T23:59:35Z",
"icon": {
"type": "Image",
"mediaType": "image/png",
"url": "https://cdn.masto.host/rubysocial/custom_emojis/images/000/000/356/original/b6488d26202da834.png"
}
}
],
"replies": {
"id": "https://ruby.social/users/alexanderadam/statuses/114669176535662470/replies",
"type": "Collection",
"first": {
"type": "CollectionPage",
"next": "https://ruby.social/users/alexanderadam/statuses/114669176535662470/replies?only_other_accounts=true&page=true",
"partOf": "https://ruby.social/users/alexanderadam/statuses/114669176535662470/replies",
"items": []
}
},
"likes": {
"id": "https://ruby.social/users/alexanderadam/statuses/114669176535662470/likes",
"type": "Collection",
"totalItems": 7
},
"shares": {
"id": "https://ruby.social/users/alexanderadam/statuses/114669176535662470/shares",
"type": "Collection",
"totalItems": 7
}
}