v1.0.0 Live API

API Developer Documentation

High-performance automated solvers for Rotational Captchas and 2 Similar Objects Matching Captchas with 1–5ms execution latency.

Try in Interactive Playground ⚡ Read Auth Setup

Authentication Requirement

Pass your API key in either an HTTP header or query parameter for all endpoints:

Header: X-API-Key: rk_xxxxxxxxxxxx
Query: ?api_key=rk_xxxxxxxxxxxx
POST /api/predict/rotational
Latency: ~2.5 ms

Solves Rotational Captchas (Outer Ring & Inner Disc) using OpenCV seam cross-correlation. Returns exact rotation target angle, slider drag angle, correction angle, and peak confidence score.

Request Payload (JSON)

{ "outer_image": "<base64_string_or_data_uri>", "inner_image": "<base64_string_or_data_uri>" }

Response Format (JSON)

{ "predicted_rotation": 67.95, "label_angle": 67.95, "processing_time_ms": 2.54 }
POST /api/predict/similar-objects
Latency: ~8.0 ms

Evaluates matching similarity between 2 candidate objects/images for "Select 2 Similar Objects" captchas using OpenCV ORB feature keypoints and HSV color histogram correlation.

Request Payload (JSON)

{ "image_a": "<base64_string_or_data_uri>", "image_b": "<base64_string_or_data_uri>" }

Response Format (JSON)

{ "is_match": true, "similarity_score": 0.895, "confidence": "high", "matching_keypoints": 24, "color_similarity": 0.942, "feature_similarity": 0.848, "processing_time_ms": 7.82, "solver": "opencv_feature_matcher" }

Code Implementation Examples

import requests import base64 API_URL = "http://localhost:8000" API_KEY = "rk_your_api_key_here" def get_base64(path): with open(path, "rb") as f: return base64.b64encode(f.read()).decode("utf-8") # 1. Rotational Captcha Solve response = requests.post( f"{API_URL}/api/predict/rotational", json={ "outer_image": get_base64("outer.png"), "inner_image": get_base64("inner.png") }, headers={"X-API-Key": API_KEY} ) print("Rotational Result:", response.json()) # 2. Similar Objects Match Solve match_res = requests.post( f"{API_URL}/api/predict/similar-objects", json={ "image_a": get_base64("obj1.png"), "image_b": get_base64("obj2.png") }, headers={"X-API-Key": API_KEY} ) print("Similar Objects Result:", match_res.json())
const fs = require('fs'); const API_URL = 'http://localhost:8000'; const API_KEY = 'rk_your_api_key_here'; function getBase64(path) { return fs.readFileSync(path, { encoding: 'base64' }); } async function runSolver() { // Rotational Captcha const res = await fetch(`${API_URL}/api/predict/rotational`, { method: 'POST', headers: { 'X-API-Key': API_KEY, 'Content-Type': 'application/json' }, body: JSON.stringify({ outer_image: getBase64('outer.png'), inner_image: getBase64('inner.png') }) }); console.log('Rotational Angle:', await res.json()); } runSolver();
curl -X POST "http://localhost:8000/api/predict/rotational" \ -H "X-API-Key: rk_your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "outer_image": "iVBORw0KGgoAAAANSUhEUgAA...", "inner_image": "iVBORw0KGgoAAAANSUhEUgAA..." }'