{"uid":"cap_C-SC0JC12NP9KCDQ2q1VJ","slug":"how-is-bot-verify-batch-8045a717","name":"how.is Bot Verify Batch","description":"Verify many crawler visitors (IP + user-agent) in one call: real Googlebot, GPTBot, ClaudeBot or impostor, billed per item.","url":"https://how.is/v1/bot/verify/batch?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","required":["ip"],"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"}},"additionalProperties":false},"maxItems":100,"minItems":1,"description":"1-100 visitors; price is per item"}}},"responseSchema":{"type":"json","example":{"data":{"_shape":"data: results[] (one bot_verify verdict per item, or {ip, error}), counts by verdict, billing{items, unit_price_usd}."},"result":"Crawler identity check (batch) for the requested subject","receipt":{"rail":"x402","tool":"bot_verify_batch","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_iEO1GqJlzdS_ZsMvzsLjE","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":"Batch-verify up to 100 crawler visitors (IP + user-agent + optional TLS fingerprint) to determine if each is a real known bot (Googlebot, GPTBot, ClaudeBot, etc.) or an impostor, billed per item.","exampleAgentPrompt":"Can you check these 50 visitor IPs and their user-agents from today's server logs and tell me which ones are real Googlebots, GPTBots, or ClaudeBots versus impostors pretending to be crawlers?","exampleUseCases":[{"title":"Screening scrapers in server logs","prompt":"I've got about 80 entries from yesterday's access logs where the user-agent claims to be Googlebot or GPTBot — can you verify all of them at once and tell me which are real crawlers and which are fakes?"},{"title":"Protecting a rate-limit allowlist","prompt":"We give known AI crawlers like GPTBot and ClaudeBot unlimited access, but I'm worried some are spoofing. Can you batch-check these 30 IPs and user-agents and flag any impostors so I can remove them from our allowlist?"},{"title":"Auditing bot traffic for billing fairness","prompt":"Our CDN bills differently for verified bot traffic versus human traffic. Can you run these 100 visitor IPs and user-agent strings through a bot identity check so I can see which ones are legitimate crawlers and adjust the billing breakdown?"}],"resultDescription":"An array of one verdict per submitted item, each indicating whether the IP+user-agent combination corresponds to a real known crawler (Googlebot, Bingbot, GPTBot, ClaudeBot, etc.) or an impostor, plus aggregate counts by verdict and a billing summary showing items checked, unit price, and settlement transaction hash.","failureModes":["Invalid or private IP address returns an error object for that item","Batch exceeds 100 items returns a 400 error","Malformed user-agent string truncated or rejected if over 1000 characters","JA4 fingerprint in wrong format may be ignored or cause item-level error","Payment failure via x402 results in 402 response and no verdicts returned","Unknown or emerging bots not yet in the known-crawler database may return an 'unknown' verdict"],"whenToPreferThis":"Use this endpoint when you need to verify crawler identity for many visitors at once, reducing per-call overhead and cost compared to single-item verification. Prefer this over the single-item verify endpoint when processing log files, access records, or real-time batches of 2–100 visitors. It is the right choice when you need to distinguish real AI crawlers (GPTBot, ClaudeBot) or search engine bots (Googlebot, Bingbot) from impostors at scale, especially when you have TLS JA4 fingerprints available to strengthen confidence.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-31T18:40:17.148Z","isFirstParty":false,"canonicalSlug":"how-is-bot-verify-batch-8045a717"}