urltoolskit.org
URL utilities, in the browser
Say hi →

Deep-link syntax tester

iOS Universal Link · Android App Link · custom scheme

Check that a deep link's syntax matches the format iOS Universal Links, Android App Links, or a custom scheme expects. Generates the matching apple-app-site-association and assetlinks.json snippets.

Server config snippet


      

Verify with curl (run on your terminal)


      
Ready.

How to use

  1. Paste the deep link URI (e.g. myapp://product/123 or https://example.com/app/product/123).
  2. Pick the Platform tab — iOS Universal, Android App Link, Custom scheme.
  3. The tool tells you whether the URI matches each platform's required format and what's wrong if not.
  4. The Server config panel generates the apple-app-site-association paths entry or the assetlinks.json entry your team needs to host. Copy it.
  5. A copy-pasteable curl snippet at the bottom lets you fetch and verify the real association files from a terminal (this we can't do in the browser due to CORS).

Platform requirements at a glance

FAQ

Why use Universal Links instead of custom schemes?

Universal Links degrade gracefully (open the website if the app isn't installed) and can't be hijacked by another app. Custom schemes are simpler to set up but offer no such guarantees.

Why can't this fetch the AASA file directly?

CORS — your browser blocks cross-origin requests to most sites. The curl snippet lets you verify from a terminal where CORS doesn't apply.

Does the snippet include my real Team ID and package name?

No — it uses placeholders (TEAMID.com.example.app). Replace before publishing.

What about App Clips / Instant Apps?

Same association files are used, with extra fields (App Clip experiences in AASA, Instant App-specific intent filters on Android). Add those manually.