Skip to content

Documentation

Saved pages and any format

Any link can carry a saved copy of the page it points to: clean Markdown of the article, the whole page as plain text, a full-page screenshot, a PDF and a web archive, all from one load in a real browser, so they agree with each other. Copies stay as they were when the page changes or goes away. Saving is free; the daily allowance follows the plan.

curl https://snip.link/v1/links \
  -H "Authorization: Bearer $SNIP_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/menus/spring", "capture": true}'

The answer comes back at once with snapshot.formats: every format's URL. They work right away and fill in a few seconds later. capture takes true or a list of markdown, text, screenshot, pdf and archive; a shorter list saves faster.

Any ending

Add a format to any short link and get the page in it. No key needed for public links:

https://snip.link/spring-menu.md     Markdown, with a short header saying where it came from
https://snip.link/spring-menu.txt    the whole page as plain text
https://snip.link/spring-menu.jpg    a full-page screenshot (also .png, .webp, .avif)
https://snip.link/spring-menu.pdf    the page as a PDF
https://snip.link/spring-menu.html   a clean reading view
https://snip.link/spring-menu.json   what the page says about itself, and its Markdown
https://snip.link/spring-menu.csv    the page's tables (?table=2 for the second)
https://snip.link/spring-menu.mhtml  a web archive of the whole page
https://snip.link/spring-menu.svg    the link's QR code (.qr for PNG)
https://snip.link/spring-menu.rss    a feed of the page's saved versions
  • ?to=md on the short link works the same way. Only a real format counts, so a ?to= of your own still reaches the destination.
  • The first request for a format on a link with no copy saves the page and waits for it (up to about 20 seconds; a 202 with Retry-After after that). Later requests are instant.
  • An ending that is not a format answers 404 with the nearest one and the full list, so a person or an agent can correct course in one step.
  • When the link points to a file (a PDF, an image, a spreadsheet), its own ending gives the file as it was, and .md gives its text.
  • Text formats answer on the short link's own domain. Screenshots, PDFs, reading views and archives open from snipcontent.com, a separate domain for saved content, through a signed address that lasts two hours.

Getting the page in one call

Add "wait": true and the answer holds until the page is saved (up to about 25 seconds), with its Markdown in snapshot.markdown: one request turns a URL into a short link, a QR code and the page's words.

Reuse and freshness

A page anyone saved in the last hour is reused: the answer is instant and costs nothing. max_age sets the window in seconds, and 0 always loads the page again. Save a new version of a link any time with POST /v1/links/{link}/snapshots; a link keeps its newest versions, and ?v=<id> on any ending opens an older one.

Who can read a copy

  • snapshots: "public" (the default): anyone with the link can read its copies, and the first one asked for saves the page.
  • "private": only you, through the signed URLs the API returns, which work for a day. Password-protected links behave this way too.
  • "off": no copies are made.
  • Pages that ask not to be archived (noarchive) are skipped, and the answer says so. Deleting a link deletes its copies.

Fingerprints and dates

Every saved file carries a SHA-256 fingerprint in snapshot.fingerprints, and every format answers with Memento-Datetime (when it was saved) and a Link to the original, so a copy can be checked and cited.

Back to getting started