Set destinations
Bind real OnlyFans links to a smart link's paid/trial arms and countries, so visitors land on the intended offer.
A smart link's policy decides which arm (paid or trial) a visitor gets. The inventory —
the actual OnlyFans links — decides where that arm sends them. Every smart link needs at least
one destination for the default case (country '', arm paid) before it can serve real traffic.
Add or update a destination
POST /api/admin/smartlinks/{id}/inventory:
| Field | Notes |
|---|---|
arm | paid or ftl (trial). |
country | A 2-letter ISO code, or empty for the arm-wide default. Free text like "Germany" or "USA" is rejected — the resolver matches the visitor's own 2-letter code exactly, so anything else would be a silently dead destination. |
url | The real OnlyFans link. |
name | Optional label. |
Posting to an (arm, country) pair that this smart link already owns updates it in place — it's
an upsert, not a duplicate-or-fail.
PATCH /api/admin/smartlinks/{id}/inventory/{link_id} edits one row's url, name, or active
flag without touching the others.
Why it might refuse
country_invalid— the country isn't a 2-letter ISO code or empty.inventory_slot_taken(409) — another link already occupies this exact(domain, arm, country)slot. The/rresolver keys the live route by host + arm + country and always serves the lowest-id active row for that key, so a second insert would be a silent no-op: it would show up in your inventory list, yet real traffic would keep going to the old row. Edit the existing occupant instead of adding a new one.
Turning a destination active: false when it's the only thing serving that (arm, country)
doesn't remove the country from routing on its own — check what the country actually serves
afterwards with Validate before publishing,
since an inactive or missing link falls through to the shared default, not to a 404, unless nothing
covers it at all.
What's next
Once destinations are in place, validate the routing before pointing live buttons at the slug — an unminted or missing country link can silently leak traffic to the wrong offer without ever showing as a dead link.