PDFs 

Turn any page or HTML into a PDF.
=================================

Send a URL or your own HTML. screeenly prints it with Chrome and returns a PDF with the paper size, margins and orientation you choose. Invoices, reports and archives come out looking like the web page.

 [ Start for free → ](https://3.screeenly.com/app/register) [ Try the playground ](https://3.screeenly.com/playground) 

    report.pdf · A4 · portrait 

 paper\_format=A4 

  01 · Ask for a PDF POST to `/v1/shots` with `file_type=pdf` and a paper format.

 02 · Chrome prints it The page loads, scripts run and the print stylesheet applies. Backgrounds can be included.

 03 · Download the PDF The response contains a `shot_url` to the file. We host it for 24 hours.

    API requests handled 21,732,862   Launched as open source July 2014 

Every request runs in real Chrome. Revenue, customers and usage are public too.

 [See the open startup numbers →](https://3.screeenly.com/open) 

  [Page setup](#options) [Code examples](#code) [From your own HTML](#html) [Use cases](#use-cases) [Questions](#faq) 

Page setup
----------

 Choose a standard paper format or set a custom size. Add margins, switch to landscape and decide whether backgrounds print.

 ParameterWhat it does  `file_type`Set to `pdf`. `paper_format`A0 to A6, Letter, Legal, Tabloid or Ledger. `paper_width` `paper_height`A custom paper size in millimeters, used instead of a format. `paper_orientation` `portrait` or `landscape`. `paper_margins_top` `…_right, …_bottom, …_left`Margins around the page. Send all four together. `pdf_show_background`Print background colors and images. On by default. `css_media_type`Use `print` to apply the page's print stylesheet. `show_browser_header_and_footer`Add a header and footer with `header_html` and `footer_html`. `initial_page_number`Start numbering at a page other than 1.  

Code examples
-------------

 curl 

```
curl --request POST \
  --url https://3.screeenly.com/api/v1/shots \
  --header "authorization: Bearer $token" \
  --data url=https://example.com/report \
  --data file_type=pdf \
  --data paper_format=A4 \
  --data paper_orientation=landscape
```

From your own HTML
------------------

 Generating invoices or reports in your app? Render the template to a string, post it as `html` and get a PDF back. No public URL needed.

 php 

```
$pdf = Http::withToken($token)
    ->asForm()
    ->post('https://3.screeenly.com/api/v1/shots', [
        'html' => view('invoices.show', ['invoice' => $invoice])->render(),
        'file_type' => 'pdf',
        'paper_format' => 'A4',
    ])
    ->json('data.shot_url');
```

A URL cannot end in .pdf

screeenly renders web pages. To convert a page that is already a PDF, link to it directly instead.

What you can build with it
--------------------------

Invoices and receipts

Style them with the CSS you already know and print them as PDFs.

Reports

Turn a dashboard or a data page into a weekly PDF for your team.

Archives

Keep a PDF copy of an article, a contract page or a terms of service.

Print-ready documents

Certificates, tickets and labels with exact page sizes.

screeenly is not a web scraper

screeenly loads pages the way a regular browser does. It cannot get past bot protection such as Cloudflare challenges, CAPTCHAs or other checks that decide a visitor is not human, and it does not try to. Use it on your own pages and on pages you are allowed to load.

Questions
---------

   Which units do margins use?  Custom paper sizes and margins are in millimeters. Margins can be up to 250.

   Can I add page numbers?  Yes. Enable `show_browser_header_and_footer` and pass your own `footer_html`.

   Are web fonts and CSS supported?  Yes. It is a real Chrome, so web fonts, flexbox, grid and your print stylesheet work as they do in the browser.

   How long is the PDF available?  We host the file for 24 hours. Download it if you need to keep it.

   More from screeenly [     Screenshots ](https://3.screeenly.com/features/screenshots) [     Your own HTML ](https://3.screeenly.com/features/your-own-html) [     Rendered HTML ](https://3.screeenly.com/features/rendered-html) [     MCP for agents New ](https://3.screeenly.com/features/mcp) [     OG image templates Soon ](https://3.screeenly.com/features/og-image-templates) [     No-code integrations Soon ](https://3.screeenly.com/features/no-code-integrations)
