Web Search API for AI Agents & RAG | Markdown | $1 / 1K pages avatar

Web Search API for AI Agents & RAG | Markdown | $1 / 1K pages

Pricing

from $0.70 / 1,000 page fetcheds

Go to Apify Store
Web Search API for AI Agents & RAG | Markdown | $1 / 1K pages

Web Search API for AI Agents & RAG | Markdown | $1 / 1K pages

Web search API for AI agents and RAG: send a query, get the top result pages as clean Markdown with title, URL and snippet. DuckDuckGo with Brave and Yahoo fallback, no API key, no browser. $1 per 1,000 pages, failed pages free.

Pricing

from $0.70 / 1,000 page fetcheds

Rating

0.0

(0)

Developer

Hriday Rungta

Hriday Rungta

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 days ago

Last modified

Security

Limited permissions

Share

Web search API for AI agents and RAG: query in, clean Markdown out

Give your LLM, AI agent or RAG pipeline live web results without an API key. Send a question, and this Actor searches the web, opens the top result pages and returns each page as clean Markdown (or plain text / HTML) together with the search title, URL and snippet. Think of it as a pay-per-page alternative to Tavily, Exa or a search API plus a scraper, built for grounding answers with fresh sources.

  • Search + content in one call: top 1-20 result pages per query, main content only (no menus, ads, cookie banners or footers).
  • No API key, no browser: searches DuckDuckGo, and switches to Brave Search and then Yahoo when an engine is busy. It does not use Google.
  • Pay only for pages with real content: blocked, JavaScript-only, empty or failed pages are returned as free status rows, and by default the next search result is opened instead so you still get the number of pages you asked for.
  • Search-results-only mode: just rank, title, URL and snippet, billed per query.
  • Direct URLs: put a URL in the list and it is fetched and converted to Markdown without searching.
  • Agent friendly: small input, one flat row per page, works through the Apify MCP server, API, LangChain, n8n, Make and Zapier.

What people use it for

  • Grounding an AI agent or chatbot with up-to-date web pages (RAG, "search the web" tool for ChatGPT / Claude / custom agents)
  • Research assistants that read the top 3-10 sources for a question and summarise them
  • Collecting web content for a vector database or knowledge base on a topic
  • Fact checking and citation finding (title + URL + content for each source)
  • Monitoring what ranks for a set of keywords (search-results-only mode, scheduled)
  • Searching inside one website with the site filter (docs, blogs, help centers)

What data you get

One row per result page:

FieldWhat it is
queryYour query (or URL)
rankPosition in the search results (1 = top)
searchEngineDuckDuckGo, Brave Search or Yahoo Search
searchTitle, searchSnippetTitle and snippet from the results page
url, loadedUrlResult URL and final URL after redirects
fetchStatusok (billed) or a free status: blocked, needs-javascript, thin, http-error, timeout, not-html, search-failed, no-results; not-fetched in search-results-only mode
title, description, language, publishedTimePage metadata
markdown / text / htmlMain content in the formats you picked
wordCount, textLength, truncatedSize of the content, and whether it was cut to your character limit
chargedWhether the row was billed

Input

FieldDefaultNotes
queriesrequiredSearch queries, one per line (up to 100). A line that is a URL is fetched directly.
maxResults3Pages per query (1-20).
outputFormatsmarkdownAny of markdown, text, html.
searchResultsOnlyfalseOnly list results (title, URL, snippet), billed per query.
siteemptyRestrict results to one domain, e.g. docs.python.org.
countryanyRegion and language of results (DuckDuckGo and Brave; the Yahoo fallback is US only).
searchEngineautoauto, duckduckgo, brave or yahoo.
replaceFailedPagestrueOpen the next result when a page cannot be read.
requestTimeoutSecs15Per page, 5-30 seconds.
maxCharactersPerPage0 (no limit)Cut content to save LLM tokens.
includeImagesfalseKeep image links in the Markdown.
maxConcurrency5Parallel page downloads.

Example input

{
"queries": ["what is retrieval augmented generation", "https://docs.apify.com/platform/actors"],
"maxResults": 3,
"outputFormats": ["markdown"],
"maxCharactersPerPage": 8000
}

Output example

A real row from a run on 21 October 2026 (maxCharactersPerPage: 400):

{
"query": "what is retrieval augmented generation",
"rank": 1,
"searchEngine": "DuckDuckGo",
"searchTitle": "What is Retrieval-Augmented Generation (RAG) - GeeksforGeeks",
"searchSnippet": "Retrieval-Augmented Generation (RAG) is a way to make AI answers more reliable by combining searching for relevant information and then generating a response. Instead of guessing based only on old training data, it first finds useful data from external sources (like documents or databases) and then uses it to give a better answer.",
"url": "https://www.geeksforgeeks.org/nlp/what-is-retrieval-augmented-generation-rag/",
"loadedUrl": "https://www.geeksforgeeks.org/nlp/what-is-retrieval-augmented-generation-rag/",
"httpStatus": 200,
"fetchStatus": "ok",
"title": "What is Retrieval-Augmented Generation (RAG) - GeeksforGeeks",
"language": "en",
"publishedTime": "2024-03-27 08:55:19+00:00",
"markdown": "Retrieval-Augmented Generation (RAG) is a way to make AI answers more reliable by combining searching for relevant information and then generating a response. Instead of guessing based only on old training data, it first finds useful data from external sources (like documents or databases) and then uses it to give a better answer.\n\n- Fetches up-to-date data and reduces incorrect or made-up answe",
"wordCount": 909,
"textLength": 6333,
"truncated": true,
"error": null,
"charged": true
}

Search-results-only row (from a real run):

{
"query": "vector database",
"rank": 1,
"searchEngine": "DuckDuckGo",
"searchTitle": "Vector database - Wikipedia",
"searchSnippet": "A vector database, vector store or vector search engine is a database that stores and retrieves embeddings of data in vector space. ...",
"url": "https://en.wikipedia.org/wiki/Vector_database",
"fetchStatus": "not-fetched",
"charged": false
}

Pricing

Pay per event, no subscription:

  • $0.003 per run (start fee)
  • $0.001 per page returned with real content ($1 per 1,000 pages)
  • $0.001 per query in search-results-only mode (up to 20 results per query)
  • Free: failed searches, queries with no results, and pages that were blocked, need JavaScript, were empty or failed to load

Worked examples:

RunCost
1 question, top 3 pages$0.003 + 3 x $0.001 = $0.006
100 questions, top 3 pages each$0.003 + 300 x $0.001 = $0.303
1,000 queries, search results only$0.003 + 1,000 x $0.001 = $1.003

For comparison, Apify's RAG Web Browser (checked 21 October 2026) charges a search event per query ($0.00348 on the Free plan, $0.00203 on Gold) plus $0.00228 (Free) to $0.00133 (Gold) per page. For 3 pages per query that is about $0.0103 (Free) to $0.0060 (Gold) per query, against $0.003 here. You can cap any run with Apify's maximum cost per run setting; the Actor stops fetching pages it could not bill.

How it works

  1. Each query goes to DuckDuckGo's HTML search through a fresh Apify datacenter proxy session. If DuckDuckGo shows its bot check or rate limit, the query moves to Brave Search, then Yahoo. Requests to each engine are spaced out and an engine that just refused is rested for a while. No CAPTCHA solving.
  2. The top result pages are downloaded over plain HTTP (no browser), the main content is picked out (article/main element, else Mozilla Readability) and converted to GitHub-flavoured Markdown with headings, lists, tables, links and code blocks.
  3. Pages behind a bot wall, JavaScript-only apps and empty pages are detected and returned as free rows; the next result is opened instead.

In our tests inside Apify on 21 October 2026, 158 out of 158 varied queries (English plus German, French, Spanish, Portuguese, Italian, Dutch, Polish, Turkish, Japanese, Chinese, Korean and Russian) returned relevant results, and 90 of 90 requested pages came back with content for a 30-query run (9 blocked pages were replaced automatically). That run took 75 seconds.

Use it from AI agents, code and no-code tools

  • Apify MCP server: add https://mcp.apify.com?tools=hridayrungta/rag-web-search to Claude, Cursor, VS Code or any MCP client, and the agent can call it as a web search tool.
  • API (one call, results in the response): POST https://api.apify.com/v2/acts/hridayrungta~rag-web-search/run-sync-get-dataset-items?token=<YOUR_TOKEN> with the input JSON as the body.
  • Python / JavaScript: the apify-client package (client.actor("hridayrungta/rag-web-search").call(run_input={...})), or LangChain's Apify integration to load the rows as documents.
  • n8n, Make, Zapier, Google Sheets, webhooks: use the Apify app or the run-sync endpoint above.
  • Schedules: use Apify Schedules to run a list of queries daily or weekly, for example to track what ranks for your keywords (search-results-only mode).

FAQ

Is this a Tavily or Exa alternative?

It does the same core job (search plus page content for LLMs) with pay-per-page pricing and no API key or monthly plan. It does not generate an AI answer or rank pages with its own neural index: you get the search engine's ranking and the clean page content, and your own LLM does the answering.

Which search engine powers the results? Is it Google?

Not Google. Results come from DuckDuckGo by default, with Brave Search and Yahoo as fallbacks, and every row says which engine answered. Rankings therefore differ from Google's. If you need Google results specifically, use a Google SERP Actor such as Apify's Google Search Results Scraper.

Why not use an official search API?

Microsoft retired the Bing Search APIs in August 2025. Brave and Tavily offer APIs that need a key and a plan, and they return snippets rather than the full page as Markdown. This Actor needs no key and you pay only for pages that came back with content.

How fast is it?

A run with one query and three pages took about 5-6 seconds in our tests, including start-up. Searches are spaced out per engine, so large lists run at roughly 2-3 seconds per query. There is no Standby (always-on HTTP) mode yet.

What does it not do?

  • No JavaScript rendering: pages that only render in a browser come back as free needs-javascript rows (and are replaced by the next result).
  • Some sites with strong bot protection (for example certain Cloudflare-protected sites) return free blocked rows.
  • No PDF or Word parsing (returned as free not-html rows).
  • No ads, featured snippets, AI overviews or other SERP extras: organic results only.
  • Up to 20 results per query; the region setting is applied by DuckDuckGo and Brave, the Yahoo fallback uses the US index.

It reads public search result pages and public web pages, like a browser would. You are responsible for how you use the content, including the terms of the sites you fetch and copyright of their text.