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
| Name | Type | Requirement | Description |
|---|---|---|---|
| query | string | REQUIRED | The search query. |
| num_results | number | optional | Number of search results to scrape. |
| engine | string | optional | Search engine: "google" (SearXNG), "duckduckgo", or "brave". |
| formats | string[] | optional | Output formats for scraped results: "markdown", "html", "links", "screenshot", "structured_data", "headings", "images". |
| only_main_content | boolean | optional | Extract only the main content from each result. |
| use_proxy | boolean | optional | Route requests through a configured proxy. |
| mobile | boolean | optional | Emulate a mobile device viewport for scraping. |
| mobile_device | string | optional | Mobile device preset name. |
| headers | object | optional | Custom HTTP headers for scraping. |
| cookies | object | optional | Custom cookies for scraping. |
| extract | object | optional | LLM extraction config applied to each result: { prompt, schema }. |
| google_api_key | string | optional | Google Custom Search API key (alternative to SearXNG). |
| google_cx | string | optional | Google Custom Search Engine ID. |
| brave_api_key | string | optional | Brave Search API key. |
| webhook_url | string | optional | Webhook URL for search completion notification. |
| webhook_secret | string | optional | HMAC 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"
}