Integraciones
Gate de formulario
Un token desde el navegador del visitante, comprobado por tu servidor con el secreto del sitio.
Emitir un token
Parámetros
- sitekeystringObligatorio
La clave del sitio del gate de formulario, desde el panel.
- signalsobjectObligatorio
Señales del navegador que envía gate.js: headless_flags, user_agent y client.
Campos de la respuesta
- tokenstring
Token de un solo uso para el formulario. Caduca a los cinco minutos.
- expiresAtstring
Cuándo caduca el token, ISO 8601.
- errorstring
Si falla: 403 hostname_mismatch (el Origin de la página no está entre los nombres de host del gate), 404 unknown_site, 429 rate_limit_exceeded o quota_exhausted. gate.js envía entonces el formulario sin token.
curl -X POST https://ipscanner.io/v1/gate/token \
-H "Origin: https://shop.example.com" \
-H "Content-Type: application/json" \
-d '{
"sitekey": "site_4fQ8nZ2kLm7xR1vT9cBw",
"signals": {
"headless_flags": {
"webdriver": false,
"headless_ua": false
},
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 Safari/605.1.15"
}
}'{
"token": "Z3RfNGZROG5aMmtMbTd4UjF2VDljQnd8MTc2MDAwMDAwMHxrM3Z4.Qm9yZGVyIGNvbGxpZQ",
"expiresAt": "2026-10-09T09:35:00Z"
}Verificar un token
Parámetros
- secretstringObligatorio
El secreto del gate de formulario. Solo en el servidor, nunca en una página.
- tokenstringObligatorio
El valor ipscanner-token que envió el formulario.
- remote_ipstring
La IP del visitante tal como la ve tu servidor. Opcional, fija ip_match.
Campos de la respuesta
- successboolean
True cuando el token es válido y no se ha usado.
- classstring
verified_bot, malicious_automation, ai_agent, tor, vpn, proxy, relay, hosting o human.
- actionstring
La acción de tu política para la clase: allow, flag o block.
- modestring
monitor o enforce. En modo monitor, tú decides qué hacer con un block.
- confidencenumber
Confianza de 0 a 1.
- networkobject
classification, anonymized, provider y vpn_provider. provider y vpn_provider desde Starter, null en Free.
- network.vpn_providerstring | null
Servicio VPN de una dirección vpn (NordVPN, Mullvad...), si se conoce. Desde Starter, null en Free.
- signalsstring[]
Las señales de automatización que saltaron, como webdriver. Vacío para un visitante normal.
- hostnamestring
El nombre de host de la página para la que se emitió el token.
- issued_atstring
Cuándo se emitió el token, ISO 8601.
- ip_matchboolean
False cuando se envía remote_ip y no coincide con la dirección para la que se emitió el token.
- lockedstring[]
Rutas con puntos de los campos enviados como null en este plan. Ausente desde Starter.
- planRequiredstring
Plan que incluye los campos bloqueados. Ausente desde Starter.
- errorstring
Con success en false: 400 missing_token, invalid_token, expired_token, already_used o hostname_mismatch; 401 invalid_secret.
curl -X POST https://ipscanner.io/v1/gate/verify \
-H "Content-Type: application/json" \
-d '{
"secret": "gs_YOUR_GATE_SECRET",
"token": "Z3RfNGZROG5aMmtMbTd4UjF2VDljQnd8MTc2MDAwMDAwMHxrM3Z4.Qm9yZGVyIGNvbGxpZQ",
"remote_ip": "203.0.113.7"
}'{
"success": true,
"class": "human",
"action": "allow",
"mode": "enforce",
"confidence": 0.6,
"network": {
"classification": "residential_clean",
"anonymized": false,
"provider": null,
"vpn_provider": null
},
"signals": [],
"hostname": "shop.example.com",
"issued_at": "2026-10-09T09:30:00Z",
"ip_match": true
}