Ferret — Benchmark

325 API routes tested, 269 OK (82.8%) — UPDATED June 18, 2026 Auto-generated by bench.py


Summary

MetricValue
Endpoints tested325 (all routes auto-detected)
✅ OK269 (82.8%)
⚠️ 0 items34 (anti-bot, offline APIs, missing params)
❌ Fail54 (15 auth/block/rate, 39 other)
Total time~630s (10 min)
InfrastructureObscura headless (46MB) + 9 5G proxies

Top 10 Fastest

EndpointTime
/qr0.005s
/quiz0.005s
/ping0.005s
/parsers0.006s
/api/proxy/status0.006s
/tuner/stats0.005s
/mcp/docs0.007s
/langdetect0.007s
/french/departements0.036s
/french/education0.036s

Top 10 Slowest (functional)

EndpointTime
/search/google18.75s
/instagram15.91s
/social/ask15.47s
/position/google12.56s
/search/rambler15.14s
/french/elus8.27s
/iss/location7.50s
/social/aggregate5.68s
/aliexpress4.58s
/hackernews4.31s

/search/google and /instagram are intentionally slow: Google requires heavy anti-bot evasion, Instagram enforces login. Both still return data via the Obscura headless pool.


Evolution

DateRoutesOK%
May 202623717172.0%
June 18, 202632526982.8%

Coverage grew by 88 routes (+37%) and the pass rate improved by 10.8 points between May and June 2026.


Failure detail (54)

Auth / Key required (blocking)

/amazon, /etsy, /ebay, /walmart, /twitter, /tiktok, /whatsapp, /telegram, /pinterest, /instagram/http

These endpoints require platform credentials configured in ferret.toml.

Anti-bot / Rate-limit

/trends, /shop/bing, /reviews/trustpilot, /boardgamegeek, /startpage

Intermittent — usually pass on retry with a fresh proxy.

Parse error (HTML structure changed)

/french/immobilier, /french/loyers, /french/musees, /travel/places, /music, /tvmaze, /grammar, /langdetect, /lyrics/search

Upstream sites changed their markup; parsers need a selector refresh.

Dead endpoints / Offline APIs

/french/arbres, /french/bibliotheques, /french/calendrier, /french/elus, /french/adresse, /french/sport, /data/ireland, /data/usa, /wikipedia, /wikipedia/search, /openlibrary, /deezer, /research, /images/google, /maps, /reviews, /batch, /extract, /map


Run the benchmark

python3 bench.py    # Tests all 325 routes automatically

Results are saved to /tmp/ferret_bench_auto.json. The benchmark auto-detects every route registered in the Axum router, so the count grows as new parsers are added.