Repository navigation
Add documented bots and refresh verification methods - #69
Conversation
Compare getarcis/well-known-bots, official GitHub forks, and monperrus/crawler-user-agents against this list. Official forks had no unique commits. getarcis's full corpus matched ours; its slim file added browser-automation tools. Upstream added hundreds of entries since the hard-fork; add the documented, well-known ones and widen a few existing patterns that missed live UAs. Co-authored-by: david <david@arcjet.com>
Review the remaining upstream bulk-import entries and keep only those with an accessible docs URL, a distinctive User-Agent token mentioned on that page, and at least one matching instance. Skip scanners, generic clients, homepage-only listings, and dead documentation URLs. Co-authored-by: david <david@arcjet.com>
Re-search the 170 monperrus leftovers whose homepages lacked a token, then mine the identifier sources cited by arXiv 2603.28546v1. Add only entries with first-party User-Agent documentation (Kagi, Snap Ads, Yahoo, Grafana, Jetpack, LinkChecker, Tabstack, Exa, Kimi, Crawlspace) and widen Montastic to the observed lowercase UA. Co-authored-by: david <david@arcjet.com>
Re-check every published verification source, switch Meta geofeed URLs to HTTPS, add first-party CIDR/IP/DNS feeds found via GoodBots and provider docs, update Censys ranges, and drop unpublished Adagio IPs. Co-authored-by: david <david@arcjet.com>
There was a problem hiding this comment.
Arcjet Review — 🟢 Low Risk
Decision: Checked
Rationale: Data-only change to a bot registry JSON file. No code, no auth, no secrets, no dependencies. Description is thorough and matches the diff. Size is large but homogeneous (bot record additions plus small pattern/URL edits). No escalation triggers fire. One selector-escaping inconsistency is worth the author's attention but does not warrant blocking — the file remains schema-valid and other selectors in the PR are correct.
Summary of Changes
Adds 163 new bot definitions and extends verification (CIDR/IP/DNS) on ~10 existing bots (Googlebot, DuckDuckGo, Apple, CommonCrawl, Mojeek, Telegram, UptimeRobot, Better Uptime, Freshping, censys-inspect). Widens UA regexes for Checkly, Perplexity-User, AmazonAdBot, Qwant, NewRelic Synthetics, Datadog Synthetic, Montastic. Switches Facebook geofeed URLs from http to https. Removes unpublished Adagio static IPs.
Notes
Diff is ~4k lines, above the 500-line size threshold, but the content is homogeneous JSON records so automated review remains reliable. Several widened regex patterns (Checkly, AmazonAdBot with no trailing delimiter, [Pp]uppeteer/[Ss]elenium/[Cc]ypress/[Pp]laywright) will now match any UA containing those substrings — likely intentional given this is a bot registry, but worth the maintainer's attention if false positives matter downstream.
The AI assessed this PR as approvable, but the trust level (1) does not allow auto-approval. A human reviewer must approve this PR.
Review: 9f36478c | Model: anthropic/claude-opus-4-7 | Powered by Arcjet Review
Use README-correct JSONPath selectors on new Google and WatchFor entries, tighten Anomura and Poduptime patterns, and point Freshping at the official IP article. Co-authored-by: david <david@arcjet.com>
Drop stale or fabricated bot entries, update Cloudflare AI Search and Amazon User metadata from current provider docs, remove discontinued Freshping IP verification, and use a representative Cypress Electron UA. Co-authored-by: david <david@arcjet.com>
Summary
Corpus 635 → 793. Bots with verification 79 → 85.
Bots added (158) from getarcis/well-known-bots, monperrus/crawler-user-agents, official docs, and sources cited by arXiv 2603.28546v1. Entries require a loadable source and a distinctive, substantiated User-Agent token.
Patterns widened so live UAs match: Checkly, Perplexity User, AmazonAdBot, Qwant, New Relic Synthetics, Datadog Synthetic, Montastic.
Verification review (every existing method, plus GoodBots as a map of first-party feeds — third-party GitHub raw lists were not added):
http://→ HTTPS.censys-inspect: added current ranges from Censys docs.Still valid as-is:
Google,
Bing,
Ahrefs,
OpenAI,
Claude,
Perplexity,
Stripe,
Datadog,
New Relic,
Pingdom,
Kagi,
Quantcast,
Oncrawl,
Algolia,
Kimi.
Yandex stays DNS-only because it does not publish IPs.
Not added as verification:
Semrush (no consecutive blocks),
Twitter/X (no first-party feed),
WebPageTest (HTML table only),
Marginalia (outdated),
GoodBots raw lists.
Review follow-up
DeepSeekBot, ThousandEyes, Playwright, Puppeteer, and Selenium entries.cloudflare-ai-search; matches currentCloudflare-AI-Searchand legacyCloudflare-AutoRAG. SourceAmzn-User/0.1to Amazon’s published UA. Amazon’s IP page is HTML with embedded JSON, so it is not added as an unsupportedhttp-jsonsource. SourceAnomura/andPoduptime;\s*\+fediverse\.observerpatterns.Test plan
node validate.js --check(exit 0)git diff --check(exit 0)