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/guard

VPN/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.