๐Ÿ“ฃ Notifi Check is now open source. View on GitHub
SYS.NOTIFIUPTIME 00:00:00VISITORS โ€”LIVE
FREE ยท NO_SIGNUP ยท RUNS_IN_YOUR_BROWSER

Deep Link Tester

Parse a custom-scheme or HTTPS App/Universal Link, generate a scannable QR code, and validate Android assetlinks.json and iOS apple-app-site-association files.

ANDROID_ASSETLINKS_VALIDATOR

Fetches https://{domain}/.well-known/assetlinks.jsonfrom your browser. Most sites don't send permissive CORS headers for well-known files, so a fetch failure here is expected โ€” check the Network tab or validate server-side if it fails.

IOS_AASA_VALIDATOR

Fetches https://{domain}/.well-known/apple-app-site-associationfrom your browser. Most sites don't send permissive CORS headers for well-known files, so a fetch failure here is expected โ€” check the Network tab or validate server-side if it fails.

FAQ

What's the difference between a custom scheme link and an App/Universal Link?

A custom scheme (myapp://path) only works if the app is installed and only your app can register that scheme. An HTTPS App Link (Android) or Universal Link (iOS) uses a real https:// URL that opens your app if it's installed and falls back to the browser if not โ€” but requires hosting a verification file.

Why does the assetlinks.json / AASA check say it couldn't fetch?

Both files are fetched directly from your browser, which is subject to CORS. Most sites don't send permissive CORS headers on well-known files, so a blocked fetch is expected โ€” check your browser's Network tab, or verify server-side (curl) to confirm the file itself is correct.

Does the QR code get sent anywhere?

No โ€” the QR encoder runs entirely in your browser (a hand-rolled implementation, no third-party service or library), and the canvas never leaves your device except when you choose to download the PNG.

What do the assetlinks.json rules check?

That the file is a JSON array, each entry's relation includes delegate_permission/common.handle_all_urls, and target has namespace "android_app", a package_name string, and sha256_cert_fingerprints formatted as colon-separated hex pairs.