> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scanova.io/llms.txt
> Use this file to discover all available pages before exploring further.

# App Deep Link QR Code

> Create a QR code that deep-links into a mobile app.

## What it's for

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."

<Note>
  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.
</Note>

## Resolution order

The form is organized into three sections, checked in this order at scan time:

1. **App installed** — the device opens your app directly via the matching **Android app URI** or **iOS app URI**.
2. **App not installed, OS recognized** — the device is sent to the matching **store link** (Google Play or Apple App Store), if you provided one.
3. **Neither applies** — the scanner is sent to the **Fallback web URL**, which is why that field is required.

## Create an App Deep Link QR code

<Steps>
  <Step title="Open Create QR Code and choose Quick Code">
    From the sidebar, go to **QR Codes**, then click **Create QR Code** (or navigate to `/qr/create`). Click the **Quick Code** card.
  </Step>

  <Step title="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`.
  </Step>

  <Step title="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`).
  </Step>

  <Step title="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.

    <Frame caption="The App Deep Link Quick Code form with app URIs, store links, and a fallback URL entered">
      <img src="https://mintcdn.com/scanova-api/q8t3kzcRTgAP7jV0/images/v2/qr-codes/create/app-deep-link/app-deep-link-quick-code-form.png?fit=max&auto=format&n=q8t3kzcRTgAP7jV0&q=85&s=fa5c24381e8f34cf1794154ecce881bc" alt="App Deep Link Quick Code form with Android and iOS app URIs, optional store links, a required fallback URL, and the dynamic QR code's auto-generated short URL" width="1280" height="1277" data-path="images/v2/qr-codes/create/app-deep-link/app-deep-link-quick-code-form.png" />
    </Frame>
  </Step>

  <Step title="Publish">
    Click **Publish**. A panel opens to confirm or rename the QR code, assign a folder or tags, and adjust QR design before confirming.
  </Step>
</Steps>

## Creating one via the API

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 Code](/v1/api-reference/endpoint/qr_manager/create) **Category 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:

```json theme={null}
[
  {
    "type": "intentUri",
    "data": [
      { "type": "android", "uri": "acmeapp://profile/42" },
      { "type": "ios", "uri": "acmeapp://profile/42" }
    ]
  },
  {
    "type": "appStore",
    "data": [
      { "type": "playStore", "url": "https://play.google.com/store/apps/details?id=com.acme.app" },
      { "type": "appleStore", "url": "https://apps.apple.com/app/id123456789" }
    ]
  },
  {
    "type": "fallback",
    "data": { "url": "https://acme.com/profile/42" }
  }
]
```

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](/v1/api-reference/endpoint/qr_manager/create) for the full request schema.

## Related

* [App Store QR Code](/qr-codes/create/app-store) — a simpler "send to the store" alternative when you don't need in-app deep linking.
* [Creating your first QR code](/getting-started/first-qr-code) — a full walkthrough of the Quick Code flow this type belongs to.
* [Folders, tags & bulk operations](/qr-codes/manage/folders-tags-bulk-operations) — organize the QR code after publishing it.
