Safari Shortcut

You need an access token from Settings: sign in first.

You build two Shortcuts by hand, once; they then sync to your iPhone, iPad and Mac through iCloud. The first sends the whole page from Safari, so paywalled articles you can read are saved in full. The second, for other apps such as Chrome on iPhone, sends only the link.

Before you start

  • iPhone and iPad: Settings → Apps → Shortcuts → Advanced → turn on Allow Running Scripts (on iOS 17 and earlier: Settings → Shortcuts → Advanced).
  • Mac: in the Shortcuts app, Shortcuts → Settings → Advanced → turn on Allow Running Scripts. If Safari still refuses to run the script, open Safari → Settings → Advanced → turn on Show features for web developers, then in Safari’s new Developer settings tab turn on Allow JavaScript from Apple Events, and restart Safari.
  • Create an access token for this device in Settings and keep it at hand.

Shortcut 1: “Save to ReadSooner” (Safari)

  1. In the Shortcuts app, tap + to make a new shortcut and name it “Save to ReadSooner”.
  2. Open the shortcut’s details (the ⓘ button, or the name menu → Details) and turn on Show in Share Sheet. In the “Receive … from Share Sheet” line at the top, tap the input types and leave only Safari web pages selected.
  3. Add the action Run JavaScript on Web Page (on a Mac: Run JavaScript on Active Safari Tab). On iPhone and iPad it uses the Shortcut Input as the page. Replace its script with this:
    var page = document.documentElement.cloneNode(true);
    page.querySelectorAll("script, style, noscript").forEach(function (el) {
      el.remove();
    });
    completion(JSON.stringify({
      url: document.URL,
      title: document.title,
      html: "<!DOCTYPE html>" + page.outerHTML,
      source: "shortcut"
    }));
  4. Add Get Contents of URL. Set the URL to https://www.readsooner.com/api/save, then tap Show More:
    • Method: POST
    • Headers: add Authorization with the value Bearer followed by your token, and Content-Type with the value application/json
    • Request Body: File, and choose the JavaScript Result variable
  5. Add Get Dictionary Value: get the value for the key message in Contents of URL.
  6. Add Show Notification and put the Dictionary Value in it. It will say “Saved to ReadSooner”.
  7. Try it: in Safari, open an article, tap Share and choose the shortcut. The first time, allow it to run JavaScript on the site (choose Always Allow).

Shortcut 2: “Save link to ReadSooner” (other apps)

  1. Make a new shortcut, turn on Show in Share Sheet, and leave only URLs and Text as input types.
  2. Add Get URLs from Input (from the Shortcut Input), then Get Item from List (First Item).
  3. Add Get Contents of URL with the URL https://www.readsooner.com/api/save. Under Show More: Method POST; header Authorization = Bearer + your token; Request Body JSON with two Text fields: url set to the Item from List variable, and source set to shortcut.
  4. Add Get Dictionary Value for message and Show Notification, as in Shortcut 1.

Links saved this way are downloaded by the server. Pages behind a login or paywall then show as “Preview only”; open them in Safari and use Shortcut 1 to keep the full copy.