TEASEDocs
ProductsLinkQR codes

Download a QR code for print

Get a saved code's file at the right resolution for the print shop.

A saved code's print file is a vector SVG — the same deterministic renderer used for the live preview, encoding https://<domain><path> for that code.

curl -o flyer.svg "https://app.tease.link/api/admin/qr/links.creator.com/3/image.svg?px=2048&download=true" \
  -H "Authorization: Bearer $TEASE_API_KEY"
ParamTypeDescription
pxintDefault width attribute on the SVG, 64–4096. Because the viewBox is vector, this only sets a starting size hint — the file itself prints crisply at any size a print shop scales it to.
downloadbooltrue sets Content-Disposition: attachment with a qr-<domain>-<slug-or-main>.svg filename, so a browser saves the file instead of opening it inline.
accountstringFor an agency viewing another owner's page: the page address, so the request passes the same RBAC check a page-level request would. Omit it for your own pages — a plain <img> tag can't send the account-switcher header this substitutes for.

PNG instead of SVG

There's no PNG endpoint — the server only ever returns SVG. The panel renders a PNG client-side (SVG onto a canvas element) when a viewer needs one. If you're calling the API directly and need a raster file, download the SVG and convert it yourself (a canvas, or any SVG-to-PNG tool) — don't expect image.svg to content-negotiate into a PNG.

How to know it worked

The downloaded file opens as a valid SVG and a phone scan of it 302s to the landing page. For print, hand the print shop the SVG directly rather than a rasterized export when their workflow supports it — vector avoids any resolution ceiling.

If it didn't work

  • 404 — the qr_id doesn't belong to that domain, or the domain string is wrong.
  • 500 on a previously-working code — the design likely references an icon file that's since been removed from disk; see Troubleshooting.
  • Broken preview for another owner's page in an agency view — pass that page's address as account; without it the request is scoped to your own pages only.

px doesn't crop or rasterize anything — if a design still looks pixelated at large print sizes, the problem is downstream (a rasterizing step in your own pipeline), not this endpoint.

What's next

On this page