Human verification, simplified.

Protect your app from bots. Respect your users.

Get Started Deploy

Features

How does verification work?
Users are shown a human avatar image and asked to describe what they see by typing a word. Accepted answers include "human", "person", "avatar", "box", and similar terms. This text-based approach is accessible and works across languages.
How secure is it?
The verification uses a static image with multiple accepted keywords, making it resistant to simple bots while remaining accessible. Each session is tracked server-side to prevent rapid retry attacks.
How do I integrate it?
Install the package, set your GEMINI_API_KEY, and add the middleware to your Flask app. It's a drop-in solution with no database required.
Harper web interface

Setup

git clone https://github.com/bniladridas/path.git
cd path
pip install -r requirements.txt
export GEMINI_API_KEY=your-key
python run.py

API

Demo