Dokumentacija za Razvojne Inženjere
Nevidljiva bot zaštita. Bez CAPTCHA-i. API-pristup.
Brzi Početak
1
Instaliraj i Integriraj
Dodaj skriptu i dohvati token
2
Provjeri na Poslužitelju
Provjeri valjanost tokena na svom pozadinskom sustavu (backendu)
Brzi Test s cURL-om
Provjeri nonce iz naredbenog retka
# Provjeri 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);
})();Sigurnost i Privatnost
- Bez kolačića – potpuno funkcioniranje bez kolačića
- Bez prikupljanja PII – usklađeno s GDPR-om i CCPA-om
- EU hosting – svi podaci ostaju u Europi
- WCAG usklađenost – dostupno svim korisnicima
- CSP usklađenost – korištenje s Content Security Policy:
Content-Security-Policy: script-src 'self' https://api.silentshield.io;API Referenca
API Version: 2025-10-01 · Base URL: https://api.silentshield.io
POST
/v1/verifyProvjeri SilentShield Nonce
Request Headers:
AuthorizationBearer YOUR_API_KEYContent-Typeapplication/jsonRequest Body:
tokenstringNonce za provjeruResponse:
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 je uspješno provjeren400Nevažeći zahtjev (nedostaje ili je netočan Nonce)401Nevažeći API ključ429Prekoračena granica stope (100 zahtjeva/min.)500Interna pogreška poslužiteljaSDK-ovi i Biblioteke
JavaScript ES6+
v1.0.1TypeScript
v1.0.1npm i @forge12interactive/silentshield-sdk-jsimport { 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.1npm i @forge12interactive/silentshield-sdk-jsimport { SilentShieldBackend } from "@forge12interactive/silentshield-sdk-js";
const backend = new SilentShieldBackend('your-secret-key');
// Provjera obrasca
const result = await backend.verifyFormSubmission(formData);
if (result.isValid) {
console.log('Čovjek provjeren!', result.formData);
}Vue.js
v1.0.1npm i @forge12interactive/silentshield-sdk-jsimport { 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();
// Pošalji s tokenom
}
}
};React
v1.0.1npm i @forge12interactive/silentshield-sdk-jsimport { 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();
// Pošalji s tokenom
};
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.
Spremni za početak?
Izradite besplatan račun i dohvatite svoj ključ stranice u nekoliko sekundi.
Započnite sada