We've updated our API endpoints to match what we use in our application. Some endpoints have been deprecated. See our Deprecated Endpoints page for migration details.
An App Deep Link QR code opens your app directly to a specific screen — via its custom URI scheme — if the app is installed on the scanning device. If it isn’t installed, the code falls back to your app’s store listing, or to a plain web page as a last resort. It’s a Quick Code — a direct-action QR with no landing page. In the app, the tile for it reads “Open your app directly if it’s installed, otherwise fall back to the store.”
App Deep Link is always a dynamic QR code — this is required so the resolution logic (app → store → fallback) can run at scan time. You get a Scanova short URL (scnv.io/...) and can attach a custom domain, but there’s no landing page of its own.
From the sidebar, go to QR Codes, then click Create QR Code (or navigate to /qr/create). Click the Quick Code card.
2
Pick App Deep Link
On the Quick Code type grid, click Configure under App Deep Link, in the Dynamic section at the top (this type has no Static option). This opens the form at /qr/quick/appDeepLink.
3
Add your app URIs
Under App URIs, enter at least one of Android app URI or iOS app URI — the custom scheme your app registers to open directly (e.g. myapp://profile).
4
Add store links (optional) and a fallback URL
Under Store links, optionally add your Google Play and/or Apple App Store URLs, shown when the app isn’t installed but the device’s OS is recognized. Under Fallback URL, enter a Fallback web URL — this field is required, since it’s the last-resort destination for every other case.
The App Deep Link Quick Code form with app URIs, store links, and a fallback URL entered
5
Publish
Click Publish. A panel opens to confirm or rename the QR code, assign a folder or tags, and adjust QR design before confirming.
To create an App Deep Link QR code through the API rather than the UI, use category ID 23 (labeled App Deep Link in the Create QR CodeCategory dropdown reference table, allowed_qr_types: "dy" — only "dy" is valid for qr_type). Unlike every other category on this page, the info payload here is a bare array of typed blocks, not a {type, data} object:
Each block is optional in principle, but the fallback block’s url is effectively required — publishing without a fallback fails validation the same way the dashboard form blocks it. Include an intentUri block only if you have at least one app URI.See Create QR Code for the full request schema.