Skip to content
Decision treeBy 6 min read

How to save a web page: 3 questions, 8 endings

The right way depends on what you must keep and how often. Answer, and the page names one way, its steps and what it misses.

Question 1 of at most 3

What do you need to keep?

Pick the closest one. You can go back at any step.

The whole tree on one page

6 questions and 8 endings. Nobody answers more than 3. Two of the choices on the first question lead to the same place, because a record and a backup both ask whether the page is public.

What do you need to keep?

The endings side by side

Plan numbers were read from the pricing page on 2026-10-31: Free is 100 screenshots a month and Starter is $19 for 3,000.

The 8 ways to save a page: what each costs, keeps and limits
WayCostsKeepsLimit
Your browser, or the box on the home pageFreeThe look of one page, as a PNGBy hand, every time
Your own browser, while you are signed inFreeThe look of one signed-in pageBy hand, and the file is private data
A screenshot API callFree for 100 a month, then from $19The look of many pages, as PNG, JPEG or WebPNeeds a script, and a key to keep secret
An API call that carries a session cookieFree for 100 a month, then from $19The look of signed-in pages, as a pictureCookies expire, and the secret needs care
Print to PDF in your browserFreeThe words of one page, searchablePrint layout, by hand
A PDF from the APIFree for 100 a month, then from $19The words of many pages, searchablePaper layout, and a key to keep secret
Save Page Now, plus your own captureFreeA public copy with a permanent addressOne page at a time, public pages only, some sites refuse
Your own capture, dated and kept privateFree for one page, or from the plans for manyA private record of a page, with a date and a hashNo outside witness

Each ending, with its steps

The steps are short on purpose. Each card also says what you give up, because every way to save a page loses something.

Your browser, or the box on the home page

For one public page, one time, you do not need an API. Use the tools you already have.

Fits: One public page that you want as a picture, once.

Steps

  1. Chrome DevTools can capture a full-page screenshot. Open the Command Menu with Ctrl+Shift+P (Windows, Linux) or ⌘+Shift+P (Mac), type "screenshot" and pick the command that captures the full page.
  2. Or paste the address into the box on the home page of CurlShot. It works without an account.
  3. Open the file and scroll through it before you rely on it. Look for empty boxes where lazy images should be, and for a cookie banner over the text.

What you give up

  • You repeat the steps for every page and every day.
  • Your browser draws the page for your screen, your language and your login. Another person gets a different picture.

Your own browser, while you are signed in

A page that needs your account is visible to your browser, so capture it there and keep the file private.

Fits: One page behind a login that you want as a picture, once.

Steps

  1. Use the same two ways as for a public page: the DevTools full-page screenshot, or Print with Save as PDF as the destination.
  2. Do not send the address to an outside capture tool to "save" it. Without your session it captures the login form, not your page.
  3. Check the file for names, numbers and email addresses before it leaves your computer.

What you give up

  • Nothing here can be repeated by a machine. The next capture is your time again.
  • The file may hold personal data. It is yours to protect.

A screenshot API call

When there are many pages, or the same page every week, one request per page does the work and the file name is yours to choose.

Fits: Public pages, many of them or on a schedule, as PNG, JPEG or WebP.

Steps

  1. Create an account and copy the access key. The Free plan allows 100 screenshots a month and needs no card.
  2. Send one request per page. Add full_page=true to get the page from top to bottom instead of the first screen.
  3. For a list of addresses, read the bulk article. For the same page every day, read the change-monitoring article.

What you give up

  • A picture has no selectable text. If you need to search the words, take the PDF ending.
  • After the free 100 a month, more screenshots need a paid plan: Starter is $19 for 3,000.
Terminal
curl "https://curlshot.com/api/v1/screenshot?url=https://example.com&full_page=true" \
  -H "X-Access-Key: YOUR_ACCESS_KEY" \
  --output page.png

An API call that carries a session cookie

Send the cookie of a signed-in user with the request. The cookie goes to the site you capture and to nobody else.

Fits: Pages behind a login, many of them or on a schedule, as a picture.

Steps

  1. Make an account on the site that is only for captures, and sign in with it. Do not use your own account.
  2. Copy its session cookie and send it in the cookies field of a POST request.
  3. Expect the cookie to expire. When the picture shows the login form, the cookie is dead: get a new one.

What you give up

  • You now store a login secret next to your script. Treat it like a password.
  • The picture shows what that one user sees, not what every user sees.
Terminal
curl -X POST "https://curlshot.com/api/v1/screenshot" \
  -H "X-Access-Key: YOUR_ACCESS_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://your-app.example/dashboard",
    "full_page": true,
    "cookies": [
      { "name": "session", "value": "PASTE_THE_COOKIE_VALUE_HERE", "domain": "your-app.example" }
    ]
  }' \
  --output dashboard.png

A PDF from the API

Set format=pdf and the answer is a document with text you can select and search. It always covers the whole page.

Fits: Many pages, or the same page every week, kept as documents.

Steps

  1. Send the request below with your access key. You do not need full_page: a PDF always holds the page from top to bottom.
  2. Choose the paper with pdf_paper_format (a4 by default, letter for the United States).
  3. For pages behind a login, add the cookies field as in the previous ending.

What you give up

  • The selector and clip options do not work with a PDF; they return an error.
  • A PDF is laid out for paper, so it may not look like the screen.
Terminal
curl "https://curlshot.com/api/v1/screenshot?url=https://example.com&format=pdf&pdf_paper_format=a4" \
  -H "X-Access-Key: YOUR_ACCESS_KEY" \
  --output page.pdf

Save Page Now, plus your own capture

A public archive gives the copy a permanent address that other people can open. Keep your own file too.

Fits: A public page that may change or vanish, or that you may need to point to later.

Steps

  1. Put the address into the Save Page Now form of the Internet Archive. It saves the one page, with its images and CSS, and gives you a permanent URL.
  2. Write that URL down next to the original address and the date.
  3. Make your own capture as well, from the ending that fits, and keep both. Some sites forbid crawling, and then the archive cannot save them.

What you give up

  • The archive saves a single page, not the pages it links to, and not a whole site.
  • The copy can be shared and linked to, so treat it as published. Never send a private page here.
  • The archive copy is held by someone else. Your own file is the one you control.

Your own capture, dated and kept private

A private page must not go to a public archive. Capture it yourself and write down what makes it a record.

Fits: A private or signed-in page that you need to prove or keep.

Steps

  1. Capture it with the browser ending or with the API call that carries a cookie. Take a PDF as well as a picture if the words matter.
  2. Note the full address, the date, the time and the time zone, and who captured it.
  3. Compute a SHA-256 hash of each file right away and keep it in your notes, so a later change shows. Store the originals untouched.

What you give up

  • Nobody outside vouches for the date. If a dispute is likely, ask a lawyer how your court treats web captures.
  • The files hold whatever the page held, including personal data.

Where the outside facts come from

Chrome can capture a full-page screenshot in DevTools.[1] The Command Menu opens with Ctrl+Shift+P or ⌘+Shift+P.[2] The print window of Chrome lets you pick a destination.[3] Save Page Now saves one page with its images and CSS and gives it a permanent URL.[4] Each source was opened on 2026-10-31.

What none of them does

None of these is a copy that still works like the page. A picture holds the pixels. A PDF holds the words, laid out for paper. Neither keeps the links alive or runs the page's scripts. Save Page Now keeps the images and CSS of the page, but not the pages it links to, and it cannot start a crawl of a whole site.[4]

If you need a record that other people can rely on, a single capture is thin evidence on its own. The evidence article lists what to write down next to the file.

When you are ready to automate the picture or the PDF, the plans are on the pricing page, and a free account is enough to try the API calls above.

Questions people ask

What is the best way to save a web page?

It depends on what you must keep. For the look of one public page, use a full-page screenshot from your browser. For the words, print to PDF. For many pages or a schedule, use a screenshot API. For something other people must be able to check, use a public archive and keep your own file. The tree on this page asks at most 3 questions to get you to one of 8 ways.

Can I save a page behind a login to a public archive?

You should not. Save Page Now works from the address you give it, not from your signed-in browser, and anything it does save gets a permanent URL that can be shared. For a private page, capture it yourself from a signed-in browser, or send a session cookie with an API request, and keep the files private.

Is a screenshot or a PDF better for saving a page?

A screenshot keeps how the page looks, as one image. A PDF keeps the text selectable and searchable and covers the whole page, but it is laid out for paper. With CurlShot you choose with the format option: png, jpeg or webp for a picture, pdf for a document.

How do I save a web page as a PDF with an API?

Send a screenshot request with format=pdf and your access key, and write the answer to a .pdf file. You do not need full_page, because a PDF always covers the whole page. Choose the paper with pdf_paper_format; a4 is the default and letter is for the United States.

Is a saved screenshot enough as proof of what a page said?

Rarely on its own. A record needs the full address, the date, the time and time zone, the whole page, and a hash of each file taken right after capture. A public archive copy adds a witness you do not control, for pages that are public.

Sources

  1. [1]Chrome for Developers, 4 ways to capture screenshots with DevTools. Checked .
  2. [2]Chrome for Developers, Run commands in the Command Menu. Checked .
  3. [3]Google Chrome Help, Print from Chrome. Checked .
  4. [4]Internet Archive Help Center, Save Pages in the Wayback Machine. Checked .

Screenshot any page in one step

Paste an address into CurlShot and download the screenshot. A free account gives you 100 screenshots every month. No card needed.