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?
How the page looks
How many pages, and how often?
One page, one time
Do you have to sign in to see the page?
No, anyone can open it
Yes, it needs my account
Many pages, or the same page again and again
Do you have to sign in to see the pages?
No, anyone can open them
Yes, they need an account
The text, searchable
How many pages, and how often?
One page, one time
Many pages, or the same page again and again
A record that the page said this on a day
Can anyone open the page without signing in?
Yes, it is public
No, it is private or needs an account
A copy in case the page is taken down
Can anyone open the page without signing in?
Yes, it is public
No, it is private or needs an account
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.
| Way | Costs | Keeps | Limit |
|---|---|---|---|
| Your browser, or the box on the home page | Free | The look of one page, as a PNG | By hand, every time |
| Your own browser, while you are signed in | Free | The look of one signed-in page | By hand, and the file is private data |
| A screenshot API call | Free for 100 a month, then from $19 | The look of many pages, as PNG, JPEG or WebP | Needs a script, and a key to keep secret |
| An API call that carries a session cookie | Free for 100 a month, then from $19 | The look of signed-in pages, as a picture | Cookies expire, and the secret needs care |
| Print to PDF in your browser | Free | The words of one page, searchable | Print layout, by hand |
| A PDF from the API | Free for 100 a month, then from $19 | The words of many pages, searchable | Paper layout, and a key to keep secret |
| Save Page Now, plus your own capture | Free | A public copy with a permanent address | One page at a time, public pages only, some sites refuse |
| Your own capture, dated and kept private | Free for one page, or from the plans for many | A private record of a page, with a date and a hash | No 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
- 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.
- Or paste the address into the box on the home page of CurlShot. It works without an account.
- 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
- Use the same two ways as for a public page: the DevTools full-page screenshot, or Print with Save as PDF as the destination.
- Do not send the address to an outside capture tool to "save" it. Without your session it captures the login form, not your page.
- 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
- Create an account and copy the access key. The Free plan allows 100 screenshots a month and needs no card.
- Send one request per page. Add full_page=true to get the page from top to bottom instead of the first screen.
- 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.
curl "https://curlshot.com/api/v1/screenshot?url=https://example.com&full_page=true" \
-H "X-Access-Key: YOUR_ACCESS_KEY" \
--output page.pngAn 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
- Make an account on the site that is only for captures, and sign in with it. Do not use your own account.
- Copy its session cookie and send it in the cookies field of a POST request.
- 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.
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.pngPrint to PDF in your browser
A PDF keeps the text selectable and searchable, and the print window of Chrome can make one.
Fits: One page, one time, when you need to search or quote the words.
Steps
- In Chrome, open the page and choose File, then Print (Ctrl+P, or ⌘+P on a Mac). In the window that opens you pick a destination, and Save as PDF is one of them.
- Check the paper size and margins in the same window before you save.
- Open the PDF and look at the page breaks. The browser lays the page out for paper, which can differ from what you saw on screen.
What you give up
- The print layout may hide parts of the page that you saw on screen, such as menus, or reflow it.
- It is by hand, one page at a time.
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
- Send the request below with your access key. You do not need full_page: a PDF always holds the page from top to bottom.
- Choose the paper with pdf_paper_format (a4 by default, letter for the United States).
- 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.
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.pdfSave 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
- 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.
- Write that URL down next to the original address and the date.
- 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
- 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.
- Note the full address, the date, the time and the time zone, and who captured it.
- 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
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]Chrome for Developers, 4 ways to capture screenshots with DevTools. Checked .
- [2]Chrome for Developers, Run commands in the Command Menu. Checked .
- [3]Google Chrome Help, Print from Chrome. Checked .
- [4]Internet Archive Help Center, Save Pages in the Wayback Machine. Checked .
Read next
- ChecklistCapture a web page as evidence that holds upA checklist for saving a web page as a credible record: what to capture, how to fix the time with a hash and timestamp, and what makes a screenshot weak.
- PlaybookHow to screenshot a list of URLs in bulkScreenshot hundreds or thousands of URLs: a queue simulator that says how long it takes, a short Node.js script, and what fails at scale.
- ReferenceWeb page to PDF: paper sizes, margins, print CSSPaper sizes in millimetres, inches, CSS pixels and points, how margins and page breaks work in a PDF of a web page, and the print CSS that controls them.