This page was machine-translated. Spotted a mistake?Help improve it.
Skip to content

HTML to Image

Tangkap URL halaman web atau konten HTML mentah sebagai gambar screenshot. Mendukung emulasi perangkat (desktop, tablet, mobile), tangkapan halaman penuh, dan beberapa format output.

API Endpoint

POST /api/v1/tools/image/html-to-image

Menerima sebuah body JSON (bukan multipart). Tidak diperlukan unggahan file.

Parameters

ParameterTypeRequiredDefaultDescription
urlstringConditional-URL yang akan ditangkap (harus berupa URL valid)
htmlstringConditional-Konten HTML mentah yang akan dirender (1 hingga 5.000.000 karakter)
formatstringNo"png"Format output: jpg, png, webp
qualitynumberNo90Kualitas output untuk format lossy (1 hingga 100)
fullPagebooleanNofalseTangkap seluruh halaman yang dapat digulir, bukan hanya viewport
devicePresetstringNo"desktop"Emulasi perangkat: desktop, tablet, mobile, custom
viewportWidthnumberNo1280Lebar viewport kustom dalam piksel (320 hingga 3840, digunakan saat devicePreset adalah custom)
viewportHeightnumberNo720Tinggi viewport kustom dalam piksel (320 hingga 2160, digunakan saat devicePreset adalah custom)

Salah satu dari url atau html harus disediakan, tetapi tidak keduanya.

Device Presets

PresetWidthHeightMobile UA
desktop1280720No
tablet7681024No
mobile375812Yes
custom(ditentukan pengguna)(ditentukan pengguna)No

Example Request

Tangkap halaman web:

bash
curl -X POST http://localhost:1349/api/v1/tools/image/html-to-image \
  -H "Authorization: Bearer si_your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com", "format": "png", "fullPage": true, "devicePreset": "desktop"}'

Render konten HTML:

bash
curl -X POST http://localhost:1349/api/v1/tools/image/html-to-image \
  -H "Authorization: Bearer si_your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"html": "<div style=\"padding: 20px; background: #f0f0f0;\"><h1>Hello</h1></div>", "format": "png"}'

Example Response

json
{
  "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/screenshot.png",
  "originalSize": 0,
  "processedSize": 145000
}

Notes

  • Membutuhkan Chromium terpasang di server. Mengembalikan HTTP 503 bila layanan browser tidak tersedia.
  • URL divalidasi terhadap serangan SSRF (alamat jaringan privat/internal diblokir).
  • Endpoint ini dibatasi laju hingga 120 permintaan per jam.
  • originalSize selalu 0 karena alat ini menghasilkan gambar dari URL/HTML.
  • Nama file output adalah screenshot.<format>.
  • Bila halaman terlalu lama dimuat, permintaan mengembalikan HTTP 504 (gateway timeout).
  • Bila layanan browser berulang kali crash, ia dinonaktifkan sementara dan mengembalikan HTTP 503 dengan kode BROWSER_CRASHED.