Documentación para Desarrolladores

Protección invisible contra bots. Sin CAPTCHAs. API-first.

Inicio Rápido

1

Instalar e Incrustar

Añada el script y obtenga un token

2

Verificar en el Servidor

Valide el token en su backend

Prueba Rápida con cURL

Verificar nonce desde la línea de comandos

# Verificar Nonce
curl -X POST https://api.silentshield.io/v1/verify \
  -H "api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"nonce": "256ea6c63c3ccdd317e05cbc9ef0c659"}'

Frontend Integration

Add the client script with SRI and defer attributes

<!-- Add to <head> with SRI for security -->
(function () {
  var KEY = "YOUR_API_KEY";
  var SITE = location.hostname;
  var V = "2025.09.1";
  var s = document.createElement('script');
  s.src = "https://api.silentshield.io/client.js?k=" + encodeURIComponent(KEY)
    + "&v=" + encodeURIComponent(V)
    + "&site=" + encodeURIComponent(SITE);
  s.async = true;
  s.crossOrigin = "anonymous";
  document.head.appendChild(s);
})();

Seguridad y Privacidad

  • Sin cookies – funcionamiento completamente sin cookies
  • Sin recopilación de PII – conforme a GDPR y CCPA
  • Alojamiento en la UE – todos los datos permanecen en Europa
  • Conforme a WCAG – accesible para todos los usuarios
  • Compatible con CSP – usar con Content Security Policy:
Content-Security-Policy: script-src 'self' https://api.silentshield.io;

Referencia de la API

API Version: 2025-10-01 · Base URL: https://api.silentshield.io

POST/v1/verify

Verificar Nonce SilentShield

Request Headers:

AuthorizationBearer YOUR_API_KEY
Content-Typeapplication/json

Request Body:

tokenstringEl Nonce a verificar

Response:

Success (200):

{
  "ok": true,
  "verdict": "human",
  "confidence": 0.95,
  "request_nonce": "req_abc123"
}

Error:

{
  "ok": false,
  "verdict": "error",
  "confidence": 0,
  "request_nonce": "req_abc123",
  "error": "Invalid nonce"
}

Status Codes:

200Nonce verificado con éxito
400Solicitud no válida (nonce faltante o incorrecto)
401Clave API no válida
429Límite de tasa excedido (100 solicitudes/min.)
500Error interno del servidor

SDKs y Bibliotecas

JavaScript ES6+

v1.0.1
npm i @forge12interactive/silentshield-sdk-js
import { SilentShield } from "@forge12interactive/silentshield-sdk-js";

const shield = new SilentShield({
  siteKey: 'your-site-key',
  debug: true
});

await shield.initialize();
const token = await shield.getToken();

TypeScript

v1.0.1
npm i @forge12interactive/silentshield-sdk-js
import { SilentShield, type SilentShieldConfig } from "@forge12interactive/silentshield-sdk-js";

const config: SilentShieldConfig = {
  siteKey: 'your-site-key',
  timeout: 10000
};

const shield = new SilentShield(config);
const token: string = await shield.getToken();

Node.js Backend

v1.0.1
npm i @forge12interactive/silentshield-sdk-js
import { SilentShieldBackend } from "@forge12interactive/silentshield-sdk-js";

const backend = new SilentShieldBackend('your-secret-key');

// Form verification
const result = await backend.verifyFormSubmission(formData);
if (result.isValid) {
  console.log('Human verified!', result.formData);
}

Vue.js

v1.0.1
npm i @forge12interactive/silentshield-sdk-js
import { SilentShield } from "@forge12interactive/silentshield-sdk-js";

export default {
  async mounted() {
    this.shield = new SilentShield({ siteKey: 'your-key' });
    await this.shield.initialize();
  },
  
  methods: {
    async handleSubmit() {
      const token = await this.shield.getToken();
      // Submit with token
    }
  }
};

React

v1.0.1
npm i @forge12interactive/silentshield-sdk-js
import { SilentShield } from "@forge12interactive/silentshield-sdk-js";
import { useEffect, useState } from 'react';

function MyForm() {
  const [shield, setShield] = useState(null);
  
  useEffect(() => {
    const init = async () => {
      const s = new SilentShield({ siteKey: 'your-key' });
      await s.initialize();
      setShield(s);
    };
    init();
  }, []);
  
  const handleSubmit = async (e) => {
    const token = await shield?.getToken();
    // Submit with token
  };
  
  return <form onSubmit={handleSubmit}>...</form>;
}

Resources

Help Center

Comprehensive documentation with getting started guides, integration tutorials, configuration references, and troubleshooting.

Changelog

Stay up to date with the latest features, improvements, and fixes.

¿Listo para empezar?

Crea una cuenta gratuita y obtén tu clave de sitio en segundos.

Empezar