Web Search

Three engines. One ranked list. No flaky scrapers to write.

POST /v1/search 5 credits Search & Discovery

Hits Bing, DuckDuckGo, and Brave (plus Google on the thorough tier), dedups by URL, and re-ranks the merged set with an intent-aware scorer. You see one ranked list, not three. Every result carries a relevance score, position, and source attribution.

The hard part

If you've ever wired a scraper against a public search engine, you know the rhythm: blocked IPs, captchas, rate-limit windows, and a different result schema every other Tuesday. Going broader with multiple engines means multiple parsers to maintain. You ask once and get back one ranked feed.

What it does

  • Pin up to eight engines yourself (Google, Bing, DuckDuckGo, the Bing News and DuckDuckGo News verticals, plus the research and code sources) or let us choose the mix, which adds Brave.
  • Multi-engine attribution: every result lists the engines that surfaced it.
  • `time_range=day|week|month|year` for fresh-only results.
  • Failures don't bill. Cache hits charge 1 credit instead of 5.
  • `page=2` returns the next batch with no repeats; a page past the last result is empty and free.

Send a call

curl -X POST https://scrapenest.dev/v1/search \
  -H "Authorization: Bearer sn_••••" \
  -H "Content-Type: application/json" \
  -d '{
        "query": "best wireless earbuds 2026",
        "num_results": 10,
        "time_range": "month"
      }'

Request body

{
  "query": "best wireless earbuds 2026",
  "num_results": 10,
  "time_range": "month",
  "language": "en"
}

Response shape

{
  "query": "best wireless earbuds 2026",
  "results": [
    {
      "position": 1,
      "url": "https://rtings.com/headphones/reviews/best/wireless-earbuds",
      "title": "The 6 Best Wireless Earbuds, Spring 2026",
      "snippet": "Our pick is the Sony WF-1000XM6 …",
      "engine": "duckduckgo",
      "engines": ["brave", "duckduckgo"],
      "score": 0.98,
      "published_at": "2026-04-22T00:00:00Z",
      "thumbnail": null
    }
  ],
  "took_ms": 640,
  "cache_hit": false,
  "credits_charged": 5
}

What it costs

5 credits per call. Cache hits bill at 1 credit. 0 credits when nothing is delivered. Image results add +5 (bing) / +40 (brave).

  • Pair with /v1/search/deep when you need the body text alongside the SERP: one round-trip instead of fanning out fetches yourself.