Is my app link broken?

Is my app link broken? (public tool).

THE CALL, PART BY PART

method

POST

host

strait.link

version

/v1

resource

/tools/link-check

POST /v1/tools/link-check

Auth: none. Public and rate-limited.

Request

Opens one pasted link the way an Android phone, an iPhone and a desktop browser would (following redirects, reading app and store hand-offs) and says what each device gets: the app, the store, the web, or a dead end. Works on any provider (page.link, Branch, AppsFlyer, Strait, your own domain). No key needed. POST so the link never lands in an access log; nothing is stored. Rate-limited (10 per minute per IP, shared with /v1/tools/app-links, and 60 checks a minute across all visitors); CORS only for https://straitlink.in, https://app.straitlink.in and http://localhost:<port>. Only public https links on a domain name: IP addresses, private networks and odd ports are refused (400). At most 8 hops per device, 5 s each.

Body (JSON)

url required string
The full link, e.g. https://yourapp.page.link/abc

Response

  • 200 The report. verdict: ok | at_risk | broken | unchecked. Each platform result has an outcome (app | store | web | dead | loop | error), a one-line summary, the hops it took, and the app / store it reached.
  • 400 Not a full link, or refused (IP address, private network, odd port, not https)
  • 429 Rate limited (per IP), or the checker is busy (all visitors); Retry-After
Request · curl
curl -X POST https://strait.link/v1/tools/link-check \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://hilltop.page.link/summer"
  }'

The response, printed

Response 200
{
  "url": "https://hilltop.page.link/summer",
  "provider": "Firebase Dynamic Links",
  "firebase": true,
  "verdict": "broken",
  "headline": "This link is broken on every device.",
  "checkedAt": "2026-10-01T10:00:00.000Z",
  "platforms": [
    {
      "platform": "android",
      "outcome": "dead",
      "summary": "Android: the link answers 404 (not found).",
      "hops": [
        {
          "url": "https://hilltop.page.link/summer",
          "status": 404
        }
      ]
    },
    {
      "platform": "ios",
      "outcome": "dead",
      "summary": "iPhone: the link answers 404 (not found).",
      "hops": [
        {
          "url": "https://hilltop.page.link/summer",
          "status": 404
        }
      ]
    },
    {
      "platform": "desktop",
      "outcome": "dead",
      "summary": "Desktop: the link answers 404 (not found).",
      "hops": [
        {
          "url": "https://hilltop.page.link/summer",
          "status": 404
        }
      ]
    }
  ]
}