EFN QR Redirect Service

Generate direct QR codes, or mint a new qr.efn.no redirect and encode that instead.

Use https://qr.efn.no/api/v1/qr in two main ways. Direct mode encodes the supplied target_url immediately. Short-link mode uses POST with mode=short to create a new internal https://qr.efn.no/r/<slug> redirect, then returns a QR code for that internal URL. If you want a branded center logo, upload it as logo_file=@... as part of the same request.

Mode 1: direct target_url QR Mode 2: generated short redirect QR No built-in logo library Upload SVG, PNG, JPEG, or GIF Max upload size: 1 MiB

Quick Links

Copy-Paste cURL Commands

Mode 1: direct QR

Generate a PNG QR that encodes the target URL directly with no internal redirect hop.

curl -L 'https://qr.efn.no/api/v1/qr?target_url=https%3A%2F%2Fwww.vg.no&format=png' \
  -o vg-direct-qr.png

Mode 2: create short redirect QR

Create a new qr.efn.no redirect with redirect_type 307, return the QR image, and inspect the generated slug in the response headers.

curl -L -D short-link.headers \
  -F 'target_url=https://www.vg.no' \
  -F 'mode=short' \
  -F 'redirect_type=307' \
  -F 'format=svg' \
  https://qr.efn.no/api/v1/qr \
  -o vg-short-qr.svg

Direct QR with uploaded SVG logo

Send a multipart POST with your own SVG logo file and get back an SVG QR in direct mode.

curl -L \
  -F 'target_url=https://www.medlemskap.efn.no' \
  -F 'format=svg' \
  -F 'logo_file=@/path/to/logo.svg;type=image/svg+xml' \
  https://qr.efn.no/api/v1/qr \
  -o custom-logo-qr.svg

Short redirect QR with uploaded bitmap logo

Create a new internal redirect and upload PNG, JPEG, or GIF artwork in the same request.

curl -L -D short-link.headers \
  -F 'target_url=https://www.medlemskap.efn.no' \
  -F 'mode=short' \
  -F 'redirect_type=302' \
  -F 'format=png' \
  -F 'logo_file=@/path/to/logo.png;type=image/png' \
  https://qr.efn.no/api/v1/qr \
  -o membership-short-branded.png
Tip: use plain GET requests when you only need a QR image for the destination itself. Use POST mode=short when you want a newly created reusable qr.efn.no link that can be shared outside the QR image too.