Posting API

Micropub is a W3C recommendation for posting to your web site. It started life in the IndieWeb community and is now supported in several platforms.

Sending a new post to often looks as simple as this (where 123456789 is an app token):

POST /micropub
Authorization: Bearer 123456789


To upload a photo to a blog, first query Micropub to get the media endpoint:

GET /micropub?q=config
Authorization: Bearer 123456789

This will return a response like:

  "media-endpoint": ""

The media endpoint accepts a multipart/form-data upload with a file part containing the JPEG image data. will send back an HTTP 202 response while the image is being copied to the published site. It may take a few seconds for it to be available at the URL in the response:

HTTP/1.1 202 Accepted

Now that you have the URL for the uploaded photo, you can add a photoparameter to a new post. To set alt text for the photo, also include an mp-photo-alt parameter.

POST /micropub
Authorization: Bearer 123456789


When creating a new post, the Micropub API also accepts a “name” parameter to give the post a title:

POST /micropub
Authorization: Bearer 123456789


To create a draft post, add the parameter “post-status” with the value “draft”. will return the final published URL for the post, even though it doesn’t exist yet, and in the JSON body of the response it will include a preview URL. You can direct users to this URL to preview the post on the web, where they can choose to publish it.

  "url": "",
  "preview": ""

To retrieve a list of recent posts, the Micropub API supports /micropub?q=source. This is documented on the IndieWeb wiki. also allows editing an existing post or deleting a post as described in the Micropub spec. supports Micropub on both the server and from the iOS app:

  • For posting from a third-party client to a microblogs, you can use IndieAuth or generate an app token under Account → “App tokens”. If you use a token, set it the Authorization: Bearer header.
  • For posting from the iOS and macOS apps to any Micropub server, under Settings → “When writing a new post” choose “WordPress or compatible weblog”. Enter your web site domain name and will look for an authorization endpoint to complete the setup.

Note: for iOS and macOS will always default to WordPress posting if your web site supports it, so that it can set a default category and post format.

For users who have multiple microblogs configured, /micropub?q=config will return of the list of sites. You can post to a specific microblog by passing an mp-destination parameter of the URL (uid from the configured list).

Need a way to test with multiple blogs? Every account can create a free test blog on the web under Design → Edit Custom Themes → New Test Blog.

The XML-RPC support allows you to post to a microblog and from the iOS app to WordPress, MovableType, and other compatible blogging platforms. For details see the overview help page and XML-RPC API.

Back to Help Table of Contents

1 Like