---
title: "Bot Detection with Botd"
description: "Botd is a browser library for bot detection. In this template we'll be using it alongside botd-integrations for bot detection at the edge."
url: "https://vercel.com/templates/next.js/bot-protection-botd"
links:
  repository: "https://github.com/vercel/examples/tree/main/edge-middleware/bot-protection-botd"
  demo: "https://edge-functions-bot-protection-botd.vercel.app"
  deploy: "https://vercel.com/new/clone?demo-title=Bot+Detection+with+Botd&demo-description=Botd+is+a+browser+library+for+bot+detection.+In+this+template+we%27ll+be+using+it+alongside+botd-integrations+for+bot+detection+at+the+edge.&demo-url=https%3A%2F%2Fedge-functions-bot-protection-botd.vercel.app&project-name=bot-protection-botd&repository-name=bot-protection-botd&repository-url=https%3A%2F%2Fgithub.com%2Fvercel%2Fexamples%2Ftree%2Fmain%2Fedge-middleware%2Fbot-protection-botd&env=NEXT_PUBLIC_BOTD_API_TOKEN&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5uv6WmXoOgYIZIBhRSPGPe%2F7b36957edbc6a0de982298d365a1c508%2Fedge-functions-bot-protection-botd.vercel.app_.png"
---

# Bot Detection with Botd

Botd is a browser library for bot detection. In this template we'll be using it alongside botd-integrations for bot detection at the edge.

---
name: Bot Detection with Botd
slug: bot-protection-botd
description: Botd is a browser library for bot detection. In this template we'll be using it alongside botd-integrations for bot detection at the edge.
framework: Next.js
useCase: Edge Middleware
css: Tailwind
deployUrl: https://vercel.com/new/clone?repository-url=https://github.com/vercel/examples/tree/main/edge-middleware/bot-protection-botd&env=NEXT_PUBLIC_BOTD_API_TOKEN&project-name=bot-protection-botd&repository-name=bot-protection-botd
demoUrl: https://edge-functions-bot-protection-botd.vercel.app
relatedTemplates:
  - bot-protection-datadome
---

# Bot Detection with Botd

[Botd](https://github.com/fingerprintjs/botd) (by [FingerprintJS](https://fingerprintjs.com/)) is a browser library for bot detection. In this demo we'll be using it alongside [botd-integrations](https://github.com/fingerprintjs/botd-integrations) for bot detection at the edge.

## Demo

https://edge-functions-bot-protection-botd.vercel.app

If you try and go to [/blocked](https://edge-functions-bot-protection-botd.vercel.app/blocked) you'll see the [/bot-detected](https://github.com/vercel/examples/tree/main/edge-middleware/bot-protection-botd/pages/bot-detected.tsx) page being rendered instead, done by a rewrite from the edge after it identifies you as a bot. We do that by changing the user agent of the request before making a request to Botd.

## How to Use

You can choose from one of the following two methods to use this repository:

### One-Click Deploy

Deploy the example using [Vercel](https://vercel.com?utm_source=github&utm_medium=readme):

[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/vercel/examples/tree/main/edge-middleware/bot-protection-botd&env=NEXT_PUBLIC_BOTD_API_TOKEN&project-name=bot-protection-botd&repository-name=bot-protection-botd)

### Clone and Deploy

Execute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [pnpm](https://pnpm.io/installation) to bootstrap the example:

```bash
pnpm create next-app --example https://github.com/vercel/examples/tree/main/edge-middleware/bot-protection-botd bot-protection-botd
```

You'll need to have a token for the beta access of [Botd](https://github.com/fingerprintjs/botd), the token is free and there are instructions in their [github repo](https://github.com/fingerprintjs/botd) on how to get one.

Once that's done, copy the `.env.example` file in this directory to `.env.local` (which will be ignored by Git):

```bash
cp .env.example .env.local
```

Then open `.env.local` and set the Botd API token to match your token.

Next, run Next.js in development mode:

```bash
pnpm dev
```

Deploy it to the cloud with [Vercel](https://vercel.com/new?utm_source=github&utm_medium=readme&utm_campaign=edge-middleware-eap) ([Documentation](https://nextjs.org/docs/deployment)).

## Related Templates

### [Bot Protection with DataDome](https://vercel.com/templates/next.js/bot-protection-datadome)

DataDome can provide real-time bot protection and other security protections to any website. In this template we'll be using it at the edge.

---

## Additional documentation

The [Vercel Knowledge Base](https://vercel.com/kb) contains guides and answers to common questions about Vercel, including deployment, framework configuration, domains, caching, and troubleshooting.
