Skip to content

Bitly alternative, with both price lists in the open

Both sides shorten links and make QR codes. What separates them is what each one counts, how long you can look back at it, and what putting your own name on a link costs. Every Bitly figure below was read from its own pricing page on 16 September 2026 and is linked at the foot of this page.

Start free

No card. 3 editable codes and unlimited static ones.

  • Bitly figures read 16 September 2026
  • Unlimited scans on every plan
  • Your own domain from $12

One counts what you make each month, the other what is live

This is the difference that decides whether a switch makes sense, and it is not a feature either side can add.

Bitly’s plans are monthly allowances: a number of links, a number of QR codes and a number of redirects per month, where its pricing page explains a redirect as “Change the destination page for links and QR Codes”. Create thirty links in January and the allowance is back in February.

A plan here is a ceiling on live dynamic codes instead. One dynamic code is one short link with a picture of itself, so a printed menu code and a link in a bio are the same object counted once. Nothing refills, and nothing is charged for changing a destination: a code can be repointed daily for a year without touching the plan.

On QR codes specifically, the monthly numbers are small: Growth, at $29 a month, makes ten of them in a month, and Premium two hundred. The $39 plan here holds 600 live at once — a larger number, but not an endless one, and it does not come back next month. Whichever side you are on, count the printed things you need working at the same time, not the ones you will make in January.

Which is better depends entirely on the work. A campaign team minting hundreds of fresh links a month is counting Bitly’s way. A business with fifty printed things in the world that must keep working, and occasionally move, is counting ours.

Bitly’s plans, in its own numbers

Copied from bitly.com on 16 September 2026. Prices are US dollars. Above these sits an Enterprise tier, priced on request, which its page gives 2 years of data. Where a cell says "not listed", the page gives no figure — which is not the same as a zero.

PlanPriceQR codesLinksRedirectsData history
Free$02 a month5 a monthNot listedNot listed
Core$10 a month, billed yearly only ($120 a year)5 a month100 a month5 a month30 days of click and scan data
Growth$29 a month billed yearly ($348 a year), or $35 monthly10 a month500 a month20 a month4 months of click and scan data
Premium$199 a month billed yearly ($2,388 a year), or $300 monthly200 a month3,000 a month110 a month1 year of click and scan data

A free custom domain is listed from Growth upwards. Figures move, so check them against their page rather than trusting a rival’s summary, including this one.

The plans here, for the same money

Every number in this table is read straight from the file the product enforces, so it cannot quietly disagree with what you get.

PlanPrice a monthLive dynamic codesCustom domainsScan history
FreeFree3, shared with QR Menus and forms090 days
Starter$121001365 days
Pro$3960010Unlimited
Business$992,00050Unlimited

Scans are never capped or charged for, on any plan, and a static code costs nothing and needs no account at all — the bulk generator makes up to 500 of them in a batch, in your browser.

Where Bitly is the better answer

Three places their list beats ours outright. If one of them describes your work, stay where you are.

Far more links a month at the top

Premium creates up to 3,000 links and 200 QR codes every month, and those allowances come back the next month. No plan here holds that many live at once, and ours never refill. A team whose job is minting links in volume should count it their way before moving.

The same yearly price at the bottom

Core is $120 for the year, which is exactly what Starter costs paid yearly. If you pay monthly, Starter is $12 and Core is not sold that way at all.

A name people have heard of

A bit.ly address is recognised, and that is worth something on a link in an email or a text message. Ours is not, which is part of why a domain of your own is on the cheapest paid plan here.

Where the swap is worth making

All of these are things the product does today, on the plan named beside them.

  • Repointing is free and unlimited. Change where a dynamic code goes whenever you like, on Free as well. There is no monthly count of destination changes to run out of before the end of a campaign.
  • Your own domain at the cheapest paid step. Starter, $12 a month, includes a verified domain such as go.yourbrand.com for every code and link. Bitly lists its free custom domain from Growth.
  • Static codes, unlimited and free. No account, no plan, no expiry, and nothing in the middle that can be switched off. For a code that must still work in ten years, this is the honest answer.
  • Longer history, lower down. Starter keeps 365 days; Pro and Business keep everything. Free accounts here still see 90 days.
  • Routing on every plan. Send iPhones to one place and Android phones to another, Canada to the Canadian shop, or a page that changes on a date — with no upgrade. Cities, scan counts and A/B splits come higher up.
  • Pages and forms, not only links. A QR Menu puts several buttons behind one printed code, and a QR Form collects an answer from a scan. Both are included from the free plan, inside its editable items.

What a move actually involves

Worth knowing before you plan one, because part of it is impossible and nobody says so.

A short link already printed on somebody else’s domain cannot come with you. That address is answered by their servers; no service can adopt it. The same is true in reverse, and it is the strongest argument for putting links on a hostname you control from the start.

So a switch is usually a line drawn on a date: new print runs and new campaigns are made here, while the old links stay where they are, under whatever terms that account carries. If your links are already on a domain of your own, the DNS record is yours to repoint, and the addresses survive the move.

Bringing a list across is one file: a spreadsheet of names and destinations imported in one go, with the new short links downloaded back as a CSV for whoever does your artwork.

Check it at the source

  • Bitly pricing. Every Bitly figure on this page, read 16 September 2026
  • QRSalt pricing. Our side, feature by feature, from the same file the product enforces

Last reviewed , against the product as it works today.

What it costs to make the swap

Free is enough to test a code on real print before deciding anything. Starter at $12 a month, or $120 for the year, adds 100 live codes, your own domain and 365 days of history.

Free

Free

Unlimited static codes. Three editable ones that never expire.

  • Unlimited static QR codes, forever
  • 3 editable items in total — dynamic QR codes, QR Menus and QR Forms share them
  • Dynamic codes never expire, and each comes with a short link
  • Short links on their own, no QR code needed

3dynamic codes

Starter

$12/mo

For one business with codes out in the world.

  • 5 QR Menus
  • QR Forms
  • Advanced tracking and analytics
  • Live map of scans as they happen

100dynamic codes

Pro

Most chosen

$39/mo

For agencies and teams running codes at scale.

  • 50 QR Menus
  • Unlimited analytics history
  • 10 custom domains
  • API access

600dynamic codes

Business

$99/mo

For organisations running codes across many brands.

  • 400 QR Menus
  • 50 custom domains
  • Up to 25 team members and team management
  • Up to 10 workspaces

2,000dynamic codes

Unlimited scans on every plan. Cancel online in two clicks. Compare every plan and feature

The rest of the toolbox

Open a row to see the screen and which plan has it.

Custom domains

Short links on your own domain, chosen code by code.

Codes open go.yourbrand.com/menu rather than a link with our name in it, so the address under the code is yours. You add two DNS records and we check them. Then pick the domain for each code as you make it, or move a whole list of codes onto it at once.

Starter and up

QR codes on your own domain
A verified custom domain, go.fieldhousecoffee.example, with the TXT and CNAME records to copy into DNS and a button to check them again.
Custom domains · verified sample data

Bulk QR code generator

A spreadsheet in, one dynamic code per row out.

Paste or upload a list of names and links, match the columns, and get a dynamic code for every row - one per table, stall, badge or product - each with its own scans and destination.

Starter and up

The bulk generator
Bulk import after pasting a spreadsheet of twelve café tables - window, patio and bar - with the name and link columns matched to each new code’s name and destination.
Bulk import · twelve café tables sample data

Change many codes at once

Tick the codes, then pause, tag, file or move them together.

Tick codes in the list, or pick every code with a tag, and pause or resume them, add or remove tags, move them to a folder or onto your own domain, or add campaign tags, in one go. The API does the same in one request.

Pause and resume on every plan · folders and tags on Starter and up

An estate agent’s QR codes - yard signs for two listings, an open-house flyer and neighbourhood flyer drops - each with its short link on the agency’s own domain, its scan count and its folder.
Your QR codes · an estate agent’s list sample data

Short links, with your own ending

The link on its own, for a bio, an email or an ad.

Paste a link and get a short one you can change, route and count, with no QR code unless you want one. Every dynamic code already has its short link beside it, and a short link gets its QR code in one click - the same link, so clicks and scans count together. On Business you choose how the link ends, like /spring-menu, instead of random letters.

Every plan · custom endings on Business

The URL shortener
A short link’s settings: its short code with a Copy button, marked “Always works”, a custom ending on the roastery’s own domain, and the choice of which domain the link uses.
A short link · a coffee roaster’s bio link sample data

GS1 Digital Link for products

The retail code that carries your GTIN and still opens a web page.

Your domain and the GTIN from under the barcode, with batch, serial and dates if you want them, in the link format GS1 set for retail. A phone opens your page; the product data rides along in the address. The GTIN’s check digit is checked before anything is made.

Every plan, Free included

QR codes for packaging
Making a GS1 Digital Link code for a bag of coffee beans: the brand’s own domain, the GTIN from under the barcode and a batch number, beside a preview of the code the packaging will carry.
Create a code · GS1 Digital Link sample data

Wi-Fi, contact cards, email, phone and SMS

Networks, contacts, calendar dates and places, not only links.

A website, plain text, a Wi-Fi network, an email, a phone number, a text message, a contact card, a GS1 Digital Link, a PDF, a location, a calendar event and more. Most download free, with no account; the few marked “Editable only” need one.

Every plan, Free included

Contact card codes
The first step of making a code: a grid of the kinds of code on offer - website, plain text, Wi-Fi network, email, phone number, SMS message, contact card, GS1 Digital Link, PDF file, app store link, review request, location, calendar event and payment link, with PDF and app store marked editable only - Website chosen, and a preview of the code beside it.
Create a code · what to make sample data

PDF codes you can update

Upload a PDF, print the code, swap the file later.

We host the file and the code opens it. Upload a new version and the same printed code opens that one, with the old file kept in its history in case you need it back.

Every plan, Free included

PDF to QR code
Destination history for a café’s catering-menu PDF code: the summer and spring menus and last year’s, each replaced on a date with a note, and each one a button away from being restored.
A PDF code · file history sample data

Your logo in the middle

Upload any image; we size it so the code still scans.

PNG, JPEG, WebP or GIF, up to 15 MB - we shrink it ourselves, so nobody has to compress a file first. Error correction goes up to make room, and the logo is never allowed to cover more of the pattern than the code can lose.

Every plan, Free included

The design panel of a coffee roaster’s bag code: espresso modules on cream with the roaster’s bean roundel in the middle, the logo field, and error correction locked to Highest because the code has a logo.
A bag code · design with a logo sample data

Print-ready downloads

PNG and SVG on every plan, and a PDF for the printer.

PNG for screens and quick jobs, SVG for anything that gets scaled, and a print-ready PDF on Starter and up.

PNG and SVG on every plan · PDF on Starter and up

A table-tent code’s own page: the printed code in espresso brown with a SCAN FOR MENU label, its short link on the café’s own domain and PNG, SVG and PDF downloads, beside the address it opens and a box for a new one, with the note that changes apply without reprinting.
A code’s page · downloads sample data

Folders and tags

Keep one location’s or one campaign’s codes together.

Put codes in a folder per shop, listing or campaign and filter the list by it. Deleting a folder never deletes a code - they move to No folder, and you can undo it.

Starter and up

A coffee roaster’s codes filtered to the Retail bags folder: the house blend, Ethiopia Guji and decaf bag codes, each with its tags - 12oz, house blend, single origin, brew guide, decaf - its short link and its scans.
Your QR codes · one folder, tagged sample data

Campaign presets

Saved UTM parameters, so printed scans are not “direct”.

A printed code arrives in your web analytics as direct traffic. A preset fills in source, medium and campaign in one click, so the flyer and the table tent show up as themselves.

Starter and up

A coffee company’s Spring flyers campaign preset: source flyer, medium print, campaign spring-2026 and content farmers-market, with a preview of the full link a scan of a code using the preset opens.
Settings · campaign presets sample data

City-level scan locations

Which towns the scans came from, not only which countries.

Scans by city and region for each code, and towns on the live map. Coarse on purpose: the place the phone’s network reports, never a street or a precise position.

Pro and Business

Scans of a café’s table-tent code by city, the top six: Portland with 60%, then Vancouver, Beaverton, Seattle, San Francisco and London, each with its count, a bar and its share.
A code’s analytics · city sample data

CSV export

Daily scans per code, in a spreadsheet.

Download scans and unique visitors by day for one code or all of them - with each code’s name and short link - as CSV for your own reports, or for whoever asked how the campaign did.

Pro and Business

The foot of a code’s analytics: the Breakdown card on referrers - every scan straight from the camera - with its own Download CSV button, and under it the Export panel, which downloads scans and visitors per day as CSV.
A code’s analytics · export sample data

Webhooks

Your server hears about every scan and every change.

Pick the events - a scan, a code made or changed, a form answered, a QR Menu edited - and give us an address. Each one arrives as a signed POST, retried if your server is down, and every delivery is listed with the response it got.

Business

The API and webhooks
A webhook endpoint that hears about every scan and code update, with who set it up, a signing secret hidden until an owner or admin reveals it, and its last deliveries, each marked delivered with the response it got.
Webhooks · recent deliveries sample data

Separate workspaces

One subscription, a workspace per brand or client.

Each workspace has its own codes, team and analytics, so a client never sees another client’s. Up to 10 under one subscription.

Business

The Workspaces panel in settings: how many of the plan’s workspaces are in use, what happens to all of them if the subscription ends, and a field to name and create another one.
Settings · workspaces sample data

Priority email support

Paid plans’ emails are answered first.

A person reads every message. On a paid plan yours is answered before free accounts’ - an order we keep, not a promised hour. Your plan and workspace go along with it, so nobody has to ask which account is yours.

Starter and up

The support page on a Business plan: a note that a person reads every message and this plan’s is answered before free accounts’, a form to write in, and the plan and workspace that are sent along with it.
Contact support · Business plan sample data

Your data, to take or delete

A full export any time, and deletion you can take back.

Download everything - codes, history, scans, form answers and the files you uploaded - as one .zip with spreadsheets inside. Deleting the account gives you 30 days to change your mind, and your printed codes keep working until then.

Every plan, Free included

Account settings: a button to download everything the account holds, and a separate panel to delete the account, which can be undone for 30 days.
Settings · your data sample data

An API for the codes you print

A REST API for your own code: make dynamic codes and short links, change where they go, render SVG, PNG or PDF, add your domains and change hundreds of codes in one request. No-code tools like Zapier, Make and n8n can call it too, with a plain HTTP step. The API comes with Pro and up, and every request carries your key.

Render a code · Pro and up

curl -o code.svg \
  -H "Authorization: Bearer $QRSALT_KEY" \
  "https://app.qrsalt.com/api/qr?data=https://example.com"

An SVG back, ready for a label, a template or an image tag.

Re-point a printed code · Pro and up

curl -X PATCH https://app.qrsalt.com/api/v1/codes/{id} \
  -H "Authorization: Bearer $QRSALT_KEY" \
  -H "content-type: application/json" \
  -d '{"destination":"https://example.com/winter"}'

The printed code opens the new page, and the old one is kept in its history. Keys can only ever touch their own workspace.

Change many codes at once · JavaScript

// Move a campaign's codes onto your own domain
await fetch('https://app.qrsalt.com/api/v1/codes/bulk', {
  method: 'POST',
  headers: {
    authorization: `Bearer ${process.env.QRSALT_KEY}`,
    'content-type': 'application/json',
  },
  body: JSON.stringify({ ids, action: 'domain', domain: 'go.example.com' }),
})

Pause, tag, file or move codes in one call. The answer lists what changed and what was skipped.

Every endpoint, with a playground
The API screen listing a coffee company’s keys - one for a menu sync, one for a label printer, one revoked - each with its prefix, who created it, when it was made and when it was last used.
API keys · one per integration sample data

Switching, answered

What is the main difference between the two?
What gets counted. Bitly’s plans are monthly allowances: so many links, QR codes and redirects created each month, listed on its pricing page. A plan here is a standing number of live dynamic codes — 100 on Starter — with no monthly reset and no charge for changing where one points.
What does Bitly mean by "redirects"?
On its pricing page the feature is described as changing which page a link or QR code opens, and every paid tier is given a monthly number of them, read on 16 September 2026. Nothing of that kind is metered here: a dynamic code can be repointed as often as the work needs it, on any plan including Free.
Can I move links I have already printed?
Not if they are on someone else’s domain: the address in the picture belongs to them, and only they can answer it. What you can move is a domain of your own — if your links live on go.yourbrand.com, the hostname is yours and pointing its DNS here brings the links with it.
Do QR codes here expire?
Static codes never expire and need no account. Dynamic codes work while the account has a plan, and Free counts as one. Cancel a paid plan and they keep redirecting for 30 days, with an email first, after which they pause on a page that explains — nothing is deleted.
How much history do I get?
Free keeps 90 days of scan history, Starter 365 days, and Pro and Business keep it without a limit. Bitly’s pricing page lists 30 days of click and scan data on Core, 4 months on Growth and a year on Premium; it states no length for Free.
Is there a free plan worth using?
Unlimited static QR codes with no account, plus 3 editable items — dynamic codes, a QR Menu or a form — that never expire, with 90 days of scan history and routing by device, country, language and date.
Do you have an API?
Yes, with Pro and Business: create codes and short links, change destinations, read scans, and a playground on the docs page that runs the calls in your browser before you write any code.
Bitly alternative for QR codes and short links - QRSalt