Build with Micro.blog logo
Build with Micro.blog
API Documentation

Conversations

View .md

Endpoints for resolving and reading Micro.blog conversation threads.

BASE URL https://micro.blog
GET /conversation.js

Looks up the Micro.blog conversation for a blog post URL and returns its replies as JSON Feed, JF2, or an embeddable JavaScript snippet. No authentication is required. Replies hidden from the blog are left out.

Example Request

curl -X GET "https://micro.blog/conversation.js?url=https%3A%2F%2Fwww.manton.org%2F2025%2F11%2F07%2Fif-you-are-on-the.html&format=jsonfeed"

Query Parameters

Name Type Required Description
url string Required Permalink of the blog post.
Example: https://www.manton.org/2025/11/07/if-you-are-on-the.html
format string Optional jsonfeed or jf2. Omit for JavaScript that writes the conversation into the page; that response is empty when there are no replies and the blog does not show public comments.
Example: jsonfeed

Response

200 OK application/json

With format=jsonfeed, returns a JSON Feed of replies, oldest first. With format=jf2, returns a JF2 feed whose entries carry Webmention.io-style wm-id, wm-received, and mention-of fields. Without format, returns application/javascript. Returns 404 when no Micro.blog post matches the URL.

Example Response

{
  "version": "https://jsonfeed.org/version/1",
  "title": "Conversation",
  "home_page_url": "https://micro.blog/manton/77494371",
  "feed_url": "https://micro.blog/conversation.js?url=https%3A%2F%2Fwww.manton.org%2F2025%2F11%2F07%2Fif-you-are-on-the.html&format=jsonfeed",
  "items": [
    {
      "id": "98765",
      "content_html": "<p><a href=\"https://micro.blog/manton\">@manton</a> Thanks!</p>",
      "url": "https://micro.blog/jean/98765",
      "date_published": "2025-11-07T18:30:00+00:00",
      "author": {
        "name": "Jean Example",
        "url": "https://jean.example.com",
        "avatar": "https://avatars.micro.blog/avatars/2025/01/example.jpg",
        "_microblog": {
          "username": "jean"
        }
      }
    }
  ]
}
GET /posts/conversation

Returns a conversation thread in JSON Feed format. Replies come first, newest first, followed by the original post last. When id is a Mastodon or Bluesky reply, the rest of its thread is fetched from that service first. No authentication is required; with a token, posts from muted users are removed and is_favorite and is_deletable reflect the authenticated user.

Example Request

curl -X GET "https://micro.blog/posts/conversation?id=77494371"

Query Parameters

Name Type Required Description
id integer Required ID of any post in the conversation, either the original post or one of its replies.
Example: 77494371

Header Parameters

Name Type Required Description
Authorization string Optional Optional bearer token. Format: Bearer {token}. Needs the read scope when sent.

Response

200 OK application/json

Returns a JSON Feed object. Items have the same shape as GET /posts/all; replies have is_mention set to true. An unknown ID returns an empty items array.

Example Response

{
  "version": "https://jsonfeed.org/version/1",
  "title": "Micro.blog - Conversation",
  "home_page_url": "https://micro.blog",
  "feed_url": "https://micro.blog/posts/conversation",
  "_microblog": {
    "about": "https://micro.blog/about/api"
  },
  "items": [
    {
      "id": "98765",
      "content_html": "<p><a href=\"https://micro.blog/manton\">@manton</a> Thanks!</p>",
      "url": "https://micro.blog/jean/98765",
      "date_published": "2025-11-07T18:30:00+00:00",
      "author": {
        "name": "Jean Example",
        "url": "https://jean.example.com",
        "avatar": "https://avatars.micro.blog/avatars/2025/01/example.jpg",
        "_microblog": {
          "username": "jean"
        }
      },
      "_microblog": {
        "date_relative": "19:30",
        "date_timestamp": 1762540200,
        "is_favorite": false,
        "is_bookmark": false,
        "is_deletable": false,
        "edit_url": null,
        "is_conversation": true,
        "is_linkpost": false,
        "is_mention": true
      }
    },
    {
      "id": "77494371",
      "content_html": "<p>If you are on the TestFlight beta for Micro.blog iOS, you will have seen our experiments to enable Liquid Glass.</p>\n",
      "summary": "",
      "url": "https://www.manton.org/2025/11/07/if-you-are-on-the.html",
      "date_published": "2025-11-07T18:00:00+00:00",
      "author": {
        "name": "Manton Reece",
        "url": "https://manton.org",
        "avatar": "https://avatars.micro.blog/avatars/2025/22/3.jpg",
        "_microblog": {
          "username": "manton"
        }
      },
      "_microblog": {
        "date_relative": "19:00",
        "date_timestamp": 1762538400,
        "is_favorite": false,
        "is_bookmark": false,
        "is_deletable": false,
        "is_conversation": true,
        "is_linkpost": false,
        "is_mention": false,
        "is_podcast": false,
        "note": "",
        "syndication": []
      }
    }
  ]
}