How to Turn a Website URL into a PDF with Zapier and a Screenshot API
Build a Zap that turns a URL into a PDF, check how the screenshot API returns the file, and route it reliably to storage, email, or another app.
To turn a website URL into a PDF with Zapier, start with a trigger that provides the URL, add a screenshot API action configured for PDF output, then map the tested PDF result into a storage, email, or document action. First check what the API action actually returns: it may provide a file object, a download URL, raw PDF bytes, or an asynchronous job. Configure the next step for that specific result; those response types are not interchangeable.
Zapier lists a Screenshot API action called “Take a Screenshot.” Its required inputs include the URL or website and output format, and its listing also shows a file type and rendering controls. See the Screenshot API listing on Zapier. For APIs without a suitable Zapier app action, use Webhooks by Zapier or API by Zapier.
1. Choose a trigger that supplies a URL
A Zap begins when an event occurs. Choose a trigger that creates, receives, or exposes the page URL you want to archive. Common patterns include a form submission, a new record, a scheduled workflow that reads a list, or a webhook carrying a URL.
- Create a Zap and select the source app and trigger event.
- Test the trigger with a representative event.
- Identify the exact field containing the complete page URL, including its scheme such as
https://. - Check that the field is not blank and is a webpage URL rather than a link to an existing file.
For a first test, use a public page that loads without a login. Later, test representative pages from your real workflow, including JavaScript-heavy pages, long pages, and pages that require authenticated access if that applies.
2. Add the screenshot API action
In Zapier, add the Screenshot API app and choose Take a Screenshot. Connect the account if prompted, map the trigger’s URL field into URL or Website, and choose PDF under Output Format if the action exposes it. Set the file type and capture options only when they apply to PDF output and are supported by the integration.
The Zapier listing exposes controls such as full-page capture, delay, load event, width and height, lazy loading, retina, dark mode, cookies, headers, and selector capture. It does not establish that every setting applies to PDF output or describe the exact output transfer format. Check the action’s current field descriptions and inspect the test output before configuring later steps.
Choose PDF presentation settings
Where the selected provider supports them, set the page format, orientation, margins, and whether to print background graphics. A documented URL-to-PDF API, for example, describes A4, Letter, Legal, A3, and Tabloid formats; portrait or landscape orientation; CSS-unit margins; background printing; header and footer templates; and wait strategies. These are examples of provider-specific controls, not a promise that all APIs expose identical fields. Review the example PDF API reference.
| Setting | When to adjust it | What to check |
|---|---|---|
| Paper format | Choose a standard page size required by the recipient or print workflow. | Confirm the provider accepts the format name you select. |
| Orientation | Use landscape for content that is wider than it is tall, such as some reports or tables. | Check for clipped or unusually small text after rendering. |
| Margins | Set margins for printing, filing, or a consistent document layout. | Margins may use units such as centimeters, pixels, or provider-specific values. |
| Print backgrounds | Enable this when background colors or images are part of the page’s meaning. | It may increase file size; verify the resulting document. |
| Wait behavior | Use a provider’s load, DOM-ready, network-idle, or delay options when rendering finishes too early. | Longer waits can increase job duration. A wait setting cannot guarantee access to content behind a login or bot check. |
| Full-page or selector capture | Use full-page output for a whole article, or a selector when only one region is needed and PDF capture supports it. | Check whether the chosen option changes PDF pagination or is limited to image output. |
3. Test the output before mapping the next step
Run the screenshot action test and inspect the returned sample. Determine whether it contains a Zapier file object, a downloadable URL, binary data, or a job identifier. A PDF endpoint can return raw bytes with an application/pdf content type, while a Zapier integration may represent the result differently. The Screenshot API listing does not specify a universal transfer representation, so rely on the actual test result and provider documentation.
- File object: Map the file field directly into a destination action that accepts files.
- Download URL: Map the URL into a destination that can fetch files from URLs. If the link is temporary or signed, run the destination step soon enough for it to remain valid.
- Raw bytes: Confirm that the next action accepts binary content or a file object. Do not map a long encoded or binary payload into an ordinary text field.
- Job ID or accepted response: The PDF is not ready yet. Add the provider’s documented polling or callback flow, then pass the completed file or link to the destination.
Zapier’s Webhooks guide states that webhook actions have a maximum payload size of 5 MB and that rate limits apply. Large PDFs may therefore be unsuitable for direct transfer through a webhook action. Destination apps and other Zapier steps may have separate limits. Check Zapier’s webhook action limits.
4. Send the PDF to storage, email, or another app
Add the destination action after the test confirms the output shape. For file storage, map the PDF file or supported download URL and set a useful filename if the destination offers one. For email, map the PDF into an attachment field that accepts files. For a document system, check whether its action accepts an uploaded file, a public URL, or both.
- Choose the destination app and action, such as uploading a file or sending an attachment.
- Map the PDF field identified in the previous step.
- Map useful metadata from the trigger, such as the source URL or record name, into the destination’s title or filename fields.
- Test the destination action and open the resulting PDF. Check page breaks, orientation, margins, background graphics, and whether the file opens.
- Turn on the Zap only after the whole path succeeds with representative input.
Use Webhooks by Zapier or API by Zapier when needed
If the provider lacks a suitable Screenshot API action, Zapier can call external APIs. Webhooks by Zapier supports GET, POST, PUT, and Custom Request actions, with request data and basic authentication or no authentication. API by Zapier supports API keys and OAuth2 as well as no authentication; credentials are stored in an app connection. Choose based on the provider’s endpoint, required authentication, and the kind of response the following Zap step can handle. Compare Zapier’s API request options.
Configure an API request
- Read the provider’s API documentation and identify its PDF endpoint, HTTP method, authentication scheme, required URL field, PDF settings, and response behavior.
- For a simple request that needs no authentication or basic authentication, configure a Webhooks by Zapier action. Put query parameters in the data fields where appropriate; Zapier recommends not putting them in the URL field.
- For an API key or OAuth2, consider API by Zapier so credentials are kept in an app connection rather than ordinary step fields. Use the provider’s documented header or query parameter format.
- Map the trigger URL and only the PDF options the provider documents. Use the correct content type and payload serialization for the endpoint.
- Test and inspect the response. Add a follow-up retrieval or callback path if the API returns a job instead of a completed PDF.
Do not copy a request body from one screenshot provider into another API without checking its documentation. Parameter names, authentication, response format, limits, and asynchronous behavior vary.
Or skip the browser setup
ScreenshotNeo is a website screenshot API with PDF output and a Zapier integration. It handles the browser rendering request, so your Zap can focus on supplying a URL and routing the resulting file. See the ScreenshotNeo API documentation for current request details and PDF settings.
curl -G "https://api.screenshotneo.com/v1/shot" \
-d access_key=YOUR_API_KEY \
--data-urlencode url=https://stripe.com \
-d output=pdf \
-o page.pdf
import requests
r = requests.get(
"https://api.screenshotneo.com/v1/shot",
params={
"access_key": "YOUR_API_KEY",
"url": "https://stripe.com",
"output": "pdf",
},
timeout=90,
)
r.raise_for_status()
with open("page.pdf", "wb") as f:
f.write(r.content)
const q = new URLSearchParams({
access_key: 'YOUR_API_KEY',
url: 'https://stripe.com',
output: 'pdf',
});
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`ScreenshotNeo returned ${res.status}`);
const bytes = new Uint8Array(await res.arrayBuffer());
await Bun.write('page.pdf', bytes);
Cookie banners, newsletter popups, and chat widgets are removed before capture; each cleanup step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers report the page verdict and billing status. ScreenshotNeo also provides an MCP server for AI agents, with take_screenshot, get_page_info, and capture_pdf tools. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots. All features are on every plan.
Sign up for ScreenshotNeo and get 1,000 free screenshots a month, with no card required.
Reliability, performance, and cost
- Test more than one page type: A public static page is a useful smoke test, but it does not prove a dynamic page, authenticated page, or long document will render the same way. Use representative URLs.
- Set waits deliberately: A short wait can capture a page before its content appears; an unnecessarily long wait adds latency. Use the API’s documented load condition or selector wait when available, and test the output.
- Expect file size to vary: Page length, embedded imagery, and printed backgrounds affect the resulting document. Large payloads can encounter webhook or destination limits.
- Handle asynchronous responses: For jobs that complete later, use the provider’s documented callback or retrieval process. Do not assume that an initial successful HTTP response means the PDF is ready.
- Protect credentials: Use a secured app connection or the provider’s recommended authentication mechanism. Avoid exposing API keys in public URLs, logs, or downstream content.
- Estimate workflow cost from actual usage: Account for the screenshot API’s plan and billing rules, Zapier plan and task usage, storage, and any email or destination limits. The research sources do not establish comparable prices or rendering benchmarks across providers.
Troubleshooting
| Symptom | Likely cause | What to do |
|---|---|---|
| The URL field is empty or the request fails validation. | The trigger field was mapped incorrectly, is blank, or does not contain a complete URL. | Inspect trigger test data, remap the URL field, and test with a complete public URL beginning with https://. |
| The action returns an image instead of a PDF. | Output format was left at its default or the chosen action does not support PDF in that field. | Select PDF in the action or use an endpoint that documents PDF output. Confirm the response content type or returned file name. |
| The downstream step has no file to attach. | The API returned a URL, bytes, or a job ID rather than a Zapier file object. | Inspect the action’s test output and use a destination field compatible with that response. For asynchronous jobs, retrieve the completed artifact first. |
| The webhook request fails or is rejected for size. | Request configuration may be malformed, a rate limit may apply, or the action payload may exceed Zapier’s documented 5 MB maximum. | Check method, payload format, headers, and response details. For a large PDF, use a supported hosted-file URL or a destination-specific upload path instead of transferring the whole file in a webhook action. |
| The PDF is blank or misses page content. | The page may need more time to render, its content may require JavaScript or authentication, or the provider may have encountered a blocked or failed load. | Try a documented wait option, supply required cookies or headers using the provider’s supported method, and test the URL directly. Check the provider’s returned status or verdict if available. |
| Text or images are clipped or pagination looks wrong. | Paper format, orientation, margins, print backgrounds, or page-specific print styling may not suit the page. | Adjust supported PDF settings and inspect the rendered file. Check the source page’s print layout where you control it. |
| Authentication fails. | The key may be in the wrong header or parameter, the connection may be invalid, or credentials may have been exposed or rotated. | Follow the provider’s auth documentation, refresh the connection, and prefer API by Zapier for APIs that require an API key or OAuth2. Zapier distinguishes its authentication options by request tool. See API by Zapier connection setup. |
| The PDF step succeeds but the next action cannot open the file. | The destination may expect a file object while it received a URL or text, or the file may exceed that app’s limits. | Use the destination’s documented upload or attachment field, verify the file is a PDF, and check destination-specific size and access requirements. |
Frequently asked questions
Can a Zap create a PDF from a URL without code?
Yes. Use a screenshot API app action if it offers PDF output, map the trigger URL, and connect the returned file or link to a compatible destination action.
Does every screenshot API return a downloadable file the same way?
No. An API or integration may return a file object, URL, raw bytes, or asynchronous job information. Inspect its test result and documentation before mapping the next step.
Can I email the PDF from the same Zap?
Yes, if the email action accepts the returned file representation and the PDF fits its attachment limits. Test the attachment with the actual destination action.
What if my API has no Zapier app?
Use Webhooks by Zapier for suitable requests with no authentication or basic authentication, or API by Zapier when the API requires OAuth2 or an API key. Choose according to the endpoint’s authentication and response requirements.


