Social cards
Arabic Open Graph and Twitter card images generated from the same template as the page, so the preview on WhatsApp or X shows real shaped Arabic, not a row of boxes.
HTML or a public URL in, PNG out — the same Chromium engine, fonts and base CSS as the PDF product, so the image never disagrees with the document. Arabic shaping, joining and font composition are checked on every request; a raster image has no text layer, so that is the guarantee it can carry.
Arabic Open Graph and Twitter card images generated from the same template as the page, so the preview on WhatsApp or X shows real shaped Arabic, not a row of boxes.
A dashboard thumbnail rendered from the exact HTML that produced the PDF. Same engine, same fonts: the thumbnail cannot show something the document does not.
Inline Arabic images for clients that strip attachments or block web fonts, where the email still needs to show a correctly shaped amount and name.
A public URL in, a full-page PNG out — for QA, archiving, or a preview thumbnail of an Arabic page you do not control the rendering of.
POST /v1/render/png
Send html or a public url. Control the capture with width, height, scale (2 by default, for a sharp image), full_page and padding. Add verify:true to get the gate report back with the image, base64-encoded, as JSON.
curl -X POST https://api.tanqeet.smeepo.com/v1/render/png \
-H "Authorization: Bearer $TANQEET_KEY" -H "Content-Type: application/json" \
-d '{"url":"https://example.com/ar/receipt/42","width":800,"scale":2}' \
-o receipt.pngconst res = await fetch("https://api.tanqeet.smeepo.com/v1/render/png", {
method: "POST",
headers: { "Authorization": `Bearer ${process.env.TANQEET_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({ html, width: 1200, full_page: true, verify: true })
});
const { png_base64, verification } = await res.json();
if (!verification.passed) {
throw new Error(verification.gates.filter(g => !g.passed).map(g => g.name).join(", "));
}
await fs.promises.writeFile("card.png", Buffer.from(png_base64, "base64"));The report carries G0 (input hygiene), G2 (contextual forms), G3 (missing glyphs), G6 (mark collision) and G7 (font composition) — everything about shaping and font choice that a raster image can still get wrong. G1, the PDF text-layer round-trip, does not apply: there is no text layer to extract. See how we verify.
No separate charge for images. All three products — Render, Image, Verify — are on every plan, and a PNG counts as one document, the same as a PDF or a verify call.