---
title: "Fediverse Comments"
description: "Examples for ActivityPub replies, comment rendering, and reactions."
canonical_url: "https://docs.bulkheados.com/federation/comments/"
template: "page-node"
schema_type: "WebPage"
---

<div class="docs-content">
<p class="docs-lead">A federated comments section lets a reader reply from Mastodon or another ActivityPub service while your site remains the canonical source of the article.</p>

<h2 id="comments-endpoint">Comments Endpoint</h2>
<p>The comments endpoint returns approved replies and aggregated reactions for a content target.</p>

<pre><code class="language-http">GET /api/ap/comments?target_type=inform&amp;target_id=docs_node_introduction
Accept: application/json</code></pre>

<pre><code class="language-json">{
  "comments": [
    {
      "id": "cmt_01",
      "author_name": "Aoife Devlin",
      "actor_handle": "@aoife@mastodon.ie",
      "avatar_url": "https://mastodon.ie/media/avatars/aoife.jpg",
      "profile_url": "https://mastodon.ie/@aoife",
      "note_uri": "https://mastodon.ie/@aoife/113000001",
      "content": "&lt;p&gt;This doc finally made the publishing flow click for me.&lt;/p&gt;",
      "published_at": "2026-04-07T08:30:00.000Z",
      "parent_id": null
    }
  ],
  "reactions": {
    "likes": 8,
    "boosts": 3,
    "total": 11
  },
  "pagination": {
    "page": 1,
    "per_page": 50,
    "total": 1,
    "pages": 1
  }
}</code></pre>

<h2 id="rendered-thread-example">Rendered Thread Example</h2>
<div class="docs-thread">
  <div class="docs-thread__item">
    <div class="docs-thread__avatar">AD</div>
    <div class="docs-thread__bubble">
      <div class="docs-thread__meta">
        <span class="docs-thread__author">Aoife Devlin</span>
        <span>@aoife@mastodon.ie</span>
        <span>8:30 UTC</span>
      </div>
      <div class="docs-thread__body">This doc finally made the publishing flow click for me. Seeing the request and response together helped.</div>
    </div>
  </div>
  <div class="docs-thread__item">
    <div class="docs-thread__avatar">BO</div>
    <div class="docs-thread__bubble">
      <div class="docs-thread__meta">
        <span class="docs-thread__author">Bulkhead OS</span>
        <span>@docs@bulkheados.com</span>
        <span>8:42 UTC</span>
      </div>
      <div class="docs-thread__body">That is the goal. Keep the explanation short, keep the example real, and let the article do the rest.</div>
    </div>
  </div>
</div>

<h2 id="when-to-use-it">When To Use It</h2>
<ul>
<li>Developer docs where readers often ask clarifying questions in public</li>
<li>Community guides where distributed discussion is part of the value</li>
<li>Announcement posts where the conversation should live near the canonical URL</li>
</ul>

<div class="docs-callout docs-callout--info">
<p><strong>Moderation model:</strong> Only approved comments are returned. That keeps the public thread useful without giving up editorial control.</p>
</div>
</div>
