Skip to main content
  1. All Posts/

BotD

Tools TypeScript


<p>
  </a><br /> <a rel="nofollow noopener" target="_blank" href="https://discord.gg/39EpE2neBg"></p> 
  
  <p>
    </a>
  </p>
  
  <h2 dir="auto">
    <a rel="nofollow noopener" target="_blank" id="user-content-botd" class="anchor" aria-hidden="true" href="#botd"></a>BotD
  </h2>
  
  <p>
    BotD is an open source library that we created to make it easy for every developer to detect basic bots in their web apps.<br /> It is available under a permissive MIT license and will always be free for developers and commercial use.<br /> For more demanding applications we created a professional API-based bot detection software that is called <a rel="nofollow noopener" target="_blank" href="https://fingerprint.com/products/bot-detection/">Fingerprint Pro Bot Detection</a>.<br /> <a rel="nofollow noopener" target="_blank" href="https://fingerprintjs.github.io/BotD">⚡ View Our Demo</a>.
  </p>
  
  <h2 dir="auto">
    <a rel="nofollow noopener" target="_blank" id="user-content-quick-start" class="anchor" aria-hidden="true" href="#quick-start"></a>Quick start
  </h2>
  
  <h3 dir="auto">
    <a rel="nofollow noopener" target="_blank" id="user-content-cdn" class="anchor" aria-hidden="true" href="#cdn"></a>CDN
  </h3>
  
  <pre>&lt;script&gt;
// Initialize an agent at application startup, once per page/app.
const botdPromise = import('https://openfpcdn.io/botd/v1').then((Botd) =&gt; Botd.load())
// Get detection results when you need them.
botdPromise
    .then((botd) =&gt; botd.detect())
    .then((result) =&gt; console.log(result))
    .catch((error) =&gt; console.error(error))

</script>

  <p>
    <a rel="nofollow noopener" target="_blank" href="https://stackblitz.com/edit/botd-cdn-tkdie9?devtoolsheight=100&file=index.html">Run this code</a>
  </p>
  
  <h3 dir="auto">
    <a rel="nofollow noopener" target="_blank" id="user-content-npm" class="anchor" aria-hidden="true" href="#npm"></a>NPM
  </h3>
  
  <pre>npm i @fingerprintjs/botd
or>

or #

yarn add @fingerprintjs/botd

  <pre>import { load } from '@fingerprintjs/botd'

// Initialize an agent at application startup, once per page/app. const botdPromise = load() // Get detection results when you need them. botdPromise .then((botd) => botd.detect()) .then((result) => console.log(result)) .catch((error) => console.error(error))

  <p>
    <a rel="nofollow noopener" target="_blank" href="https://stackblitz.com/edit/botd-cdn-jwtcvu?devtoolsheight=100&file=index.js">Run this code</a><br /> 📕 Full documentation
  </p>
  
  <h2 dir="auto">
    <a rel="nofollow noopener" target="_blank" id="user-content--upgrade-to-fingerprint-pro-bot-detection-to-detect-sophisticated-bots-with-confidence" class="anchor" aria-hidden="true" href="#-upgrade-to-fingerprint-pro-bot-detection-to-detect-sophisticated-bots-with-confidence"></a>🤖 Upgrade to Fingerprint Pro Bot Detection to detect sophisticated bots with confidence.
  </h2>
  
  <p>
    <strong>Free for developers (up to 20K API calls / mo), unlimited free trials available, no credit card needed.</strong><br /> <a rel="nofollow noopener" target="_blank" href="https://fingerprint.com/products/bot-detection/">Fingerprint Pro Bot Detection</a> is a professional bot detection service that processes all information server-side and transmits it securely to your servers using server-to-server APIs.<br /> Fingerprint Pro Bot Detection provides both browser and server-side APIs that make the process of bot detection fast and secure. When using the Pro Bot Detection, use the browser JavaScript SDK to obtain the requestID value and then verify this value using our server API.<br /> The Pro product combines vast amounts of auxiliary data that bots leak (cursor movements, network overrides, browser changes and more) to be able to reliably deduplicate real users from automated software, resulting in the detection of popular automation tools, their derivatives and plugins.<br /> A big advantage of the Pro detection is that it&#8217;s able to distinguish good bots from bad ones that allow you to block malicious traffic without blocking search engine crawlers, monitoring workers, etc.
  </p>
  
  <p>
    <a rel="nofollow noopener" target="_blank" href="https://fingerprint.com/products/bot-detection/"></p> 
    
    <p>
      </a>
    </p>
    
    <p>
      Full product comparison:
    </p>
    
    <p>
      Open Source<br /> Pro
    </p>
    
    <h4 dir="auto">
      <a rel="nofollow noopener" target="_blank" id="user-content-core-features" class="anchor" aria-hidden="true" href="#core-features"></a>Core Features
    </h4>
    
    <p>
      100% open source<br /> yes<br /> no1
    </p>
    
    <p>
      Search engine detectionworks in all modern browsers &#8211; see our full list of <a rel="nofollow noopener" target="_blank" href="https://dev.fingerprint.com/docs/browser-support/">browsers supported</a>
    </p>
    
    <p>
      –<br /> ✓
    </p>
    
    <p>
      Automation web services detection<br /> –<br /> ✓
    </p>
    
    <p>
      Automation browser extensions detection<br /> –<br /> ✓
    </p>
    
    <h4 dir="auto">
      <a rel="nofollow noopener" target="_blank" id="user-content-detectable-automation-tools--frameworks" class="anchor" aria-hidden="true" href="#detectable-automation-tools--frameworks"></a>Detectable automation tools & frameworks
    </h4>
    
    <p>
      Headless Browsers (<a rel="nofollow noopener" target="_blank" href="https://www.google.com/chrome">Chrome</a>, <a rel="nofollow noopener" target="_blank" href="https://www.mozilla.org/en-US/firefox/new/">Firefox</a>)<br /> ✓<br /> ✓
    </p>
    
    <p>
      seleniumHQ/seleniumumbrella project encapsulating a variety of tools and libraries enabling web browser automation
    </p>
    
    <p>
      ✓<br /> ✓
    </p>
    
    <p>
      microsoft/playwrightNode.js library to automate Chromium, Firefox and WebKit with a single API
    </p>
    
    <p>
      ✓<br /> ✓
    </p>
    
    <p>
      ariya/phantomjsheadless WebKit scriptable with JavaScript
    </p>
    
    <p>
      ✓<br /> ✓
    </p>
    
    <p>
      segmentio/nightmarehigh-level browser automation library
    </p>
    
    <p>
      ✓<br /> ✓
    </p>
    
    <p>
      electron/electronframework lets you write cross-platform desktop applications using JavaScript, HTML and CSS
    </p>
    
    <p>
      ✓<br /> ✓
    </p>
    
    <p>
      laurentj/slimerjsscriptable browser
    </p>
    
    <p>
      ✓<br /> ✓
    </p>
    
    <h4 dir="auto">
      <a rel="nofollow noopener" target="_blank" id="user-content-detectable-stealth-plugins" class="anchor" aria-hidden="true" href="#detectable-stealth-plugins"></a>Detectable stealth plugins
    </h4>
    
    <p>
      berstend/puppeteer-extra/packages/puppeteer-extra-plugin-stealthplugin for puppeteer-extra to prevent detection.
    </p>
    
    <p>
      &#8211;<br /> ✓
    </p>
    
    <p>
      microlinkhq/browserlessefficient driver for controlling headless browsers built on top of puppeteer developed for scenarios where performance matters
    </p>
    
    <p>
      &#8211;<br /> ✓
    </p>
    
    <p>
      ultrafunkamsterdam/undetected-chromedriveroptimized Selenium Chromedriver patch which does not trigger anti-bot services
    </p>
    
    <p>
      &#8211;<br /> ✓
    </p>
    
    <p>
      MeiK2333/pyppeteer_stealthstealth plugin for pyppeteer
    </p>
    
    <p>
      &#8211;<br /> ✓
    </p>
    
    <h4 dir="auto">
      <a rel="nofollow noopener" target="_blank" id="user-content-additional-features" class="anchor" aria-hidden="true" href="#additional-features"></a>Additional Features
    </h4>
    
    <p>
      Server-side accuracy increasebased on additional server-side data, such as TLS crypto support, ipv4/v6 data and others
    </p>
    
    <p>
      –<br /> ✓
    </p>
    
    <p>
      Query APIbuild flexible workflows
    </p>
    
    <p>
      –<br /> ✓
    </p>
    
    <h4 dir="auto">
      <a rel="nofollow noopener" target="_blank" id="user-content-operations" class="anchor" aria-hidden="true" href="#operations"></a>Operations
    </h4>
    
    <p>
      Data security<br /> Your infrastructure<br /> Encrypted at rest
    </p>
    
    <p>
      Storage<br /> Your infrastructure<br /> Unlimited up to 1 yr
    </p>
    
    <p>
      Regions<br /> Your infrastructure<br /> Hosting in US, EU and Mumbai
    </p>
    
    <p>
      Compliance<br /> Your infrastructure<br /> GDPR, CCPA compliant2
    </p>
    
    <p>
      SLA<br /> No SLA<br /> 99.9% Uptime
    </p>
    
    <p>
      Support<br /> GitHub community<br /> Support team via email, chat, and call-back within 1 business day
    </p>
    
    <p>
      1. Pro uses the open source BotD library as well as proprietary technology for increased accuracy and result stability.<br /> 2. Fingerprint Pro is GDPR and CCPA compliant as the data processor. You still need to be compliant as the data controller and use the bot detection for fraud prevention under legitimate interest or ask for user consent.<br /> Pro result example:
    </p>
    
    <pre>{
"bot": {
    "result": "bad"
    "type": "selenium"
}

}

    <p>
      🍿 <a rel="nofollow noopener" target="_blank" href="https://fingerprint.com/products/bot-detection/">Live demo</a><br /> 📕 <a rel="nofollow noopener" target="_blank" href="https://dev.fingerprint.com">Fingerprint Pro documentation</a>
    </p>
    
    <h2 dir="auto">
      <a rel="nofollow noopener" target="_blank" id="user-content-migrating-from-v0" class="anchor" aria-hidden="true" href="#migrating-from-v0"></a>Migrating from <code>v0</code><br />
    </h2>
    
    <ul dir="auto">
      <li>
        Migration guide
      </li>
      <li>
        V0 documentation
      </li>
    </ul>
    
    <h2 dir="auto">
      <a rel="nofollow noopener" target="_blank" id="user-content-supported-browsers" class="anchor" aria-hidden="true" href="#supported-browsers"></a>Supported browsers
    </h2>
    
    <p>
      The library supports all popular browsers.<br /> See more details and learn how to run the library in old browsers in the browser support guide.
    </p>
    
    <h2 dir="auto">
      <a rel="nofollow noopener" target="_blank" id="user-content-where-to-get-support" class="anchor" aria-hidden="true" href="#where-to-get-support"></a>Where to get support
    </h2>
    
    <p>
      Thanks to our <a rel="nofollow noopener" target="_blank" href="https://fingerprint.com/blog/series-b/">series B funding</a>, we are happy to provide technical support for our open-source BotD library. We recommend using GitHub Issues to submit bugs or Discussions to ask questions.<br /> Using issues and discussions publicly will help the open-source community and other users with similar issues.<br /> However, if you require private support, please email us at oss-support@fingerprint.com.
    </p>
    
    <h2 dir="auto">
      <a rel="nofollow noopener" target="_blank" id="user-content-contributing" class="anchor" aria-hidden="true" href="#contributing"></a>Contributing
    </h2>
    
    <p>
      See the contributing guidelines to learn how to start a playground, test and build.
    </p>
    
    <h2 dir="auto">
      <a rel="nofollow noopener" target="_blank" id="user-content-other-products-by-fingerprint" class="anchor" aria-hidden="true" href="#other-products-by-fingerprint"></a>Other products by Fingerprint
    </h2>
    
    <ul dir="auto">
      <li>
        FingerprintJS &#8212; browser fingerprinting library that queries browser attributes and computes a hashed visitor identifier from them
      </li>
      <li>
        AEV &#8212; Android App Environment Verification API
      </li>
    </ul>
    
    <h3 dir="auto">
      <a rel="nofollow noopener" target="_blank" id="user-content-license" class="anchor" aria-hidden="true" href="#license"></a>License
    </h3>
    
    <p>
      MIT
    </p>
    
    <p>
      © 2022 FingerprintJS, Inc
    </p>