---
name: "pdf123-url-to-pdf"
description: "Convert a live webpage into a PDF. Runs the PDF123 \"URL To PDF\" tool (pdf123.xyz) over its REST API with curl, no account needed. Use when the user wants this done to their file. Also known as: 网址转 PDF, URL a PDF, URL से PDF, رابط إلى PDF, URL para PDF, URL ke PDF, URL vers PDF, URL в PDF, URLからPDF, URL in PDF, URL을 PDF로, Trang web sang PDF, URL'den PDF'e, 網址轉 PDF, เว็บเพจเป็น PDF, Adres URL na PDF, Вебсторінка в PDF, URL naar PDF, Webbsida till PDF, URL σε PDF, Уебстраница към PDF, URL kuwa PDF."
compatibility: "Needs curl 7.76+ and outbound HTTPS to pdf123.xyz, or PDFX_API_BASE pointing at a self-hosted pdfx-server."
---

# URL To PDF (PDF123)

Convert a live webpage into a PDF.

Web version: https://pdf123.xyz/url-to-pdf · All tools: https://pdf123.xyz/skills/pdf123.md

## When to use

- Print a public static article to PDF
- Archive a CSS-based page that does not need JS
- Turn a simple documentation URL into a file

## Run it

Replace the sample file names and values with the user's, then run:

```bash
API="${PDFX_API_BASE:-https://pdf123.xyz}"
curl -sS --fail-with-body -X POST "$API/api/v1/convert/url/pdf" \
  -F "urlInput=your-urlInput" \
  --output-dir "pdf123-output/$(date +%Y%m%d-%H%M%S)" --create-dirs -OJ -w '%{filename_effective} %{content_type}\n'
```

## Inputs

Everything is `multipart/form-data`. The command above already sends each field with its default; keep them all and change only the values the user asked for, since some endpoints reject a missing optional field.

| Field | Type | Required | Default | Notes |
| --- | --- | --- | --- | --- |
| `urlInput` | text | yes |  | Webpage URL |

## Result

curl saves the result in a new `pdf123-output/<timestamp>/` directory under the server's file name and prints its path and content type. Several output files come back as one ZIP. Tell the user where the file is.

## Limits

- No JS, no cookies, no auth
- Not Chrome print
- Download name is always output.pdf

## Errors

- A non-zero curl exit means the request failed. The saved file then holds `application/problem+json`; read it and report its `detail` to the user instead of retrying blindly.
- `413`: the upload exceeds 100 MiB. `429`: wait for `Retry-After` seconds, then retry once.
- Send `X-API-KEY: $PDFX_API_KEY` only if the user has a PDF123 API key; anonymous calls work without it.

## Privacy

Files are uploaded to the API host, processed, and deleted once the response is sent. For confidential files, ask before uploading, or use a self-hosted server via `PDFX_API_BASE`.

## Authorized use only

Only fetch URLs you are authorized to retrieve. Do not use this tool to bypass authentication, paywalls, or access controls, or to copy material you are not allowed to reproduce.
