Find the feed behind any address, or read a Google Sheet

Paste a site, a blog, a YouTube channel (by @handle, /channel/ or /user/), a Substack, Medium, WordPress or Ghost site, or a Google Sheets link. For a page: PostWire looks for its RSS or Atom link, what the page says it is (a YouTube channel id, a WordPress or Ghost generator, Substack), then /feed, /rss, /feed.xml and /index.xml — at most 6 requests, each with the same protections as a feed (8 seconds, 2 MB, private addresses refused on every hop). For a sheet: its next 5 ready rows and where each lands on the plan (to the queue, held, or the next read). Nothing is saved; add it with POST /api/rss. 20 an hour.

post/api/rss/discover

Request

  • Base URL: https://postwire.io
  • URL: https://postwire.io/api/rss/discover
  • Auth: HTTP bearer

Request body

urlstring required

yourblog.com, youtube.com/@you, a Substack or a docs.google.com/spreadsheets link.

platformsstring[]

For a sheet: the networks of rows whose networks cell is empty.

timezonestring

For a sheet: the timezone of times without one. Default: the brand's, else UTC.

brand_idstring uuid

Response

A feed: { ok, kind: "rss", feed_url, title, source (youtube | substack | medium | wordpress | ghost | link | guess | direct), site, items_in_feed, items: the newest 3, plan, message }. A sheet: { ok, kind: "sheet", url (its CSV), published, timezone, columns, status_col, rows_total, ready, new, already_scheduled, skipped, skipped_lines, next: [{ line, run_at, next_slot, networks, text, status, lands: queued | held | later }], will_queue, will_hold, later, note, plan, sheets_ready, message }.

Changes

No recorded changes to this operation across all 1 revision of this API.