Ondertekende render-URL’s
Render on-the-fly vanuit een gewone URL — perfect voor <img>-tags, Open Graph-afbeeldingen en
e-mail. Geen API-sleutel wordt naar de browser verzonden: de eigenaar ondertekent de URL vooraf, dus deze
wordt altijd geserveerd (deze wordt nooit geblokkeerd door quota op dezelfde manier als de API), en herhaalde verzoeken worden
in de CDN opgeslagen en gededupliceerd van metering.
GET https://api.mostlyrender.com/v1/templates/{id}/render.{ext}?<modifications>&sig=<signature>
# Voorbeeld
<img src="https://api.mostlyrender.com/v1/templates/tpl_abc/render.png?title=Hello&theme=dusk&sig=8f3c…" />
{ext}ispng,jpg/jpeg,webp, ofpdf.- Elke queryparameter behalve de gereserveerde
sig,scaleenqwordt doorgegeven aan de template als een modification. scale(1–3) stelt de schaalfactor van het apparaat in;q(0–100) stelt de JPEG/WebP-kwaliteit in.
# Ondertekenen
Het eenvoudigste pad: open een template in de app en kopieer de ondertekende embed-URL — deze is
vooraf ondertekend en klaar om in een <img>-tag te plakken.
Om URL’s zelf te creëren, is sig een HMAC-SHA256 over de template-ID, de extensie,
en de gcanoniseerde querystring (parameters gesorteerd, sig uitgesloten), met uw ondertekeningsgeheim:
import crypto from 'node:crypto';
function signRenderUrl(base, secret, id, ext, params) {
const query = Object.keys(params).sort()
.map((k) => `${encodeURIComponent(k)}=${encodeURIComponent(params[k])}`).join('&');
const sig = crypto.createHmac('sha256', secret).update(`${id}:${ext}:${query}`).digest('hex');
return `${base}/v1/templates/${id}/render.${ext}?${query}&sig=${sig}`;
}
Een verzoek met een ontbrekende of onjuiste sig retourneert 403. De handtekening dekt alleen de
parameters die u hebt ondertekend, dus een vervalste URL (een extra of gewijzigde parameter) wordt afgewezen.
# Wanneer welke gebruiken
| Gebruiken | Kies |
|---|---|
| Server-side generatie, de URL opslaan | POST /v1/renders |
| Veel tegelijk | Batch |
Insluiten in <img>/OG/e-mail, geen sleutel in de client |
Ondertekende render-URL’s |