Engine versions
Every print says which engine made it; a print can be pinned to the one before.
The engine improves with each release: a law of the spec kept more closely, a layout more like a browser's. A document that depends on how it printed before can keep printing that way while you check it with the new engine.
Which engine printed it#
Every print says it: ReflowPDF-Engine: af4ba3e3b beside the file, engine in the JSON (a job's result too); a merge, split or compress says it when a part of it was printed in the same request. GET /v1/engines lists the versions that print now:
{
"object": "list",
"has_more": false,
"data": [
{
"object": "engine",
"version": "af4ba3e3b",
"status": "current",
"available_until": null
},
{
"object": "engine",
"version": "866470307",
"status": "previous",
"superseded_at": "2026-11-01T06:13:22.000Z",
"available_until": "2026-12-01T06:13:22.000Z"
}
]
}Pin a print#
curl https://api.reflowpdf.com/v1/pdf \
-H "Authorization: Bearer $REFLOWPDF_API_KEY" \
-H "Content-Type: application/json" \
-d '{"html": "<h1>Q3</h1>", "engine": "866470307"}' -o q3.pdfconst pdf = await reflow.pdf.create({ html, engine: '866470307' })pdf = client.pdf.create(html=html, engine="866470307")enginegoes on any request that prints: HTML, a template, images, the layout, a job, a part of a merge.- When a release brings a new engine, the one before keeps printing until three newer engines have shipped, and for 30 days at most:
available_untilis that latest moment. Engines ship often, sometimes several in a week, so a pinned version can end well before it. - A version that prints no more answers
422 engine_unavailable, naming the ones that do. Withoutengine, the current engine prints. - A pinned version is the engine as it was: it gets no fixes. Pin it while you check your documents with the current engine (
ReflowPDF-Enginesays which printed), then leaveengineout.