One link — every platform
A smart app link for the App Store and Google Play: the right store on every phone, plus a QR code and analytics.
From creating a link to installing the app
You create one link and share it anywhere. Everyone who taps it lands in the store for their device, and you see every click.
Wherever the link sits, people reach the store
Pick a place and watch what happens to a visitor with a plain link and with SetLinks.
See every click — and every scan
Clicks by day, platform, country and source. QR scans count as clicks and also get a figure of their own; link-preview bots are not counted at all.
Start for freeLinks and clicks, on your phone
Everything the dashboard does: check the morning numbers, change a link’s store in the middle of a meeting, show the QR code at your booth.
- Clicks, QR scans and store visits for 7, 30 and 90 days
- Create and edit links, pause one in a tap
- The QR code full screen: show it or save it to Photos
- Every team in one account, switched from the top bar
For teams, agencies and people who write code
When there are hundreds of links and several people run them: roles, one bill, a chat with us right in the dashboard, and an API to create links from your own code.
Team
Pro · Team · ScaleInvite by email, three roles. Marketing sees the stats and can’t break the settings.
- Anna Kowalski anna@fitpulse.app owner
- David Sato david@fitpulse.app admin
- Maria Lopez maria@agency.io member
- oleg@fitpulse.appinvitation sent pending
How do I change a link’s store without reprinting the QR code?
SetLinks support · 4 minOpen the link → Destinations. The address and QR code stay the same, and codes already printed keep working.
API
Pro · Team · ScaleKeys with read or write access. Create links from your own CI and pull clicks into your own analytics.
$ curl https://api.setlinks.io/v1/links \ -H "Authorization: Bearer stl_live_••••" \ -H "Content-Type: application/json" \ -d '{ "name": "FitPulse autumn campaign", "slug": "fitpulse", "destinations": { "appstore": "https://apps.apple.com/app/id6450000000", "googleplay": "https://play.google.com/store/apps/details?id=app.fitpulse", "appgallery": "https://appgallery.huawei.com/app/C110000000", "fallback": "https://fitpulse.app" } }'
# 201 Created → https://setlinks.io/fitpulse
HTTP/2 201
{
"id": "0b8e6f2e-5d1a-4c3e-9a57-3f1d2b7c9e40",
"slug": "fitpulse",
"shortUrl": "https://setlinks.io/fitpulse",
"name": "FitPulse autumn campaign",
"status": "active",
"destinations": {
"appstore": "https://apps.apple.com/app/id6450000000",
"googleplay": "https://play.google.com/store/apps/details?id=app.fitpulse",
"appgallery": "https://appgallery.huawei.com/app/C110000000",
"fallback": "https://fitpulse.app"
},
"createdAt": "2026-09-29T09:41:00.000Z",
"updatedAt": "2026-09-29T09:41:00.000Z"
} Everything a smart link needs
Smart redirect
iPhone goes to the App Store, Android to Google Play, Huawei to AppGallery, computers to your website, and everyone else to a fallback URL. RuStore takes over when the app isn't on Google Play or AppGallery.
QR codes
Generated automatically, downloadable as PNG and SVG. Every scan counts as a click and shows up on its own too.
Custom address
setlinks.io/my-app instead of a random code. Reads well in ads and sticks in memory.
Available on Pro · Team · Scale
Store campaign attribution
Your links pass the campaign on to the store, so App Store Connect and Google Play Console show which link brought the installs.
Available on Pro · Team · Scale
Be one of the first 200 teams
The first teams on yearly billing keep a lasting discount and get some new features before everyone else.
- −30% forever
On yearly billing, for as long as your yearly subscription continues.
- Early access
To some new features, before they reach everyone.
- Priority support
Your support requests are marked as priority.
For a team's first paid subscription, one place per team owner, while places last and until the date shown. Full conditions: Terms § 5
Simple pricing. Pay monthly or yearly
Compare all features
| Feature | Free | Pro | Team | Scale | Enterprise |
|---|---|---|---|---|---|
| Links and traffic | |||||
| Links | 3 | 25 | 250 | 2,500 | Custom |
| Clicks and scans | Unlimited (fair use) | Unlimited (fair use) | Unlimited (fair use) | Unlimited (fair use) | Unlimited (fair use) |
| Change destinations at any time | Included | Included | Included | Included | Included |
| Custom link address | Not included | Included | Included | Included | Included |
| Custom domain for links | Not included | 1 | 3 | 10 | Custom |
| Stores and platforms | |||||
| App Store | Included | Included | Included | Included | Included |
| Google Play | Included | Included | Included | Included | Included |
| Huawei AppGallery | Included | Included | Included | Included | Included |
| RuStore | Included | Included | Included | Included | Included |
| Separate page for computers | Included | Included | Included | Included | Included |
| Fallback URL | Included | Included | Included | Included | Included |
| Instagram and TikTok in-app browsers handled | Included | Included | Included | Included | Included |
| Store campaign attribution | Not included | Included | Included | Included | Included |
| Opens the app if it is installed (Universal Links / App Links) | Not included | Included | Included | Included | Included |
| QR codes | |||||
| QR code for every link, PNG and SVG | Included | Included | Included | Included | Included |
| QR scans count as clicks, also shown on their own | Included | Included | Included | Included | Included |
| Analytics | |||||
| Clicks by platform, country and source | Included | Included | Included | Included | Included |
| Link-preview bots not counted | Included | Included | Included | Included | Included |
| Statistics history | 90 days | 365 days | 730 days | All time | Custom |
| Statistics export to CSV | Included | Included | Included | Included | Included |
| Team | |||||
| Team members | 1 | 3 | 15 | 100 | Custom |
| Teams you own | 1 | 2 | 5 | Unlimited | Custom |
| Roles: owner, admin, member | Not included | Included | Included | Included | Included |
| For developers | |||||
| REST API with read and write keys | Not included | Included | Included | Included | Included |
| API documentation | Included | Included | Included | Included | Included |
| Support | |||||
| Email and in-dashboard chat | Included | Included | Included | Included | Included |
| Individual limits and terms | Not included | Not included | Not included | Not included | Included |
Frequently asked questions
How does the link know where to send people?
By the device's user-agent: iPhone and iPad go to the App Store, Android goes to Google Play, Huawei devices go to AppGallery, and computers go to your website if you add one. RuStore gets Android visitors when the app has no Google Play link, and Huawei visitors when it has no AppGallery link. Everything else goes to the fallback URL you set yourself.
Is traffic limited?
No. Clicks and QR scans aren't capped on any plan — fair use applies. If something looks unusual, such as a flood of bot traffic, we write to you before anything changes.
Can I change the store addresses after creating a link?
Yes, anytime. The short address and QR code stay the same — only the destinations change. QR codes already printed keep working.
How does billing work?
Monthly or yearly — yearly costs less. You can cancel anytime, with no penalties and no fine print.
What is a smart link for an app?
One short address — like setlinks.io/my-app — that works on every device. iPhone visitors land in the App Store, Android in Google Play, Huawei in AppGallery, and computers on your website. You share one link and one QR code instead of three.
Is it a deep link? Do I need an SDK?
No SDK and nothing to change in your app. SetLinks opens the right store page or web address, counts the click and passes the campaign to the store. It does not carry a link through the install into the app (deferred deep linking) — if you need that, an attribution SDK is the right tool.
Can one QR code open both the App Store and Google Play?
Yes. Every link comes with a QR code, and a scan goes to the store of the phone that scanned it. Change the destinations later and printed codes keep working.
Does it work inside Instagram and TikTok?
Yes. In-app browsers often fail to open a store link. SetLinks recognises them, offers to open the store, and counts the click under the right source.
How is SetLinks different from Firebase Dynamic Links or Branch?
Firebase Dynamic Links shut down on 25 August 2025. Branch and similar platforms are full attribution suites with an SDK. SetLinks does one job well: a link and QR code that open the right store, with click analytics and an API — no SDK, set up in two minutes.
Is there an API?
Yes: a REST API with read and write keys to create links from your own code and pull click stats. Which plans include it is shown under Pricing.
Switching from another link tool?
Honest comparisons with step-by-step guides for moving your links and printed QR codes.
- Moving from Firebase Dynamic Links
- Moving from onelink.to
- Moving from AppsFlyer OneLink
- Moving from Branch
- Moving from Bitly
- Moving from URLgenius
- Moving from QR TIGER
Free tools for app links
No sign-up, and nothing leaves your browser.
- App Store and Google Play QR code generator
- App Store and Google Play link generator
- Smart link redirect tester
- Universal Links and App Links validator
- apple-app-site-association and assetlinks.json generator