REST API v1

Dokumentasi API img2htm

Ubah gambar menjadi HTML siap produksi dengan 1 panggilan API
API img2htm menerima file gambar atau URL dan mengembalikan HTML, CSS, gambar terpisah, JSON terstruktur, dan laporan kualitas.

Mulai

API img2htm menerima file gambar atau URL dan mengembalikan HTML, CSS, gambar terpisah, JSON terstruktur, dan laporan kualitas. 50 panggilan pratinjau pertama setiap bulan gratis.

  1. Buat akunBuat kunci di dasbor Anda
  2. POST https://img2htm.com/api/v1/reconstruct with image_file, image_url or image_file_b64.
  3. Receive HTML, CSS, separated assets, structured JSON and a quality report in one response.

Mudah diintegrasikan

Contoh untuk cURL, Node.js, Python, PHP, Ruby, Java, .NET, dan Swift.

HTML + CSS + JSON

Satu panggilan API mengembalikan HTML, CSS, gambar terpisah, JSON terstruktur, dan laporan kualitas.

Apa itu kredit?

Satu kredit mengonversi penuh satu gambar hingga 15,000 piksel vertikal. Gambar yang lebih panjang otomatis dihitung sebagai beberapa kredit. Pratinjau gratis.

Autentikasi

Kirim kunci API Anda di header Authorization: Bearer atau header X-Api-Key.

Authorization: Bearer i2h_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# or
X-Api-Key: i2h_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Contoh kode

curl -X POST https://img2htm.com/api/v1/reconstruct \
  -H "Authorization: Bearer i2h_your_api_key" \
  -F "image_file=@product-page.jpg" \
  -F "mode=full" \
  -F "format=json"

Format output

formatDeskripsi
jsonDefault. JSON object with html, css, content (structured sections + texts), assets (separated image URLs), quality and urls.
htmlReturns the reconstructed index.html document directly (text/html).
zipStreams a ZIP with index.html, styles.css, content.json, quality.json, sections/ and assets/.

Respons

{
  "id": "3f9a1c2b7d4e6f80a1b2",
  "status": "done",
  "mode": "full",
  "credits_used": 2,
  "width": 860,
  "height": 24000,
  "sections": 16,
  "quality": {
    "text_accuracy": 97.4,
    "visual_fidelity": 94.1,
    "structure": 95.2,
    "sections": 16,
    "seconds": 41.8,
    "provider": "anthropic:claude-sonnet-5",
    "review": [],
    "auto_pass": true
  },
  "urls": {
    "html": "https://img2htm.com/api/v1/jobs/3f9a1c2b7d4e6f80a1b2/html",
    "zip": "https://img2htm.com/en/convert/3f9a1c2b7d4e6f80a1b2/download",
    "preview": "https://img2htm.com/en/convert/3f9a1c2b7d4e6f80a1b2/preview"
  },
  "assets": ["https://img2htm.com/files/results/3f9a1c2b7d4e6f80a1b2/assets/s01-a01.png"],
  "html": "<!DOCTYPE html> ...",
  "css": "/* img2htm base styles */ ...",
  "content": { "sections": [ ... ], "texts": [ ... ] }
}

Referensi API

Reconstruct an image

POST/api/v1/reconstruct
ParameterTipeDeskripsi
image_file wajib*fileMultipart upload. JPG, PNG or WebP, up to 25 MB. *One of image_file, image_url, image_file_b64 is required.
image_urlstringPublic HTTP(S) URL of the image.
image_file_b64stringBase64-encoded image data.
mode opsionalfull | previewfull (default) converts the whole image and charges 1 credit per 15,000 vertical px. preview converts only the top 3,000 px for free.
lang opsionalstringOutput document language tag: ko, en, cn, tw, ja, mn, ru, th, id, vi, ar. Text is kept in its source language; this sets <html lang>/dir.
format opsionaljson | html | zipResponse format (see above).
async opsional1Return 202 Accepted immediately; poll GET /api/v1/jobs/{id} for the result.

Get a job

GET/api/v1/jobs/{id}

Returns the job object. Add ?include_html=1 to embed html, css and content.

Get the HTML document

GET/api/v1/jobs/{id}/html

Returns index.html as text/html.

Account

GET/api/v1/account
{ "email": "you@example.com", "credits": 38, "pixels_per_credit": 15000, "key": "i2h_ab12cd34…", "calls": 1207 }

Batas permintaan

60 gambar per menit per API key. When exceeded the API responds 429 Too Many Requests with a Retry-After: 60 header. Enterprise plans can raise this limit.

Exponential backoff

On 429 or 5xx, retry with exponential backoff: wait 1s, 2s, 4s, 8s … up to 5 attempts, adding random jitter. Never retry 4xx errors other than 429.

delay = min(60, (2 ** attempt) + random(0, 1))

Kode kesalahan

HTTPDeskripsi
400Missing image or unreadable URL.
401Missing, invalid or revoked API key.
402Insufficient credits. Response includes credits_needed and credits_available.
413File exceeds the upload limit.
415Unsupported image type.
429Rate limit exceeded.
500Conversion failed. Credits charged for the job are refunded automatically; error contains the reason.

Library + Alat

Changelog API

Changelog API

Rebut kembali web yang terjebak dalam piksel

Kredit gratis saat mendaftar. Tanpa kartu kredit.