POST/v1/search

Search

Search the web using Google (via SearXNG), DuckDuckGo, or Brave, then scrape each result page and return structured content. Async job with polling.

Target Latency

1.2s - 4.5s

Credits

1 cr/req

Parameters

NameTypeRequirementDescription
querystringREQUIREDThe search query.
num_resultsnumberoptionalNumber of search results to scrape.
enginestringoptionalSearch engine: "google" (SearXNG), "duckduckgo", or "brave".
formatsstring[]optionalOutput formats for scraped results: "markdown", "html", "links", "screenshot", "structured_data", "headings", "images".
only_main_contentbooleanoptionalExtract only the main content from each result.
use_proxybooleanoptionalRoute requests through a configured proxy.
mobilebooleanoptionalEmulate a mobile device viewport for scraping.
mobile_devicestringoptionalMobile device preset name.
headersobjectoptionalCustom HTTP headers for scraping.
cookiesobjectoptionalCustom cookies for scraping.
extractobjectoptionalLLM extraction config applied to each result: { prompt, schema }.
google_api_keystringoptionalGoogle Custom Search API key (alternative to SearXNG).
google_cxstringoptionalGoogle Custom Search Engine ID.
brave_api_keystringoptionalBrave Search API key.
webhook_urlstringoptionalWebhook URL for search completion notification.
webhook_secretstringoptionalHMAC secret for webhook signature verification.

cURL Example

curl -X POST "https://api.datablue.dev/v1/search" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "query": "best python web scraping libraries 2026",
  "num_results": 5,
  "engine": "google",
  "formats": [
    "markdown"
  ]
}'

System Responses

200 OK

Request processed successfully.

401 UNAUTHORIZED

Missing or invalid API key.

429 RATE LIMIT

System capacity exceeded.

500 SYSTEM FAILURE

Internal core exception.

EXAMPLE RESPONSE
{
  "success": true,
  "job_id": "550e8400-e29b-41d4-a716-446655440001",
  "status": "started",
  "message": "Search job started"
}