Skip to main content

Features · Plan by plan

Everything QR Code Harbor does, and which plan it is on

One table, no marketing tiers. Every row below is a feature that exists in the deployed product today; if something is not here, we do not have it yet, and the last section says so in writing.

Last checked against the deployed code on 9 September 2026.

Free, Pro and Business at a glance

Free is $0 forever, no card. Pro and Business are monthly or yearly subscriptions; a static code you downloaded keeps working whatever happens to your plan, and a dynamic code keeps redirecting to its last destination after a plan ends.

Making codesFreeProBusiness
Static QR codes — 36 types: URL, Wi-Fi, vCard, text, email, SMS, phone, location, event, WhatsApp, social profiles, payments (PayPal, UPI, Pix, SEPA, crypto), PDF, image, audio and moreUnlimited, no sign-up, never expireUnlimitedUnlimited
Dynamic QR codes (editable after printing)2, kept forever50500
Scans per month on dynamic codes50025,000Unlimited (fair use 1,000,000)
Short links with click counts250500
Batch generation of static codes—100 per batch, 500 per month1,000 per request via the API, plus sequential ranges
Barcodes (EAN, UPC, Code 128, Code 39, ITF, DataMatrix, PDF417, GS1-128, GS1 DataBar and the rest of the 38)All 38 in the web toolAll 38 in the web toolAll 38, also through the API
Campaign tracking (UTM) added to the linkYes, on static codes, in the generatorYes, and on dynamic codesYes, and on dynamic codes
Design and downloadFreeProBusiness
Colours, gradients, 12 module shapes, corner stylesYesYesYes
Your logo in the middle (image upload, no watermark added)YesYesYes
Call-to-action frames (“Scan me”, “Menu”, “Review us” … 9 frames)YesYesYes
Quick style templatesYesYesYes
Live scan check: the design on screen is degraded like a phone photo and decoded in your browser before you downloadYesYesYes
PNG, JPG, WebP, SVG, PDF and EPS, up to 4096 pxAll, freeAllAll
Print-ready layouts in millimetres: menu table tent, window poster, counter sticker, review stand card, guest Wi-Fi card, business cardYesYesYes
“Preview as printed”: the exported table tent, stand card, sticker or poster shown folded or standing, with the safe-margin guide and real millimetre sizesYesYesYes
AI artwork QR codes (a picture that is also a working code; only charged when the result scans)—15 per month60 per month
Dark mode and four colour schemes for the app itselfYesYesYes
Dynamic code controlsFreeProBusiness
Change the destination after printingYesYesYes
Pause a code, set an expiry date, password-protect it—YesYes
Scheduled activation (go live at a date and time you set)—YesYes
Smart routing by country, device or time of day——Yes
Google Analytics 4 and Meta pixel on the redirect——Yes
Broken-link watchdog: every dynamic code checked every six hours, with an email when one stops answering——Yes
Destination check when a code is created or re-pointed: deceptive links refused, risky patterns (bare IP, shortener chains, look-alike domains) flagged, reported codes can be switched offYesYesYes
AnalyticsFreeProBusiness
Scan counts by day, country, city, device, OS and browserLast 30 daysLast 12 monthsLast 3 years
Scan log export to CSV, filtered by date, per code or for the whole account—YesYes
Scans stored without raw IP addresses (a one-day pseudonymous token instead)AlwaysAlwaysAlways
Organising your codesFreeProBusiness
Search, sort, labels and tags on every code and short linkYesYesYes
Account export (all your codes, pages and scan data) and one-click account deletionYesYesYes
Hosted pages and filesFreeProBusiness
Link-in-bio / landing pages (menu, business card, wedding, CV, product page) with PDF export1 (shows “Powered by QR Code Harbor”)550
Menu pages: a photo per dish (up to 3 MB, lazy-loaded) and a “sold out” switch per itemYesYesYes
Lead-capture form on a page, with CSV of the leads——Yes
Hosted PDF, image or audio behind a code (up to 15 MB per file)YesYesYes
Google review funnel pageYesYesYes
DevelopersFreeProBusiness
Keyless image API: one GET returns a PNG or SVG, 60 requests per minuteYesYesYes
Authenticated REST API: create and edit dynamic codes, bulk jobs, analytics, webhooks——10,000 calls per month, 250 codes per day
Bulk via CSV through the API, ZIP download——1,000 rows per job, 50 jobs per month
OpenAPI reference and code samples/api-docs, public
Trust and supportFreeProBusiness
Interface in 20 languagesYesYesYes
Written data-handling and retention page/security, no badges, plain facts
Report a code that points somewhere harmful/report-abuse, anyone can, no account
SupportEmailEmailPriority email

What we do not have yet

Other generators list these. We would rather you learn it here than after paying.

  • Team seats and roles. An account is one login today. If you need several people editing the same codes, you share one account or wait; we will not sell you a seat that does not exist.
  • Custom short-link domains. Dynamic codes and short links resolve on qrcodeharbor.com. Your own domain is on the list, not in the product.
  • Weekly scan digest by email. Alerts exist for broken destinations; a periodic summary does not.
  • Zapier, Make or HubSpot listings. The REST API and webhooks work with them; there is no one-click connector in their directories.
  • SOC 2, ISO 27001 or a security questionnaire service. The security page says what is actually in place instead.

Two things that are true on every plan

Your printed code does not stop when your plan ends

A static code is a file on your computer; we cannot switch it off. A dynamic code that outlives its subscription keeps redirecting to the last destination you saved. You can still change where it points. What you lose is the paid extras, not the print run: scan history shrinks to the Free 30-day window, the developer API stops, and new codes are limited to the Free allowance.

No watermark, ever, on any file

Not on the free plan, not at low resolution, not in SVG. The generator adds nothing to the image that you did not put there.

Try it before reading any more

The generator on the home page needs no account. The two free dynamic codes need one, because a code you can edit later has to belong to someone.