All URIs are relative to https://scrapebadger.com
| Method | HTTP request | Description |
|---|---|---|
| WebDetectAntiBotAndCaptchaSystems | POST /v1/web/detect | Detect anti-bot and CAPTCHA systems |
| WebExtractStructuredData | POST /v1/web/extract | Extract structured data |
| WebGetBatchJobStatus | GET /v1/web/batch/{job_id} | Get batch job status |
| WebPollAnAutoUnblockDiscoveryJob | GET /v1/web/unblock/{job_id} | Poll an auto-unblock discovery job |
| WebScrapeAUrl | POST /v1/web/scrape | Scrape a URL |
| WebSubmitBatchScrapingJob | POST /v1/web/batch | Submit batch scraping job |
| WebTakeAScreenshot | POST /v1/web/screenshot | Take a screenshot |
| WebWebScraperHealthCheck | GET /v1/web/health | Web scraper health check |
| WebWebScraperHealthCheckHead | HEAD /v1/web/health | Web scraper health check |
Object WebDetectAntiBotAndCaptchaSystems ()
Detect anti-bot and CAPTCHA systems
Detect which anti-bot and CAPTCHA systems are present on a URL. Uses rnet to fetch the page and identify DataDome, Cloudflare, Akamai, Kasada, Amazon WAF, reCAPTCHA, hCaptcha, GeeTest, and more. Cost: 1 credit.
using System.Collections.Generic;
using System.Diagnostics;
using System.Net.Http;
using ScrapeBadger.Api;
using ScrapeBadger.Client;
using ScrapeBadger.Model;
namespace Example
{
public class WebDetectAntiBotAndCaptchaSystemsExample
{
public static void Main()
{
Configuration config = new Configuration();
config.BasePath = "https://scrapebadger.com";
// Configure API key authorization: ApiKeyAuth
config.AddApiKey("X-API-Key", "YOUR_API_KEY");
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// config.AddApiKeyPrefix("X-API-Key", "Bearer");
// create instances of HttpClient, HttpClientHandler to be reused later with different Api classes
HttpClient httpClient = new HttpClient();
HttpClientHandler httpClientHandler = new HttpClientHandler();
var apiInstance = new WebApi(httpClient, config, httpClientHandler);
try
{
// Detect anti-bot and CAPTCHA systems
Object result = apiInstance.WebDetectAntiBotAndCaptchaSystems();
Debug.WriteLine(result);
}
catch (ApiException e)
{
Debug.Print("Exception when calling WebApi.WebDetectAntiBotAndCaptchaSystems: " + e.Message);
Debug.Print("Status Code: " + e.ErrorCode);
Debug.Print(e.StackTrace);
}
}
}
}This returns an ApiResponse object which contains the response data, status code and headers.
try
{
// Detect anti-bot and CAPTCHA systems
ApiResponse<Object> response = apiInstance.WebDetectAntiBotAndCaptchaSystemsWithHttpInfo();
Debug.Write("Status Code: " + response.StatusCode);
Debug.Write("Response Headers: " + response.Headers);
Debug.Write("Response Body: " + response.Data);
}
catch (ApiException e)
{
Debug.Print("Exception when calling WebApi.WebDetectAntiBotAndCaptchaSystemsWithHttpInfo: " + e.Message);
Debug.Print("Status Code: " + e.ErrorCode);
Debug.Print(e.StackTrace);
}This endpoint does not need any parameter.
Object
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Successful Response | - |
[Back to top] [Back to API list] [Back to Model list] [Back to README]
Object WebExtractStructuredData ()
Extract structured data
Extract structured data from a URL using CSS or XPath selectors. (Phase 6)
using System.Collections.Generic;
using System.Diagnostics;
using System.Net.Http;
using ScrapeBadger.Api;
using ScrapeBadger.Client;
using ScrapeBadger.Model;
namespace Example
{
public class WebExtractStructuredDataExample
{
public static void Main()
{
Configuration config = new Configuration();
config.BasePath = "https://scrapebadger.com";
// Configure API key authorization: ApiKeyAuth
config.AddApiKey("X-API-Key", "YOUR_API_KEY");
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// config.AddApiKeyPrefix("X-API-Key", "Bearer");
// create instances of HttpClient, HttpClientHandler to be reused later with different Api classes
HttpClient httpClient = new HttpClient();
HttpClientHandler httpClientHandler = new HttpClientHandler();
var apiInstance = new WebApi(httpClient, config, httpClientHandler);
try
{
// Extract structured data
Object result = apiInstance.WebExtractStructuredData();
Debug.WriteLine(result);
}
catch (ApiException e)
{
Debug.Print("Exception when calling WebApi.WebExtractStructuredData: " + e.Message);
Debug.Print("Status Code: " + e.ErrorCode);
Debug.Print(e.StackTrace);
}
}
}
}This returns an ApiResponse object which contains the response data, status code and headers.
try
{
// Extract structured data
ApiResponse<Object> response = apiInstance.WebExtractStructuredDataWithHttpInfo();
Debug.Write("Status Code: " + response.StatusCode);
Debug.Write("Response Headers: " + response.Headers);
Debug.Write("Response Body: " + response.Data);
}
catch (ApiException e)
{
Debug.Print("Exception when calling WebApi.WebExtractStructuredDataWithHttpInfo: " + e.Message);
Debug.Print("Status Code: " + e.ErrorCode);
Debug.Print(e.StackTrace);
}This endpoint does not need any parameter.
Object
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Successful Response | - |
[Back to top] [Back to API list] [Back to Model list] [Back to README]
Object WebGetBatchJobStatus (string jobId)
Get batch job status
Get the status of a batch scraping job. (Phase 6)
using System.Collections.Generic;
using System.Diagnostics;
using System.Net.Http;
using ScrapeBadger.Api;
using ScrapeBadger.Client;
using ScrapeBadger.Model;
namespace Example
{
public class WebGetBatchJobStatusExample
{
public static void Main()
{
Configuration config = new Configuration();
config.BasePath = "https://scrapebadger.com";
// Configure API key authorization: ApiKeyAuth
config.AddApiKey("X-API-Key", "YOUR_API_KEY");
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// config.AddApiKeyPrefix("X-API-Key", "Bearer");
// create instances of HttpClient, HttpClientHandler to be reused later with different Api classes
HttpClient httpClient = new HttpClient();
HttpClientHandler httpClientHandler = new HttpClientHandler();
var apiInstance = new WebApi(httpClient, config, httpClientHandler);
var jobId = "jobId_example"; // string |
try
{
// Get batch job status
Object result = apiInstance.WebGetBatchJobStatus(jobId);
Debug.WriteLine(result);
}
catch (ApiException e)
{
Debug.Print("Exception when calling WebApi.WebGetBatchJobStatus: " + e.Message);
Debug.Print("Status Code: " + e.ErrorCode);
Debug.Print(e.StackTrace);
}
}
}
}This returns an ApiResponse object which contains the response data, status code and headers.
try
{
// Get batch job status
ApiResponse<Object> response = apiInstance.WebGetBatchJobStatusWithHttpInfo(jobId);
Debug.Write("Status Code: " + response.StatusCode);
Debug.Write("Response Headers: " + response.Headers);
Debug.Write("Response Body: " + response.Data);
}
catch (ApiException e)
{
Debug.Print("Exception when calling WebApi.WebGetBatchJobStatusWithHttpInfo: " + e.Message);
Debug.Print("Status Code: " + e.ErrorCode);
Debug.Print(e.StackTrace);
}| Name | Type | Description | Notes |
|---|---|---|---|
| jobId | string |
Object
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Successful Response | - |
| 422 | Validation Error | - |
[Back to top] [Back to API list] [Back to Model list] [Back to README]
Object WebPollAnAutoUnblockDiscoveryJob (string jobId)
Poll an auto-unblock discovery job
Return the status + progress narration for an auto-unblock job. Polled by the playground loader. job_id is an unguessable UUID handed out in the 202 unblocking envelope and acts as a capability token, so any authenticated caller holding it can read the job (this is what lets several users share one discovery run's loader).
using System.Collections.Generic;
using System.Diagnostics;
using System.Net.Http;
using ScrapeBadger.Api;
using ScrapeBadger.Client;
using ScrapeBadger.Model;
namespace Example
{
public class WebPollAnAutoUnblockDiscoveryJobExample
{
public static void Main()
{
Configuration config = new Configuration();
config.BasePath = "https://scrapebadger.com";
// Configure API key authorization: ApiKeyAuth
config.AddApiKey("X-API-Key", "YOUR_API_KEY");
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// config.AddApiKeyPrefix("X-API-Key", "Bearer");
// create instances of HttpClient, HttpClientHandler to be reused later with different Api classes
HttpClient httpClient = new HttpClient();
HttpClientHandler httpClientHandler = new HttpClientHandler();
var apiInstance = new WebApi(httpClient, config, httpClientHandler);
var jobId = "jobId_example"; // string |
try
{
// Poll an auto-unblock discovery job
Object result = apiInstance.WebPollAnAutoUnblockDiscoveryJob(jobId);
Debug.WriteLine(result);
}
catch (ApiException e)
{
Debug.Print("Exception when calling WebApi.WebPollAnAutoUnblockDiscoveryJob: " + e.Message);
Debug.Print("Status Code: " + e.ErrorCode);
Debug.Print(e.StackTrace);
}
}
}
}This returns an ApiResponse object which contains the response data, status code and headers.
try
{
// Poll an auto-unblock discovery job
ApiResponse<Object> response = apiInstance.WebPollAnAutoUnblockDiscoveryJobWithHttpInfo(jobId);
Debug.Write("Status Code: " + response.StatusCode);
Debug.Write("Response Headers: " + response.Headers);
Debug.Write("Response Body: " + response.Data);
}
catch (ApiException e)
{
Debug.Print("Exception when calling WebApi.WebPollAnAutoUnblockDiscoveryJobWithHttpInfo: " + e.Message);
Debug.Print("Status Code: " + e.ErrorCode);
Debug.Print(e.StackTrace);
}| Name | Type | Description | Notes |
|---|---|---|---|
| jobId | string |
Object
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Successful Response | - |
| 422 | Validation Error | - |
[Back to top] [Back to API list] [Back to Model list] [Back to README]
Object WebScrapeAUrl ()
Scrape a URL
Scrape a URL and return its content. The Generic Web Scraping API is fully user-driven: callers pick their own request parameters (engine, proxy tier, country, JS rendering, …). A blocked target surfaces the raw 422 blocking_page_detected so the caller can tune parameters themselves — we do NOT auto-trigger host discovery. Curated per-origin overrides (which the dedicated scraper APIs depend on) still apply. One exception, added for SB-001083/SCR-64: a plain google.com/search web-SERP fetch is served by the dedicated Google scraper, whose rotation loop is built for SearchGuard. Same request shape, same response shape, billed at what it actually cost — the caller sees only a better hit rate. serp_adapter fails closed, so any request carrying a parameter it does not recognise as route-or-cost takes the generic path unchanged, and the user-driven contract above still holds.
using System.Collections.Generic;
using System.Diagnostics;
using System.Net.Http;
using ScrapeBadger.Api;
using ScrapeBadger.Client;
using ScrapeBadger.Model;
namespace Example
{
public class WebScrapeAUrlExample
{
public static void Main()
{
Configuration config = new Configuration();
config.BasePath = "https://scrapebadger.com";
// Configure API key authorization: ApiKeyAuth
config.AddApiKey("X-API-Key", "YOUR_API_KEY");
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// config.AddApiKeyPrefix("X-API-Key", "Bearer");
// create instances of HttpClient, HttpClientHandler to be reused later with different Api classes
HttpClient httpClient = new HttpClient();
HttpClientHandler httpClientHandler = new HttpClientHandler();
var apiInstance = new WebApi(httpClient, config, httpClientHandler);
try
{
// Scrape a URL
Object result = apiInstance.WebScrapeAUrl();
Debug.WriteLine(result);
}
catch (ApiException e)
{
Debug.Print("Exception when calling WebApi.WebScrapeAUrl: " + e.Message);
Debug.Print("Status Code: " + e.ErrorCode);
Debug.Print(e.StackTrace);
}
}
}
}This returns an ApiResponse object which contains the response data, status code and headers.
try
{
// Scrape a URL
ApiResponse<Object> response = apiInstance.WebScrapeAUrlWithHttpInfo();
Debug.Write("Status Code: " + response.StatusCode);
Debug.Write("Response Headers: " + response.Headers);
Debug.Write("Response Body: " + response.Data);
}
catch (ApiException e)
{
Debug.Print("Exception when calling WebApi.WebScrapeAUrlWithHttpInfo: " + e.Message);
Debug.Print("Status Code: " + e.ErrorCode);
Debug.Print(e.StackTrace);
}This endpoint does not need any parameter.
Object
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Successful Response | - |
[Back to top] [Back to API list] [Back to Model list] [Back to README]
Object WebSubmitBatchScrapingJob ()
Submit batch scraping job
Submit a batch of URLs for scraping. (Phase 6)
using System.Collections.Generic;
using System.Diagnostics;
using System.Net.Http;
using ScrapeBadger.Api;
using ScrapeBadger.Client;
using ScrapeBadger.Model;
namespace Example
{
public class WebSubmitBatchScrapingJobExample
{
public static void Main()
{
Configuration config = new Configuration();
config.BasePath = "https://scrapebadger.com";
// Configure API key authorization: ApiKeyAuth
config.AddApiKey("X-API-Key", "YOUR_API_KEY");
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// config.AddApiKeyPrefix("X-API-Key", "Bearer");
// create instances of HttpClient, HttpClientHandler to be reused later with different Api classes
HttpClient httpClient = new HttpClient();
HttpClientHandler httpClientHandler = new HttpClientHandler();
var apiInstance = new WebApi(httpClient, config, httpClientHandler);
try
{
// Submit batch scraping job
Object result = apiInstance.WebSubmitBatchScrapingJob();
Debug.WriteLine(result);
}
catch (ApiException e)
{
Debug.Print("Exception when calling WebApi.WebSubmitBatchScrapingJob: " + e.Message);
Debug.Print("Status Code: " + e.ErrorCode);
Debug.Print(e.StackTrace);
}
}
}
}This returns an ApiResponse object which contains the response data, status code and headers.
try
{
// Submit batch scraping job
ApiResponse<Object> response = apiInstance.WebSubmitBatchScrapingJobWithHttpInfo();
Debug.Write("Status Code: " + response.StatusCode);
Debug.Write("Response Headers: " + response.Headers);
Debug.Write("Response Body: " + response.Data);
}
catch (ApiException e)
{
Debug.Print("Exception when calling WebApi.WebSubmitBatchScrapingJobWithHttpInfo: " + e.Message);
Debug.Print("Status Code: " + e.ErrorCode);
Debug.Print(e.StackTrace);
}This endpoint does not need any parameter.
Object
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Successful Response | - |
[Back to top] [Back to API list] [Back to Model list] [Back to README]
Object WebTakeAScreenshot ()
Take a screenshot
Take a screenshot of a URL. (browser engine)
using System.Collections.Generic;
using System.Diagnostics;
using System.Net.Http;
using ScrapeBadger.Api;
using ScrapeBadger.Client;
using ScrapeBadger.Model;
namespace Example
{
public class WebTakeAScreenshotExample
{
public static void Main()
{
Configuration config = new Configuration();
config.BasePath = "https://scrapebadger.com";
// Configure API key authorization: ApiKeyAuth
config.AddApiKey("X-API-Key", "YOUR_API_KEY");
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// config.AddApiKeyPrefix("X-API-Key", "Bearer");
// create instances of HttpClient, HttpClientHandler to be reused later with different Api classes
HttpClient httpClient = new HttpClient();
HttpClientHandler httpClientHandler = new HttpClientHandler();
var apiInstance = new WebApi(httpClient, config, httpClientHandler);
try
{
// Take a screenshot
Object result = apiInstance.WebTakeAScreenshot();
Debug.WriteLine(result);
}
catch (ApiException e)
{
Debug.Print("Exception when calling WebApi.WebTakeAScreenshot: " + e.Message);
Debug.Print("Status Code: " + e.ErrorCode);
Debug.Print(e.StackTrace);
}
}
}
}This returns an ApiResponse object which contains the response data, status code and headers.
try
{
// Take a screenshot
ApiResponse<Object> response = apiInstance.WebTakeAScreenshotWithHttpInfo();
Debug.Write("Status Code: " + response.StatusCode);
Debug.Write("Response Headers: " + response.Headers);
Debug.Write("Response Body: " + response.Data);
}
catch (ApiException e)
{
Debug.Print("Exception when calling WebApi.WebTakeAScreenshotWithHttpInfo: " + e.Message);
Debug.Print("Status Code: " + e.ErrorCode);
Debug.Print(e.StackTrace);
}This endpoint does not need any parameter.
Object
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Successful Response | - |
[Back to top] [Back to API list] [Back to Model list] [Back to README]
Object WebWebScraperHealthCheck ()
Web scraper health check
Check health of the web scraper service. Bypasses the proxy abstraction because web-scraper exposes /health at the root (no /api/v1 prefix, unlike the other scraper services). Accepts HEAD so external uptime checkers (UptimeRobot uses HEAD by default for HTTP monitors) don't get a 405 Method Not Allowed.
using System.Collections.Generic;
using System.Diagnostics;
using System.Net.Http;
using ScrapeBadger.Api;
using ScrapeBadger.Client;
using ScrapeBadger.Model;
namespace Example
{
public class WebWebScraperHealthCheckExample
{
public static void Main()
{
Configuration config = new Configuration();
config.BasePath = "https://scrapebadger.com";
// Configure API key authorization: ApiKeyAuth
config.AddApiKey("X-API-Key", "YOUR_API_KEY");
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// config.AddApiKeyPrefix("X-API-Key", "Bearer");
// create instances of HttpClient, HttpClientHandler to be reused later with different Api classes
HttpClient httpClient = new HttpClient();
HttpClientHandler httpClientHandler = new HttpClientHandler();
var apiInstance = new WebApi(httpClient, config, httpClientHandler);
try
{
// Web scraper health check
Object result = apiInstance.WebWebScraperHealthCheck();
Debug.WriteLine(result);
}
catch (ApiException e)
{
Debug.Print("Exception when calling WebApi.WebWebScraperHealthCheck: " + e.Message);
Debug.Print("Status Code: " + e.ErrorCode);
Debug.Print(e.StackTrace);
}
}
}
}This returns an ApiResponse object which contains the response data, status code and headers.
try
{
// Web scraper health check
ApiResponse<Object> response = apiInstance.WebWebScraperHealthCheckWithHttpInfo();
Debug.Write("Status Code: " + response.StatusCode);
Debug.Write("Response Headers: " + response.Headers);
Debug.Write("Response Body: " + response.Data);
}
catch (ApiException e)
{
Debug.Print("Exception when calling WebApi.WebWebScraperHealthCheckWithHttpInfo: " + e.Message);
Debug.Print("Status Code: " + e.ErrorCode);
Debug.Print(e.StackTrace);
}This endpoint does not need any parameter.
Object
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Successful Response | - |
[Back to top] [Back to API list] [Back to Model list] [Back to README]
Object WebWebScraperHealthCheckHead ()
Web scraper health check
Check health of the web scraper service. Bypasses the proxy abstraction because web-scraper exposes /health at the root (no /api/v1 prefix, unlike the other scraper services). Accepts HEAD so external uptime checkers (UptimeRobot uses HEAD by default for HTTP monitors) don't get a 405 Method Not Allowed.
using System.Collections.Generic;
using System.Diagnostics;
using System.Net.Http;
using ScrapeBadger.Api;
using ScrapeBadger.Client;
using ScrapeBadger.Model;
namespace Example
{
public class WebWebScraperHealthCheckHeadExample
{
public static void Main()
{
Configuration config = new Configuration();
config.BasePath = "https://scrapebadger.com";
// Configure API key authorization: ApiKeyAuth
config.AddApiKey("X-API-Key", "YOUR_API_KEY");
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// config.AddApiKeyPrefix("X-API-Key", "Bearer");
// create instances of HttpClient, HttpClientHandler to be reused later with different Api classes
HttpClient httpClient = new HttpClient();
HttpClientHandler httpClientHandler = new HttpClientHandler();
var apiInstance = new WebApi(httpClient, config, httpClientHandler);
try
{
// Web scraper health check
Object result = apiInstance.WebWebScraperHealthCheckHead();
Debug.WriteLine(result);
}
catch (ApiException e)
{
Debug.Print("Exception when calling WebApi.WebWebScraperHealthCheckHead: " + e.Message);
Debug.Print("Status Code: " + e.ErrorCode);
Debug.Print(e.StackTrace);
}
}
}
}This returns an ApiResponse object which contains the response data, status code and headers.
try
{
// Web scraper health check
ApiResponse<Object> response = apiInstance.WebWebScraperHealthCheckHeadWithHttpInfo();
Debug.Write("Status Code: " + response.StatusCode);
Debug.Write("Response Headers: " + response.Headers);
Debug.Write("Response Body: " + response.Data);
}
catch (ApiException e)
{
Debug.Print("Exception when calling WebApi.WebWebScraperHealthCheckHeadWithHttpInfo: " + e.Message);
Debug.Print("Status Code: " + e.ErrorCode);
Debug.Print(e.StackTrace);
}This endpoint does not need any parameter.
Object
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Successful Response | - |
[Back to top] [Back to API list] [Back to Model list] [Back to README]