{"uid":"cap_GFj2U6CweIvgMe_xNaiV9","slug":"how-is-bot-verify-73469f3d","name":"how.is Bot Verify","description":"Verify a crawler's identity: is this IP + user-agent really Googlebot, Bingbot, GPTBot or ClaudeBot, an impostor using the name, another bot, or a person?","url":"https://how.is/v1/bot/verify?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"ip":{"type":"string","description":"The visitor's public IPv4 or IPv6 address"},"ua":{"type":"string","maxLength":1000,"description":"The User-Agent header it sent (omit or empty if none)"},"ja4":{"type":"string","maxLength":80,"description":"Optional TLS JA4 fingerprint, e.g. t13d1516h2_8daaf6152771_02713d6af862"}}},"responseSchema":{"type":"json","example":{"data":{"_shape":"data: verdict (verified / impostor / unknown_bot / likely_human_or_unclassified), confidence, automation_likely, claimed, identified_as{operator, method, evidence}, reasons[], how_to_act, checks{published_ranges, reverse_dns, asn}, observatory{network, fingerprint, claimed_family, impostors_seen}."},"result":"Crawler identity check for the requested subject","receipt":{"rail":"x402","tool":"bot_verify","charge_usd":0.005,"settlement_tx":"0x…"}}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.005","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.005/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_i6Fpo87ei8Ozf66kPjvBn","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.005","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Verifies whether an IP address and user-agent belong to a legitimate known crawler (Googlebot, Bingbot, GPTBot, ClaudeBot), an impostor, another bot, or a human","exampleAgentPrompt":"Check whether the visitor at IP 66.249.66.1 with user-agent 'Googlebot/2.1 (+http://www.google.com/bot.html)' is actually a real Googlebot or an impostor pretending to be one.","exampleUseCases":[{"title":"Block fake Googlebot from scraping","prompt":"Someone is hitting our site claiming to be Googlebot from IP 203.0.113.42 with user-agent 'Googlebot/2.1' — can you check if it's actually Google or a fake bot trying to scrape us?"},{"title":"Validate GPTBot before allowing crawl","prompt":"Before I allow this crawler access to our premium content, can you verify that IP 23.98.65.2 with user-agent 'GPTBot/1.0' is genuinely OpenAI's GPTBot and not someone impersonating it?"},{"title":"Classify unknown bot in access logs","prompt":"I'm seeing a lot of traffic from 185.220.101.5 with user-agent 'ClaudeBot/1.0' in my server logs — is that really Anthropic's ClaudeBot, another bot, or could it be a human or impostor?"}],"resultDescription":"Returns a verdict (verified, impostor, unknown_bot, or likely_human_or_unclassified), a confidence score, an automation_likely boolean, the claimed and identified operator, the verification method and supporting evidence, a list of reasons, recommended action (how_to_act), and detailed check results including published IP range membership, reverse DNS resolution, and ASN info. Also includes observatory data on the network, TLS fingerprint, claimed crawler family, and any impostors seen.","failureModes":["Invalid or private IP address returns error or low-confidence result","Missing user-agent may reduce accuracy of classification","Unknown or novel crawlers may return unknown_bot verdict with low confidence","TLS JA4 fingerprint mismatch may flag legitimate crawlers if infrastructure changes","Network timeouts during reverse DNS or ASN lookups may degrade response quality","Payment failure over x402 protocol blocks the call"],"whenToPreferThis":"Use this endpoint when you need to definitively verify whether a specific IP + user-agent pair belongs to a major known crawler (Googlebot, GPTBot, Bingbot, ClaudeBot) rather than an impostor. It is especially valuable when protecting content from unauthorized scrapers masquerading as legitimate bots, when enforcing crawler access policies, or when auditing server access logs. Prefer this over generic IP reputation services when the question is specifically about crawler identity and legitimacy rather than spam or abuse scoring.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-31T18:40:06.423Z","isFirstParty":false,"canonicalSlug":"how-is-bot-verify-73469f3d"}