{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreifzpk2xjjzexxp3eglzqwn5rpzqm6mt4qglrrazmvij5ptcuym54u",
    "uri": "at://did:plc:t33vcfaezw7iwyoz7xiejurq/app.bsky.feed.post/3mnn7nlryzla2"
  },
  "path": "/t/micropub-categories/4358#post_1",
  "publishedAt": "2026-06-06T16:53:20.000Z",
  "site": "https://help.micro.blog",
  "tags": [
    "https://example.com/categories/12"
  ],
  "textContent": "_This is very rough, preliminary documentation._\n\nFull-featured blogging apps may need to rename or delete categories. We’ve extended the Micropub API with more access to categories.\n\nTo get a list of categories:\n\nGET /micropub?q=category\n\nParameters:\n\n  * mp-destination: blog URL, for accounts with multiple blogs\n  * filter: prefix match for category names\n\n\n\nResponse:\n\n\n    {\n      \"categories\": [\n        \"Photos\",\n        \"Travel\"\n      ],\n      \"microblog-categories\": [\n        {\n          \"uid\": 11,\n          \"name\": \"Photos\",\n          \"posts_count\": 123\n        },\n        {\n          \"uid\": 12,\n          \"name\": \"Travel\",\n          \"posts_count\": 45\n        }\n      ]\n    }\n\n\nGetting blog posts in a category:\n\nGET /micropub?q=source&category=uid\n\nAdding a category name to a blog post will create the category automatically if it doesn’t exist. You can also create a category manually:\n\nPOST /micropub\n\nParameters:\n\n  * mp-channel=categories\n  * name=Travel\n  * text=Optional intro text\n  * path=/categories/travel\n\n\n\nJSON request:\n\n\n    {\n      \"mp-channel\": \"categories\",\n      \"properties\": {\n        \"name\": [\"Travel\"],\n        \"content\": [\"Optional intro text\"],\n        \"microblog-path\": [\"/categories/travel\"]\n      }\n    }\n\n\nResponse:\n\n\n    {\n      \"uid\": 12,\n      \"name\": \"Travel\",\n      \"path\": \"/categories/travel\",\n      \"posts_count\": 0\n    }\n\n\nIf path is omitted, Micro.blog generates one from the category name.\n\nUpdate category:\n\nPOST /micropub\n\nParameters:\n\n  * mp-channel=categories\n  * action=update\n  * url=https://example.com/categories/12\n  * name=Trips\n  * text=Updated intro text\n  * path=/categories/trips\n\n\n\nJSON request:\n\n\n    {\n      \"mp-channel\": \"categories\",\n      \"action\": \"update\",\n      \"url\": \"https://example.com/categories/12\",\n      \"replace\": {\n        \"name\": [\"Trips\"],\n        \"content\": [\"Updated intro text\"],\n        \"microblog-path\": [\"/categories/trips\"]\n      }\n    }\n\n\nResponse:\n\n\n    {\n      \"uid\": 12,\n      \"name\": \"Trips\",\n      \"path\": \"/categories/trips\",\n      \"posts_count\": 45\n    }\n\n\nDelete a category:\n\nPOST /micropub\n\nParameters:\n\n  * mp-channel=categories\n  * action=delete\n  * url=https://example.com/categories/12\n\n\n\nJSON request:\n\n\n    {\n      \"mp-channel\": \"categories\",\n      \"action\": \"delete\",\n      \"uid\": 12\n    }\n",
  "title": "ℹ️ Micropub: Categories"
}