Skip to main content
Piloterr
Back to library

Website Antibot API

Detect which anti-bot protection protects a website before you scrape. Get the vendor, confidence level, and matching clues from a single URL check.

Active1 credit = 1 requestGET/v2/website/antibot

Endpoint Overview

Detailed documentation, pricing, and usage examples.

OverviewLink to Overview

Before scraping a website, it helps to know what kind of bot protection stands in your way. The Website Antibot API answers that question: send a URL and get back the protection vendor Piloterr recognizes (Cloudflare, DataDome, Akamai, a captcha, and more).

Piloterr loads the page once, like a normal browser visit, and looks at the response: HTTP headers, cookies, and page content. It reports what it finds, how sure it is, and the clues that matched.

This is detection only. It does not solve captchas, bypass WAFs, or scrape protected pages. Use it to decide your next step: Website Crawler, Rendering, or WebUnlocker.

Costs 1 credit per call.

When to use itLink to When to use it

  • You tried to crawl a site and got blocked: find out who is blocking you.
  • You are building a pipeline and want a quick pre-check before picking an endpoint.
  • You monitor competitors or prospects and want to know if they added bot protection.
  • You need a simple answer for a client or teammate: "This site runs on Cloudflare Bot Management."

QuickstartLink to Quickstart

GET https://api.piloterr.com/v2/website/antibot?query=https://www.example.com&timeout=15

ParametersLink to Parameters

Parameter Type Required Default Description
query string yes - Full URL or domain name to analyze
timeout integer no 15 How long to wait for the site to respond (seconds)

Response exampleLink to Response example

{
  "requested_url": "https://www.example.com",
  "final_url": "https://www.example.com/",
  "status": 200,
  "vendor": "cloudflare",
  "confidence": "high",
  "detections": [
    {
      "vendor": "cloudflare",
      "confidence": "high",
      "evidence": [
        "Header cf-ray: abc123-LHR",
        "Cookie __cf_bm present (Bot Management)"
      ]
    }
  ]
}

When nothing is detected:

{
  "requested_url": "https://example.org",
  "final_url": "https://example.org/",
  "status": 200,
  "vendor": "none",
  "confidence": null,
  "detections": []
}

Understanding the responseLink to Understanding the response

Field Type What it means
requested_url string The URL you sent
final_url string Where you landed after redirects
status integer HTTP status code from the target (200, 403, 503, …)
vendor string Main protection detected. Shortcut for the best match in detections. Use none when nothing matched.
confidence string or null Confidence for the main vendor. high, medium, or low. null when vendor is none.
detections array All matches found, best match first. Can contain several vendors on the same site (for example Cloudflare + reCAPTCHA).

Each item in detections:

Field Type What it means
vendor string Protection identified (cloudflare, datadome, recaptcha, …)
confidence string Confidence for this specific match
evidence string[] Human-readable clues: headers, cookies, or page markers that triggered the match

How to read it: start with root vendor + confidence for a quick answer. Open detections when you need the full picture or when several protections overlap.

Detected protectionsLink to Detected protections

What you may see on the site vendor value
Cloudflare (WAF, Bot Management, "Just a moment" page) cloudflare
Cloudflare Turnstile cloudflare
Akamai Bot Manager akamai
DataDome datadome
PerimeterX / HUMAN perimeterx
Imperva / Incapsula imperva
Kasada kasada
AWS WAF awswaf
Google reCAPTCHA recaptcha
hCaptcha hcaptcha

Good to knowLink to Good to know

  • A challenge page (403, 503, "Checking your browser") is still a successful analysis. That page is often exactly the signal you were looking for.
  • none is not a guarantee. Some protections only show up after JavaScript runs in a real browser.

What to do next on PiloterrLink to What to do next on Piloterr

Result Typical next step
none or light protection Try Website Crawler
JavaScript-heavy site Try Website Rendering
Strong bot manager (Cloudflare, DataDome, Akamai, …) Check if the domain is whitelisted, then try Website WebUnlocker

Error codesLink to Error codes

Code Cause
400 Missing or invalid URL
500 Site unreachable (timeout, DNS, connection error)

LimitationsLink to Limitations

  • Passive check: one HTTP request, no JavaScript execution on the page.
  • Captcha widgets or sensor scripts injected at runtime may not appear in the raw HTML.
  • For research and planning only, not for bypassing protections.

Related APIs

Expand your data capabilities with these complementary tools.

Website Crawler (POST)/v2/website/crawler

A robust solution for efficiently extracting a wide range of data from web pages.

POST1 credit = 1 requestActive
Website Crawler/v2/website/crawler

Fetch public pages with fast HTTP crawling (no JavaScript). Best first choice for static or server-rendered HTML; use Rendering or WebUnlocker when JS or anti-bot blocks you.

GET1 credit = 1 requestActive
Website Email Phone Extractor/v2/website/email_phone_extractor

Extract emails and phone numbers from websites for comprehensive contact details, including social media profiles across 12+ platforms.

GET1 credit = 1 requestActive
Website Rendering/v2/website/rendering

Render JavaScript-heavy pages in a headless browser and return post-render HTML. Use when Crawler returns empty DOM; escalate to WebUnlocker if bot protection blocks the session.

GET2 credits = 1 requestActive
Website Rendering Instructions (POST)/v2/website/rendering

Execute browser automation instructions (scroll, scroll_to_bottom) during headless rendering to trigger lazy-loaded content, bypass anti-bot detection, and scrape dynamically loaded pages.

POST2 credits = 1 requestActive
Website Screenshot/v2/website/screenshot

Browser-like Screenshot API that captures webpages as PNG/JPEG/WebP or PDF for previews, QA, reporting, monitoring, and archiving no headless setup.

GET2 credits = 1 requestActive
Website Technology/v2/website/technology

Identify the technologies behind any website CMS, frameworks, analytics, CDN, hosting, and more, for competitive market analysis and technological insight.

GET1 credit = 1 requestActive
Website WebUnlocker/v2/website/webunlocker

Bypass advanced anti-bot systems (Cloudflare, DataDome, Akamai, PerimeterX) on whitelisted domains. Combines browser rendering and unlock tooling; use after Crawler and Rendering fail.

GET3 credits = 1 requestActive
Website WebUnlocker (POST)/v2/website/webunlocker

Send POST requests to whitelisted websites or APIs through WebUnlocker to bypass advanced anti-bot protection and retrieve the upstream response.

POST3 credits = 1 requestActive

Ready to get started?

Your web scraping API is one click away. Start with +500 credits, no infrastructure to set up, no proxies to manage, and no credit card required.

  • +500 credits
  • No credit card required
  • All endpoints included