@aientrophy/sdk
v0.3.5
Published
Aientrophy Security SDK – bot detection, threat monitoring, and CAPTCHA protection
Downloads
117
Maintainers
Readme
@aientrophy/sdk
Real-time bot detection, macro detection, and CAPTCHA protection for web applications.
Aientrophy SDK monitors browser behavior (mouse movements, keystrokes) to detect bots, automated tools, and suspicious activity — protecting your site from fraud, abuse, and scraping.
Getting Started
A Client Key is required to use this SDK. To obtain your key:
| Method | Contact | |--------|---------| | Website | aientrophy.com | | Email | [email protected] | | Console | console.aientrophy.com (existing customers) |
Once registered, you'll receive a Client Key through the Client Console to integrate the SDK.
Installation
npm install @aientrophy/sdkOr via CDN:
<script src="https://api.aientrophy.com/sdk/latest/aientrophy.min.js"></script>Quick Start
NPM (React / Next.js / SPA)
import { Aientrophy } from '@aientrophy/sdk';
const ai = new Aientrophy({
clientKey: 'YOUR_CLIENT_KEY'
});
ai.protect();CDN (HTML)
<script>
window.SecuritySDKConfig = {
endpoint: 'https://api.aientrophy.com/api/v1/events',
clientKey: 'YOUR_CLIENT_KEY',
callbacks: {
onReady: function() { console.log('SDK activated'); },
onBlock: function(verdict) { /* handle block */ }
}
};
</script>
<script src="https://api.aientrophy.com/sdk/latest/aientrophy.min.js"></script>Configuration
const ai = new Aientrophy({
clientKey: 'YOUR_CLIENT_KEY',
endpoint: 'https://api.aientrophy.com/api/v1/events', // optional (default)
debug: false, // optional
callbacks: {
onReady: () => console.log('SDK activated'),
onThreatDetected: (event) => console.warn('Threat:', event.type),
onBlock: (verdict) => { /* handle block */ },
onChallenge: (verdict, resolve) => resolve(false),
onAllow: (verdict) => { /* request allowed */ },
onError: (error) => console.error(error.code, error.message)
}
});
await ai.protect();Event API
Subscribe to security events dynamically:
// Listen for all threats
ai.on('threat', (event) => {
console.log('Threat detected:', event.type, event.data);
});
// Listen for specific threat type
ai.on('threat:rapid_click', (event) => {
disableButton(3000);
});
// Server verdicts
ai.on('block', (verdict) => {
window.location.href = '/blocked';
});
// One-time listener
ai.once('ready', () => {
console.log('SDK ready');
});
// Unsubscribe
const handler = (e) => { /* ... */ };
ai.on('threat', handler);
ai.off('threat', handler);What It Detects
| Event Type | Description | Severity |
|---|---|---|
| honeypot_triggered | Hidden trap field received input | Critical |
| integrity_violation | Event forgery detected (isTrusted=false) | Critical |
| invisible_interaction | Click on hidden/offscreen element | High |
| rapid_click | 3+ clicks within 500ms | High |
| behavior_metrics | Mouse entropy/speed anomaly | High |
| dom_mutation | External script injection detected | High |
| input_metrics | Robotic typing pattern | High |
| devtools_open | Developer tools opened | Medium |
Callbacks
| Callback | Event | When | Arguments |
|---|---|---|---|
| onReady | ready | SDK initialization complete | none |
| onError | error | SDK error occurred | { code, message } |
| onThreatDetected | threat / threat:TYPE | Local detection | { type, data, timestamp } |
| onBlock | block | Server blocked (score >= 100) | { action, score?, metadata? } |
| onChallenge | challenge | Server challenge (score >= 50) | (verdict, resolve) |
| onAllow | allow | Server allowed (200 OK) | { action } |
React Integration
import { useEffect } from 'react';
import { Aientrophy } from '@aientrophy/sdk';
function App() {
useEffect(() => {
const ai = new Aientrophy({ clientKey: 'YOUR_CLIENT_KEY' });
ai.on('threat', (event) => {
console.warn('Threat:', event.type);
});
ai.on('block', (verdict) => {
window.location.href = '/blocked';
});
ai.protect();
}, []);
return <div>...</div>;
}Support
- Website: aientrophy.com
- Email: [email protected]
- Console: console.aientrophy.com
License
MIT
