Require an 18+ confirmation before the page
Show a cover or drop consent screen once per visitor, not on every visit.
The 18+ gate is an optional confirmation step shown before the landing page itself, through the
gate section of POST /api/admin/bg/ui. A visitor confirms once per browser and is never asked
again on that device.
Turn it on
curl -X POST "https://app.tease.link/api/admin/bg/ui?domain=links.creator.com" \
-H "Authorization: Bearer $TEASE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"gate": {
"enabled": true,
"mode": "cover",
"blur": true,
"title": "Adults only",
"text": "This page contains sensitive content.",
"ok": "I’m 18 or older",
"leave": "Leave",
"leave_url": "https://google.com"
}
}'| Key | Meaning |
|---|---|
enabled | Whether the gate shows at all |
mode | cover — full-screen confirm before anything renders; drop — a compact sheet from the top edge, page visible behind it |
blur | Blur the page behind a cover-mode gate |
title, text | Custom copy, 64 / 300 characters — omit for the stock wording |
ok, leave | Button labels, 32 characters each |
leave_url | Where "leave" sends a visitor who declines; must be http(s). Empty = a neutral default destination |
Turn it off entirely with { "gate": null } — this removes the section rather than just
disabling it, so a later { "gate": { "enabled": false } } and a reset both leave no trace.
Confirm it's live
Open the domain in a private/incognito window after publishing: the gate should show before the page renders. Confirming it and reloading should not show it again (same browser, same domain) — that's the once-per-browser behavior working as intended.
Most creators don't need this
The gate is for human visitors — an extra layer of conservatism for strict traffic sources. Bots, scrapers, and in-app link scanners are handled separately by cloaking, which keeps content buttons invisible to them without bothering real fans.
Platform designs only
Like button and profile styling, the gate only renders on a built-in design (classic or
spotlight) — a domain on an uploaded custom HTML design
ignores this section.