PDF из веб-страницы: PDF API
POST /v1/browser/pdf открывает страницу или готовую разметку в headless Chromium и печатает её в PDF. Ответ —
сам файл (application/pdf), а не ссылка. Формат запроса совместим с Browserless /pdf.
curl -X POST "https://proxy.seyka.ru/v1/browser/pdf" \ -H "Authorization: Bearer $SEYKA_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "url": "https://example.com", "options": { "format": "A4", "printBackground": true, "margin": {"top": "1cm", "right": "1cm", "bottom": "1cm", "left": "1cm"} } }' \ --output page.pdfТело — общие параметры страницы (url или html,
ожидания, куки, заголовки) плюс объект options:
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
format |
string |
Letter |
A0–A6, Letter, Legal, Tabloid, Ledger |
landscape |
boolean |
false |
альбомная ориентация |
scale |
number |
1 |
масштаб, 0.1–2 |
printBackground |
boolean |
false |
печатать фоновые цвета и изображения |
margin |
object |
— | поля top, right, bottom, left в единицах CSS: "1cm", "10px", "0.5in" |
pageRanges |
string |
все | страницы для вывода, например "1-3" или "1,3,5" |
width, height |
string |
— | произвольный размер листа вместо format, например "8.5in" |
preferCSSPageSize |
boolean |
false |
взять размер из CSS-правила @page |
displayHeaderFooter |
boolean |
false |
печатать колонтитулы |
headerTemplate, footerTemplate |
string |
— | HTML колонтитулов |
Колонтитулы
Заголовок раздела «Колонтитулы»В шаблонах колонтитулов подставляются значения элементов с классами date, title, url, pageNumber и
totalPages. Колонтитулы печатаются внутри полей, поэтому задайте margin.top и margin.bottom, а размер
шрифта — явно в шаблоне:
{ "url": "https://example.com", "options": { "format": "A4", "displayHeaderFooter": true, "headerTemplate": "<div style='font-size:10px;width:100%;text-align:center'>Отчёт</div>", "footerTemplate": "<div style='font-size:10px;width:100%;text-align:center'>Стр. <span class='pageNumber'></span> из <span class='totalPages'></span></div>", "margin": {"top": "2cm", "bottom": "2cm"} }}Отчёт из своего HTML
Заголовок раздела «Отчёт из своего HTML»Передайте разметку в html вместо url — сервис отрендерит её и вернёт PDF:
const response = await fetch('https://proxy.seyka.ru/v1/browser/pdf', { method: 'POST', headers: { Authorization: `Bearer ${process.env.SEYKA_API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ html: '<html><body><h1>Отчёт</h1><p>Содержимое</p></body></html>', options: { format: 'A4', printBackground: true }, }),});if (!response.ok) throw new Error((await response.json()).error);await Bun.write('report.pdf', await response.arrayBuffer());200 с телом application/pdf. Для запроса по url заголовки X-Response-Code, X-Response-Status и
X-Response-URL сообщают код сайта и конечный адрес после редиректов. Ошибки загрузки — JSON с error,
errorKind и code, см. ошибки Browser API.
Если нужен не файл, а текст из чужого PDF-документа, используйте Smart Scrape: он извлекает текстовый слой PDF по ссылке.
Каждый вызов оплачивается по цене PDF; кэша ответов нет (X-Cache: DISABLED). Цены — в
таблице цен.