ℹ️ Feeds syncing with Inkwell

Inkwell is our feed reader for Micro.blog. It has an API for syncing posts and unread status that is inspired by Feedbin’s API, plus a few other extra things to integrate with Micro.blog.

All API calls should authenticate with a Micro.blog token in an Authorization HTTP header as documented elsewhere in the help. Use the hostname micro.blog, not micro.ink.

GET /feeds/v2/subscriptions.json

  • Returns the current user’s subscriptions.
  • Supports since and mode=extended.
  • Response ids are local subscription ids and local feed ids.

GET /feeds/v2/subscriptions/:id.json

  • Returns a single subscription.
  • Supports mode=extended.
  • :id is the local subscription id.

POST /feeds/v2/subscriptions.json

  • Creates a subscription.
  • JSON body can include feed_url or url.
  • Returns the subscription object and sets Location on success.

PATCH /feeds/v2/subscriptions/:id.json

  • Updates a subscription title.
  • JSON body: title.
  • Returns the updated subscription object.

POST /feeds/v2/subscriptions/:id/update.json

  • Queues a refresh for one subscription.
  • Returns the subscription object.
  • :id is the local subscription id.

DELETE /feeds/v2/subscriptions/:id.json

  • Deletes a subscription.
  • Returns 204 No Content on success.
  • :id is the local subscription id.

GET /feeds/v2/entries.json

  • Returns entries for the current user.
  • Supports page, per_page, since, ids, read, starred, mode, and include_enclosure.
  • Response ids are local entry ids and local feed ids.

GET /feeds/v2/entries/:id.json

  • Returns a single entry.
  • Supports mode=extended and include_enclosure=true.
  • :id is the local entry id.

GET /feeds/highlights

  • Returns the current user’s highlights as a JSON Feed.
  • Supports limit and offset.
  • Includes highlight text and the related entry id.

GET /feeds/:entry_id/highlights

  • Returns highlights for one entry as a JSON Feed.
  • :entry_id is the local entry id.
  • Requires access to that entry.

POST /feeds/:entry_id/highlights

  • Creates a highlight for one entry.
  • JSON body: text, start, end.
  • Returns the new highlight id and total count for the entry.

DELETE /feeds/:entry_id/highlights/:highlight_id

  • Deletes one highlight from an entry.
  • Returns an empty JSON object.
  • Both ids are local ids.

GET /feeds/v2/icons.json

  • Returns feed icons for the current user’s subscriptions.
  • Each item includes host and url.
  • Only feeds with a known icon are included.

GET /feeds/v2/feeds/:id/entries.json

  • Returns entries for one subscribed feed.
  • Supports the same filtering as GET /feeds/v2/entries.json except ids.
  • :id is the local feed id.

GET /feeds/v2/unread_entries.json

  • Returns unread entry ids.
  • Response ids are local entry ids.
  • In Feedbin mode, local-only unread entries are preserved.

POST /feeds/v2/unread_entries.json

  • Marks entries as unread.
  • JSON body: unread_entries array of local entry ids.
  • Returns the saved local entry ids.

DELETE /feeds/v2/unread_entries.json

  • Marks entries as read.
  • JSON body: unread_entries array of local entry ids.
  • Returns the updated local entry ids.

POST /feeds/v2/unread_entries/delete.json

  • Alternate read-marking endpoint for clients that prefer POST.
  • JSON body: unread_entries array of local entry ids.
  • Returns the updated local entry ids.

GET /feeds/v2/starred_entries.json

  • Returns starred entry ids.
  • Response ids are local entry ids.
  • In Feedbin mode, local-only starred entries are preserved.

POST /feeds/v2/starred_entries.json

  • Stars entries.
  • JSON body: starred_entries array of local entry ids.
  • Returns the saved local entry ids.

DELETE /feeds/v2/starred_entries.json

  • Unstars entries.
  • JSON body: starred_entries array of local entry ids.
  • Returns the updated local entry ids.

POST /feeds/recap

  • Generates and returns the Reading Recap.
  • JSON body is an array of entry IDs.
  • If the Reading Recap isn’t ready yet, you’ll get back an HTTP 202.
  • We recommend trying every few seconds until you get a 200 OK, but give up after 1-2 minutes.