{
"$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"
}