Unlock gate
Gate flow
Start → Open offer → Step → Unlock
GET
/api/unlock/{slug}Link meta (title). Never exposes destination.
POST
/api/unlock/{slug}Gate actions
json
// start
{ "action": "start" }
// ack_offer (obbligatorio)
{ "action": "ack_offer", "sessionToken": "…", "format": "interstitial", "step": 0 }
// step (dopo 10s dal ack)
{ "action": "step", "sessionToken": "…", "format": "interstitial" }
// unlock (dopo 3 step)
{ "action": "unlock", "sessionToken": "…" }json
{
"destinationUrl": "https://…",
"contentText": "…",
"hasText": true,
"earned": 0.012
}- 10s server timer after ack_offer
- Format and step order validated
- Destination + .txt text only after full unlock
- One-shot session
GET
/api/unlock/guardVPN/proxy check — { vpn: boolean }
The visitor completes 3 ad steps (banner/native). Social bar and popunder run on the host page. Only then do they receive destinationUrl and optional contentText for a .txt download.
Adsterra zones are platform-side (creators do not configure ads). GET /api/unlock/guard detects VPN/adblock before showing ads.
