{
 "meta": {
  "title": "State of Universal Links & App Links 2026, v1 (Tranco top 10,000)",
  "version": "1.0.0",
  "scanned": "2026-10-31",
  "domain_list": "Tranco list 746VX (Le Pochat et al., NDSS 2019), top 10,000 registrable domains; only aggregates are published",
  "author": "Alok Singh, bestlatestapps.com",
  "license": "CC BY 4.0",
  "doi": "10.5281/zenodo.23832793 (placeholder)",
  "method": "HTTPS only, no redirects followed for origin fetches, 12 s timeout, one GET per file per host (apex and www), user agent 'bestlatestapps-research/0.1 (+https://bestlatestapps.com/; well-known file survey)'. iOS figures use Apple's CDN copy (what iOS 14+ devices download). Android figures use a direct fetch of /.well-known/assetlinks.json.",
  "validation": "Hand-checked stratified sample, 31 Oct 2026: Apple CDN positives 0/50 false positives (95% upper bound ~6%); CDN negatives 0/25 with a valid file anywhere; format labels 50/50 agree; assetlinks positives 24/25 confirmed by Google's Digital Asset Links API; assetlinks negatives 1/25 false negative. See VALIDATION-NOTES.md.",
  "limits": "One snapshot from one network (India). Origin servers that block bots or time out count as negatives for assetlinks, so assetlinks is a lower bound. The CDN view misses about 10 domains whose file exists only at origin (Apple has not fetched it). Having a file does not prove links work in an app."
 },
 "aggregates": [
  {
   "segment": "all",
   "metric": "https_reachable",
   "count": 8023,
   "denominator": 10000,
   "percent": 80.2,
   "definition": "Answered at least one HTTPS request (apex or www) within 12 s"
  },
  {
   "segment": "all",
   "metric": "aasa_on_apple_cdn",
   "count": 2166,
   "denominator": 10000,
   "percent": 21.7,
   "definition": "Apple's CDN (app-site-association.cdn-apple.com) serves a valid-JSON apple-app-site-association file for the apex or www host"
  },
  {
   "segment": "all",
   "metric": "applinks",
   "count": 2075,
   "denominator": 2166,
   "percent": 95.8,
   "definition": "...that file has an applinks section (Universal Links)"
  },
  {
   "segment": "all",
   "metric": "components",
   "count": 1021,
   "denominator": 2166,
   "percent": 47.1,
   "definition": "...applinks uses the iOS 13+ components format (any entry)"
  },
  {
   "segment": "all",
   "metric": "legacy_paths_only",
   "count": 987,
   "denominator": 2166,
   "percent": 45.6,
   "definition": "...applinks uses only the older paths format"
  },
  {
   "segment": "all",
   "metric": "webcredentials",
   "count": 1066,
   "denominator": 2166,
   "percent": 49.2,
   "definition": "...file has a webcredentials section (Password AutoFill / passkeys association)"
  },
  {
   "segment": "all",
   "metric": "appclips",
   "count": 281,
   "denominator": 2166,
   "percent": 13.0,
   "definition": "...file has an appclips section"
  },
  {
   "segment": "all",
   "metric": "activitycontinuation",
   "count": 352,
   "denominator": 2166,
   "percent": 16.3,
   "definition": "...file has an activitycontinuation section (Handoff)"
  },
  {
   "segment": "all",
   "metric": "aasa_cdn_unparseable",
   "count": 41,
   "denominator": 10000,
   "percent": 0.4,
   "definition": "Apple's CDN serves a file for the host but it is not valid JSON (and no valid copy exists for apex/www)"
  },
  {
   "segment": "all",
   "metric": "assetlinks",
   "count": 1719,
   "denominator": 10000,
   "percent": 17.2,
   "definition": "Direct HTTPS fetch of /.well-known/assetlinks.json (apex or www, no redirects) returns a JSON list with at least one statement (lower bound)"
  },
  {
   "segment": "all",
   "metric": "handle_all_urls",
   "count": 1678,
   "denominator": 1719,
   "percent": 97.6,
   "definition": "...a statement grants delegate_permission/common.handle_all_urls (Android App Links)"
  },
  {
   "segment": "all",
   "metric": "get_login_creds",
   "count": 547,
   "denominator": 1719,
   "percent": 31.8,
   "definition": "...a statement grants delegate_permission/common.get_login_creds (credential sharing)"
  },
  {
   "segment": "all",
   "metric": "both",
   "count": 1512,
   "denominator": 10000,
   "percent": 15.1,
   "definition": "aasa_on_apple_cdn and assetlinks"
  },
  {
   "segment": "all",
   "metric": "ios_only",
   "count": 654,
   "denominator": 10000,
   "percent": 6.5,
   "definition": "aasa_on_apple_cdn but not assetlinks"
  },
  {
   "segment": "all",
   "metric": "android_only",
   "count": 207,
   "denominator": 10000,
   "percent": 2.1,
   "definition": "assetlinks but not aasa_on_apple_cdn"
  },
  {
   "segment": "all",
   "metric": "multi_app_aasa",
   "count": 1323,
   "denominator": 2166,
   "percent": 61.1,
   "definition": "aasa_on_apple_cdn file lists more than one app ID"
  },
  {
   "segment": "rank 1-1,000",
   "metric": "https_reachable",
   "count": 730,
   "denominator": 1000,
   "percent": 73.0,
   "definition": "Answered at least one HTTPS request (apex or www) within 12 s"
  },
  {
   "segment": "rank 1-1,000",
   "metric": "aasa_on_apple_cdn",
   "count": 301,
   "denominator": 1000,
   "percent": 30.1,
   "definition": "Apple's CDN (app-site-association.cdn-apple.com) serves a valid-JSON apple-app-site-association file for the apex or www host"
  },
  {
   "segment": "rank 1-1,000",
   "metric": "applinks",
   "count": 283,
   "denominator": 301,
   "percent": 94.0,
   "definition": "...that file has an applinks section (Universal Links)"
  },
  {
   "segment": "rank 1-1,000",
   "metric": "components",
   "count": 146,
   "denominator": 301,
   "percent": 48.5,
   "definition": "...applinks uses the iOS 13+ components format (any entry)"
  },
  {
   "segment": "rank 1-1,000",
   "metric": "legacy_paths_only",
   "count": 127,
   "denominator": 301,
   "percent": 42.2,
   "definition": "...applinks uses only the older paths format"
  },
  {
   "segment": "rank 1-1,000",
   "metric": "webcredentials",
   "count": 181,
   "denominator": 301,
   "percent": 60.1,
   "definition": "...file has a webcredentials section (Password AutoFill / passkeys association)"
  },
  {
   "segment": "rank 1-1,000",
   "metric": "appclips",
   "count": 42,
   "denominator": 301,
   "percent": 14.0,
   "definition": "...file has an appclips section"
  },
  {
   "segment": "rank 1-1,000",
   "metric": "activitycontinuation",
   "count": 64,
   "denominator": 301,
   "percent": 21.3,
   "definition": "...file has an activitycontinuation section (Handoff)"
  },
  {
   "segment": "rank 1-1,000",
   "metric": "aasa_cdn_unparseable",
   "count": 7,
   "denominator": 1000,
   "percent": 0.7,
   "definition": "Apple's CDN serves a file for the host but it is not valid JSON (and no valid copy exists for apex/www)"
  },
  {
   "segment": "rank 1-1,000",
   "metric": "assetlinks",
   "count": 241,
   "denominator": 1000,
   "percent": 24.1,
   "definition": "Direct HTTPS fetch of /.well-known/assetlinks.json (apex or www, no redirects) returns a JSON list with at least one statement (lower bound)"
  },
  {
   "segment": "rank 1-1,000",
   "metric": "handle_all_urls",
   "count": 236,
   "denominator": 241,
   "percent": 97.9,
   "definition": "...a statement grants delegate_permission/common.handle_all_urls (Android App Links)"
  },
  {
   "segment": "rank 1-1,000",
   "metric": "get_login_creds",
   "count": 112,
   "denominator": 241,
   "percent": 46.5,
   "definition": "...a statement grants delegate_permission/common.get_login_creds (credential sharing)"
  },
  {
   "segment": "rank 1-1,000",
   "metric": "both",
   "count": 223,
   "denominator": 1000,
   "percent": 22.3,
   "definition": "aasa_on_apple_cdn and assetlinks"
  },
  {
   "segment": "rank 1-1,000",
   "metric": "ios_only",
   "count": 78,
   "denominator": 1000,
   "percent": 7.8,
   "definition": "aasa_on_apple_cdn but not assetlinks"
  },
  {
   "segment": "rank 1-1,000",
   "metric": "android_only",
   "count": 18,
   "denominator": 1000,
   "percent": 1.8,
   "definition": "assetlinks but not aasa_on_apple_cdn"
  },
  {
   "segment": "rank 1-1,000",
   "metric": "multi_app_aasa",
   "count": 217,
   "denominator": 301,
   "percent": 72.1,
   "definition": "aasa_on_apple_cdn file lists more than one app ID"
  },
  {
   "segment": "rank 1,001-5,000",
   "metric": "https_reachable",
   "count": 3110,
   "denominator": 4000,
   "percent": 77.8,
   "definition": "Answered at least one HTTPS request (apex or www) within 12 s"
  },
  {
   "segment": "rank 1,001-5,000",
   "metric": "aasa_on_apple_cdn",
   "count": 909,
   "denominator": 4000,
   "percent": 22.7,
   "definition": "Apple's CDN (app-site-association.cdn-apple.com) serves a valid-JSON apple-app-site-association file for the apex or www host"
  },
  {
   "segment": "rank 1,001-5,000",
   "metric": "applinks",
   "count": 874,
   "denominator": 909,
   "percent": 96.1,
   "definition": "...that file has an applinks section (Universal Links)"
  },
  {
   "segment": "rank 1,001-5,000",
   "metric": "components",
   "count": 432,
   "denominator": 909,
   "percent": 47.5,
   "definition": "...applinks uses the iOS 13+ components format (any entry)"
  },
  {
   "segment": "rank 1,001-5,000",
   "metric": "legacy_paths_only",
   "count": 414,
   "denominator": 909,
   "percent": 45.5,
   "definition": "...applinks uses only the older paths format"
  },
  {
   "segment": "rank 1,001-5,000",
   "metric": "webcredentials",
   "count": 468,
   "denominator": 909,
   "percent": 51.5,
   "definition": "...file has a webcredentials section (Password AutoFill / passkeys association)"
  },
  {
   "segment": "rank 1,001-5,000",
   "metric": "appclips",
   "count": 136,
   "denominator": 909,
   "percent": 15.0,
   "definition": "...file has an appclips section"
  },
  {
   "segment": "rank 1,001-5,000",
   "metric": "activitycontinuation",
   "count": 162,
   "denominator": 909,
   "percent": 17.8,
   "definition": "...file has an activitycontinuation section (Handoff)"
  },
  {
   "segment": "rank 1,001-5,000",
   "metric": "aasa_cdn_unparseable",
   "count": 14,
   "denominator": 4000,
   "percent": 0.3,
   "definition": "Apple's CDN serves a file for the host but it is not valid JSON (and no valid copy exists for apex/www)"
  },
  {
   "segment": "rank 1,001-5,000",
   "metric": "assetlinks",
   "count": 687,
   "denominator": 4000,
   "percent": 17.2,
   "definition": "Direct HTTPS fetch of /.well-known/assetlinks.json (apex or www, no redirects) returns a JSON list with at least one statement (lower bound)"
  },
  {
   "segment": "rank 1,001-5,000",
   "metric": "handle_all_urls",
   "count": 671,
   "denominator": 687,
   "percent": 97.7,
   "definition": "...a statement grants delegate_permission/common.handle_all_urls (Android App Links)"
  },
  {
   "segment": "rank 1,001-5,000",
   "metric": "get_login_creds",
   "count": 242,
   "denominator": 687,
   "percent": 35.2,
   "definition": "...a statement grants delegate_permission/common.get_login_creds (credential sharing)"
  },
  {
   "segment": "rank 1,001-5,000",
   "metric": "both",
   "count": 626,
   "denominator": 4000,
   "percent": 15.7,
   "definition": "aasa_on_apple_cdn and assetlinks"
  },
  {
   "segment": "rank 1,001-5,000",
   "metric": "ios_only",
   "count": 283,
   "denominator": 4000,
   "percent": 7.1,
   "definition": "aasa_on_apple_cdn but not assetlinks"
  },
  {
   "segment": "rank 1,001-5,000",
   "metric": "android_only",
   "count": 61,
   "denominator": 4000,
   "percent": 1.5,
   "definition": "assetlinks but not aasa_on_apple_cdn"
  },
  {
   "segment": "rank 1,001-5,000",
   "metric": "multi_app_aasa",
   "count": 576,
   "denominator": 909,
   "percent": 63.4,
   "definition": "aasa_on_apple_cdn file lists more than one app ID"
  },
  {
   "segment": "rank 5,001-10,000",
   "metric": "https_reachable",
   "count": 4183,
   "denominator": 5000,
   "percent": 83.7,
   "definition": "Answered at least one HTTPS request (apex or www) within 12 s"
  },
  {
   "segment": "rank 5,001-10,000",
   "metric": "aasa_on_apple_cdn",
   "count": 956,
   "denominator": 5000,
   "percent": 19.1,
   "definition": "Apple's CDN (app-site-association.cdn-apple.com) serves a valid-JSON apple-app-site-association file for the apex or www host"
  },
  {
   "segment": "rank 5,001-10,000",
   "metric": "applinks",
   "count": 918,
   "denominator": 956,
   "percent": 96.0,
   "definition": "...that file has an applinks section (Universal Links)"
  },
  {
   "segment": "rank 5,001-10,000",
   "metric": "components",
   "count": 443,
   "denominator": 956,
   "percent": 46.3,
   "definition": "...applinks uses the iOS 13+ components format (any entry)"
  },
  {
   "segment": "rank 5,001-10,000",
   "metric": "legacy_paths_only",
   "count": 446,
   "denominator": 956,
   "percent": 46.7,
   "definition": "...applinks uses only the older paths format"
  },
  {
   "segment": "rank 5,001-10,000",
   "metric": "webcredentials",
   "count": 417,
   "denominator": 956,
   "percent": 43.6,
   "definition": "...file has a webcredentials section (Password AutoFill / passkeys association)"
  },
  {
   "segment": "rank 5,001-10,000",
   "metric": "appclips",
   "count": 103,
   "denominator": 956,
   "percent": 10.8,
   "definition": "...file has an appclips section"
  },
  {
   "segment": "rank 5,001-10,000",
   "metric": "activitycontinuation",
   "count": 126,
   "denominator": 956,
   "percent": 13.2,
   "definition": "...file has an activitycontinuation section (Handoff)"
  },
  {
   "segment": "rank 5,001-10,000",
   "metric": "aasa_cdn_unparseable",
   "count": 20,
   "denominator": 5000,
   "percent": 0.4,
   "definition": "Apple's CDN serves a file for the host but it is not valid JSON (and no valid copy exists for apex/www)"
  },
  {
   "segment": "rank 5,001-10,000",
   "metric": "assetlinks",
   "count": 791,
   "denominator": 5000,
   "percent": 15.8,
   "definition": "Direct HTTPS fetch of /.well-known/assetlinks.json (apex or www, no redirects) returns a JSON list with at least one statement (lower bound)"
  },
  {
   "segment": "rank 5,001-10,000",
   "metric": "handle_all_urls",
   "count": 771,
   "denominator": 791,
   "percent": 97.5,
   "definition": "...a statement grants delegate_permission/common.handle_all_urls (Android App Links)"
  },
  {
   "segment": "rank 5,001-10,000",
   "metric": "get_login_creds",
   "count": 193,
   "denominator": 791,
   "percent": 24.4,
   "definition": "...a statement grants delegate_permission/common.get_login_creds (credential sharing)"
  },
  {
   "segment": "rank 5,001-10,000",
   "metric": "both",
   "count": 663,
   "denominator": 5000,
   "percent": 13.3,
   "definition": "aasa_on_apple_cdn and assetlinks"
  },
  {
   "segment": "rank 5,001-10,000",
   "metric": "ios_only",
   "count": 293,
   "denominator": 5000,
   "percent": 5.9,
   "definition": "aasa_on_apple_cdn but not assetlinks"
  },
  {
   "segment": "rank 5,001-10,000",
   "metric": "android_only",
   "count": 128,
   "denominator": 5000,
   "percent": 2.6,
   "definition": "assetlinks but not aasa_on_apple_cdn"
  },
  {
   "segment": "rank 5,001-10,000",
   "metric": "multi_app_aasa",
   "count": 530,
   "denominator": 956,
   "percent": 55.4,
   "definition": "aasa_on_apple_cdn file lists more than one app ID"
  }
 ],
 "aasa_file_stats": {
  "all": {
   "median_app_ids_per_aasa": 2.0,
   "median_aasa_bytes": 1082.5
  },
  "rank 1-1,000": {
   "median_app_ids_per_aasa": 3,
   "median_aasa_bytes": 1923
  },
  "rank 1,001-5,000": {
   "median_app_ids_per_aasa": 2,
   "median_aasa_bytes": 1216
  },
  "rank 5,001-10,000": {
   "median_app_ids_per_aasa": 2.0,
   "median_aasa_bytes": 813.5
  }
 }
}