Check a smart link for dead routes before publishing
Catch a missing country destination before real traffic hits it — with two checks of different depth.
There are two read-only checks, and they don't catch the same problems. Run both before pointing live buttons at a smart link.
GET /api/admin/smartlinks/{id}/validate
Runs the exact production resolver across every country your audiences actually route here, and reports what would break in plain English:
- block — a real dead end: some visitor lands nowhere (
dead_route), or (once creator-owned hosts exist) a fan would fall back to the platform owner's own OnlyFans link (owner_default_leak). - warn — soft issues: the smart link is off (
inactive), an enabled arm has no destination anywhere (arm_no_dest), or a non-trivial policy (geo rules, or the trial arm on) has no buttons pointed at it yet (unused).
Each issue carries a fix target so the panel can jump straight to the broken country or arm.
The routing endpoint — the more complete check
/validate is a resolver model — it only sees what the live /r/<slug> route would actually
serve. A country whose paid link exists but has an empty URL ("unminted") still resolves,
because the resolver just falls through to the shared default. /validate stays green while that
country's traffic (and its attribution) silently merges into "other countries."
GET /api/admin/smartlinks/{id}/routing is the diagnostic that catches this. It returns, per country, the honest status of both
arms (live / inactive / unminted / none), the effective paid/trial split, and folds in
everything /validate reports on top — so it's a superset, not an alternative. Each issue there
also carries a ready fix_call (e.g. dress_country{domain: '...', country: 'DE', arm: 'paid'})
meant for an agent or script to act on directly, plus a plain-language why and impact.
Use /validate for a quick green/red check; use /routing when the number doesn't match what you
expect, or before trusting a country's revenue numbers.
What's next
Once both checks are clean, wire the traffic source up — see Connect an ad platform.