API Documentation

Micropub

IndieWeb-compatible Micropub at https://scribbles.page/micropub with a media endpoint. Authenticate with the same bearer token as the JSON API.

Micropub https://scribbles.page/micropub
Media https://scribbles.page/micropub/media

Create (form-encoded)

POST https://scribbles.page/micropub

Classic h=entry style posts.

Example Request

curl -X POST "https://scribbles.page/micropub" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "h=entry&name=Hello&content=My first post!"

Create (JSON)

POST https://scribbles.page/micropub

Example Request

curl -X POST "https://scribbles.page/micropub" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type":["h-entry"],"properties":{"name":["Title"],"content":["Body"],"category":["notes"],"post-status":["published"]}}'

Updates and deletes

POST https://scribbles.page/micropub (action in JSON body)

Example Request

curl -X POST "https://scribbles.page/micropub" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"action":"update","url":"https://your.site/post-url","replace":{"content":["New body"]}}'

curl -X POST "https://scribbles.page/micropub" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"action":"delete","url":"https://your.site/post-url"}'

Queries

Micropub supports discovery via the q parameter.

GET https://scribbles.page/micropub?q=config

Capabilities and endpoints.

GET https://scribbles.page/micropub?q=source

Recent posts.

GET https://scribbles.page/micropub?q=source&url=POST_URL

Single post by URL (encode the URL query value).

GET https://scribbles.page/micropub?q=category

Categories for the target blog.

Multi-blog hints

Use blog_id as a query parameter or X-Blog-ID header, or mp-destination with the blog URL inside Micropub payloads, aligning with your JSON API workflow.

Media upload

POST https://scribbles.page/micropub/media

Example Request

curl -X POST "https://scribbles.page/micropub/media" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "blog_id=YOUR_BLOG_ID" \
  -F "[email protected]"
Note: Insert the returned attachment HTML into Micropub content when you need the same rich embedding model as the JSON API.

Errors

  • 401 — Missing or invalid API key.
  • 403 — Authenticated but not allowed for the resource or action.
  • 404 — Unknown blog or post.
  • 400 — Bad query combination (for example category filters that exclude each other) or missing upload fields.
  • 422 — Validation errors; JSON body often includes errors / message.

← API overview · JSON API guide →