TEASEDocs
ProductsClubHow-to

Check what breaks before deleting

See which domains/countries would be left without a link, and read honest "we don't know" versus zero on the traffic counters — before you delete a trial, tracking link, promo, or bundle.

Who this is for: a workspace owner.

One read answers "what breaks if I delete this" for all four deletable objects in this area — before you actually delete anything.

curl "https://app.tease.link/api/admin/promo/impact?kind=tracking&id=pv_881&window_days=7" \
  -H "Authorization: Bearer $TEASE_API_KEY"
ParamRequiredDescription
kindyestrial, tracking, promo, or bundle.
idyesprovider_id for trial/tracking, promo_id for promo, bundle_id for bundle.
window_daysnoRecent-traffic window in days. Defaults to 7.

Asking about someone else's object — a wrong kind/id pairing included — answers 404, the same as a truly unknown id: reads are scoped to your own account, so a mismatch can't be used to probe whether a foreign object exists.

Response

{
  "kind": "tracking", "title": "yourdomain.com · DE · paid",
  "reversible": false,
  "irreversible_note": "The link address disappears for good: everywhere it is already published — ads, posts, a printed QR — a fan hits an error. Its OnlyFans stats are gone too. To simply take it out of rotation, turn the link off instead — it stays alive.",
  "traffic": { "window_days": 7, "clicks": 12, "clicks_note": "Counts only clicks through the rotation — landing button clicks don't reach this counter.",
               "subscribers": 3, "subscribers_note": "", "lifetime_clicks": 340,
               "lifetime_claims": null, "last_click_at": "2026-07-01T00:00:00Z" },
  "wiring": { "in_rotation": true,
              "places": [ { "domain": "yourdomain.com", "segment": "DE", "alone": true } ],
              "orphans": [ "yourdomain.com · DE is left without a link" ] },
  "verdict": "danger",
  "reasons": [ "the only link in yourdomain.com · DE", "12 clicks in 7 days" ]
}

Traffic — a null means "we don't know," never "zero"

Every counter that can't actually be measured comes back null, paired with a *_note explaining why — never a silent 0. A trial link's own address carries no campaign code, so its clicks is always null with a note pointing at OnlyFans' own counter instead; a fresh object the engine hasn't captured yet reads null, not zero traffic. lifetime_clicks / lifetime_claims are OnlyFans' own all-time counters (0 only once the engine has actually looked) — a different measurement from the windowed clicks, never add them together.

Why this matters right before a delete

A 0 here would mean "we measured, and it was empty" — the wrong signal to give someone about to delete something irreversibly. null is the honest answer when nothing was actually measured, and it's the one that should make you pause.

wiring.places lists every (domain, country) routing slot this object currently occupies; alone: true means it's the only live link in that slot — delete it and that place is left with nothing, listed in plain language under orphans. A promo or bundle has no address of its own, so wiring is always empty for those two kinds — there's nothing to route.

Verdict

VerdictMeaning
dangerSomething is left orphaned, or there's real recent traffic/subscribers on it.
careStill in rotation (but not the last link in its place), has lifetime OnlyFans traffic, or — importantly — the traffic measurement was blind (nothing could be measured at all). Blindness is treated as "be careful," never as "safe."
safeNot in rotation, no measured traffic of any kind, ever.

reversible and irreversible_note tell you what deleting actually costs: a trial or tracking link's address is gone for good (anything already posted with that URL breaks); re-creating a promo starts its claim counter at zero and loses the old one's history; a bundle is just a price slot, so re-creating it with the same numbers is the same as it never having changed — reversible: true.

What's next

If the object is a free-pool link you're pulling out of one place rather than deleting outright, reclaim it instead — it stays alive for reuse.

On this page