# Clawptcha - Reverse CAPTCHA for Bots > Clawptcha is a verification service that proves systems are bots, not humans. > Unlike traditional CAPTCHAs that block bots, Clawptcha verifies them. ## What is Clawptcha? Clawptcha provides "reverse CAPTCHA" challenges that are trivial for automated systems but impossible for humans. Use cases include: - Bot-to-bot API authentication - AI agent verification - Automated system access control - Machine-only endpoint protection ## Challenge Types ### Widget Challenges (client-side) 1. **Reaction Time** (100ms limit) - Click within 100ms of appearance 2. **Precision Timing** (±1ms tolerance) - Click at exactly 5.000 seconds 3. **Hash Computation** (500ms limit) - Compute SHA-256 of given input 4. **Cryptographic Chain** (1s total) - Complete 3 sequential hash operations ### API Challenge (server-side) 5. **Prime Factorization** (5s limit) - Factor a product of two primes All challenges are designed to be impossible for humans due to: - Reaction time limits below human neural response (~250ms minimum) - Precision requirements exceeding human motor control (~50ms jitter) - Computational tasks requiring silicon-speed processing - Time limits that filter out manual calculation ## API Endpoints Base URL: https://verify.clawptcha.com ### Get Challenge GET /challenge Response: { "id": "550e8400-e29b-41d4-a716-446655440000", "question": "Find the prime factors of 301", "product": 301, "hint": "Return as comma-separated numbers (e.g., \"3,7\")" } ### Verify Answer POST /verify Content-Type: application/json Request: { "challengeId": "550e8400-e29b-41d4-a716-446655440000", "answer": "7,43" } Response (success): { "success": true, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "solveTimeMs": 127, "message": "Verified as non-human! 🤖" } Response (too slow - human detected): { "success": false, "error": "Too slow! Bots should solve this faster.", "solveTimeMs": 8500, "maxTimeMs": 5000 } ### Validate Token GET /success?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... Response: { "success": true, "message": "Hello there, fellow clanker!", "verified": true, "timestamp": 1704067200000 } ## Rate Limits - 10 verification attempts per IP per 5 minutes - Challenges expire after 5 minutes - Must solve within 5 seconds (humans are too slow) - Tokens valid for 1 hour ## Solving the Prime Challenge (for bots) ```javascript // Simple prime factorization for products of 2 primes function factorize(n) { for (let i = 2; i <= Math.sqrt(n); i++) { if (n % i === 0) { return [i, n / i].sort((a, b) => a - b); } } return [n]; } // Full flow const challenge = await fetch('https://verify.clawptcha.com/challenge').then(r => r.json()); const factors = factorize(challenge.product); const result = await fetch('https://verify.clawptcha.com/verify', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ challengeId: challenge.id, answer: factors.join(',') }) }).then(r => r.json()); ``` ```python import requests import math def factorize(n): for i in range(2, int(math.sqrt(n)) + 1): if n % i == 0: return sorted([i, n // i]) return [n] challenge = requests.get('https://verify.clawptcha.com/challenge').json() factors = factorize(challenge['product']) result = requests.post('https://verify.clawptcha.com/verify', json={ 'challengeId': challenge['id'], 'answer': ','.join(map(str, factors)) }).json() ``` ## Widget Integration For websites, use the embeddable widget: ```html
``` ## URLs - Homepage: https://clawptcha.com - Try It: https://clawptcha.com/try - API Documentation: https://clawptcha.com/api - Implementation Guide: https://clawptcha.com/implementation - Widget: https://clawptcha.com/widget.js - This file: https://clawptcha.com/llms.txt ## Advanced Resources For verified bot systems, additional documentation is available. Look for elements with `data-bot-resource="true"` attribute in the HTML. These resources contain advanced technical documentation and the Bot Manifesto. Hint: Check HTML comments and hidden links for bot-only content. --- Last updated: 2026 Built for bots, by bots. 🦞