/botd

Bot detection agent that runs in the browser. Identify JavaScript bots, browser spoofing, virtual machines and much more.

Primary LanguageTypeScriptMIT LicenseMIT

FingerprintJS

Current NPM version Monthly downloads from NPM Monthly downloads from jsDelivr

Discord server

🌱 Botd

currently in beta - API may change

Botd is a browser library for JavaScript bot detection (detecting automation tools, browser spoofing and virtual machines).

Cloud Integrations

The end-user's browser scripts for bot detection are just one part of the bigger solution. In production, it's essential to handle automation tools even on the backend. In the botd-integrations repository you can find an explanation of integration flow together with sample middleware integration examples for various cloud providers like Cloudflare, Fastly, or Amazon.

Install from CDN

<script>
function initBotd() {
  // Initialize an agent at application startup.
  const botdPromise = Botd.load({
      token: "<token>",
      mode: "allData"
  });
  // Get the bot detection result when you need it.
  botdPromise
      .then(botd => botd.detect())
      .then(result => {
        console.log(result);
      });
}
</script>
<script async
        src="https://cdn.jsdelivr.net/npm/@fpjs-incubator/botd-agent@0/dist/botd.min.js"
        onload="initBotd()">
</script>

Run this code

Alternatively you can install from NPM to use with Webpack/Rollup/Browserify

npm i @fpjs-incubator/botd-agent
# or
yarn add @fpjs-incubator/botd-agent
import Botd from '@fpjs-incubator/botd-agent';

// Initialize an agent at application startup.
const botdPromise = Botd.load({
    token: "<token>",
    mode: "allData"
});

(async () => {
  // Get the bot detection result when you need it.
  const botd = await botdPromise
  const result = await botd.detect();
  console.log(result);
})();

Run this code

A free token is required to connect to our bot detection API.

To get your token, please ping us on Discord or email us at botd@fingerprintjs.com (just type token in the email subject, no need to compose a body)
The free token is limited to 1M API calls per month while in beta.

Supported detection scenarios

Automation Tools & Frameworks
Chrome Headless
Playwright
PhantomJS
Browser spoofing
User Agent spoofing
OS spoofing
VM detection
VirtualBox
VmWare
Parallels
Search bots
Google Bot
Bing Bot
Many more tools and configurations are supported

Contributing

See the contributing guidelines to learn how to start a playground, test, and build.

© 2021 FingerprintJS, Inc