Search & URL Markdown Extractor for LLMs

Turn a search query or a list of URLs into clean Markdown, plain text, or HTML pages, with filters for domain, keyword, and minimum content length. No login or cookies needed.

Open in Apify Store$0.99 / 1K on Free

Short answer

Search & URL Markdown Extractor for LLMs is an Apify Store Actor for Google Search and Bing data that returns 13 published output fields, including url, title, canonicalUrl, description. It lists $0.99 per 1,000 results on the Free plan (pay per event), $0.49 on the Business plan. It takes 25 input settings, none required. It covers 2 of the 5 core Google Search fields this site tracks. Last updated Oct 17, 2026.

From the public Store listing and published build schema, synced 2026-11-12.
Google SearchBing AIAgentsDeveloper tools

What it returns

13 fields from the published dataset schema. Export as JSON, CSV or Excel, or read the dataset through the Apify API.

  • url
  • title
  • description
  • wordCount
  • httpStatusCode
  • loadedTime
  • searchRank
  • canonicalUrl
  • author
  • publishedDate
  • contentLength
  • engine
  • crawlDepth

Not in the schema among the core Google Search fields: snippet, position, serp_features. The field matrix shows which other tools return them.

How it differs from the other Google Search Actors

Among the 4 catalogue Actors for Google Search with a published schema, only this one returns description, wordCount, httpStatusCode, loadedTime, searchRank, canonicalUrl, author, publishedDate.

Pick another Actor if you need

Fields other Google Search catalogue Actors return that Search & URL Markdown Extractor for LLMs does not
ActorFields it addsPrice / 1K
Google Image Search Results & Metadata Scraper retrievalMethod, isFallback, fallbackReason, imageId $0.99
Google Autocomplete Keyword Expansion Scraper seed, locale, relevance $0.99
Google Search Results Scraper: Organic & SERP Boxes resultsTotal, hasNextPage, organicResults, searchQuery.term $0.99

Input

Input settings for Search & URL Markdown Extractor for LLMs
SettingTypeRequiredDefaultWhat it does
query string No what is retrieval augmented generation What to look up, or a single web page URL to read. Examples: `vector database comparison`, `https://en.wikipedia.org/wiki/Retrieval-augmented_generation`. When `startUrls` or `queries` are also set, everything is processed in one run.
queries array No [] Additional queries for batch research runs. Each query is searched and its top results are fetched. A query that is itself a URL is fetched directly.
startUrls array No [] Pages to read directly. With `maxCrawlDepth` above 0, the actor walks links found on these pages within the same website instead.
searchEngine string No auto Which search engine to use. `Automatic` tries Google first and silently falls back to Bing, then DuckDuckGo when an engine is blocked — recommended.
searchLanguage string No auto Language for search results. `Automatic` lets each engine choose based on the query.
searchCountry string No auto Country bias for search results. `Automatic` means no country bias.
maxResults integer No 3 How many top organic results to fetch and emit for each search query. Values above 10 need multiple search-result pages (slower). With `Emit results for pages that could not be fetched` on, each of the requested results yields one record — a page record when the fetch succeeds, or a metadata record
maxItems integer No 0 Overall cap on how many pages the run may emit across all queries, URLs, and crawled pages. 0 means no global cap.
outputFormats array No ["markdown"] Which representations to include per page, in any combination. `Links` adds every link found on the page as structured `{url, text}` pairs.
removeElementsCssSelector string No nav, footer, aside, script, style, .ad, .adve… Comma-separated CSS selectors removed before extraction (navigation, footers, ads, cookie bars). Set a non-matching selector such as `dummy_keep_everything` to keep everything.
Show the other 15 settings
More input settings for Search & URL Markdown Extractor for LLMs
SettingTypeRequiredDefaultWhat it does
keepElementsCssSelector array No [] When set, only content inside these selectors is kept — everything else is dropped before extraction.
htmlTransformer string No readable-text `Readable content` finds the article body and drops navigation and boilerplate. `None` keeps the full cleaned page.
maxContentLength integer No 0 Truncate the emitted text and Markdown of each page to this many characters. 0 returns the full content. Useful for controlling embedding cost.
includeMetadata boolean No true Add canonical URL, author, published date, keywords, social image, and site name (each only when the page provides it).
chunkMarkdown boolean No false Emit a `chunks` array per page — heading-aware Markdown chunks ready for embedding, never split inside code blocks or tables.
chunkMaxChars integer No 2000 Target size of each chunk when `chunkMarkdown` is on. Code blocks and tables are kept whole even when larger.
chunkOverlapChars integer No 200 Approximate overlap between consecutive chunks when `chunkMarkdown` is on, so context is not lost at chunk boundaries.
maxCrawlDepth integer No 0 0 reads only the start URLs. 1+ follows links found on those pages, staying on the same website, up to this depth.
maxCrawlPages integer No 25 Safety cap on pages visited in crawl mode.
domainAllowlist array No [] Keep only pages whose host contains one of these substrings (case-insensitive).
domainBlocklist array No [] Drop pages whose host contains one of these substrings.
minTextLength integer No – Drop pages with fewer than this many characters of extracted text. Useful for skipping thin or placeholder pages.
excludeContentSelectors array No [] Additional CSS selectors removed before extraction, on top of `Remove elements`.
keywordsAnyOf array No [] Keep only pages whose title or content contains at least one of these keywords (case-insensitive).
emitFailedResults boolean No true When a search result page cannot be fetched after the full retry ladder, still emit one record for it with `url`, `title`, `description`, `searchResult`, `searchRank` and a `fetchError` note (no fabricated content). Turn off to skip failed pages entirely.

Example input

Built from the input form's published example values and defaults.

{
  "query": "what is retrieval augmented generation",
  "queries": [],
  "startUrls": [],
  "searchEngine": "auto",
  "searchLanguage": "auto",
  "searchCountry": "auto",
  "maxResults": 3,
  "maxItems": 0,
  "outputFormats": [
    "markdown"
  ],
  "removeElementsCssSelector": "nav, footer, aside, script, style, .ad, .advertisement, [aria-hidden='true']",
  "keepElementsCssSelector": [],
  "htmlTransformer": "readable-text",
  "maxContentLength": 0,
  "includeMetadata": true,
  "chunkMarkdown": false,
  "chunkMaxChars": 2000,
  "chunkOverlapChars": 200,
  "maxCrawlDepth": 0,
  "maxCrawlPages": 25,
  "domainAllowlist": [],
  "domainBlocklist": [],
  "excludeContentSelectors": [],
  "keywordsAnyOf": [],
  "emitFailedResults": false
}

Run it from code or an AI agent

The same run through the Apify API, with the example input. You need an Apify API token; the run is billed to your account at the Store price.

Python

from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
    "query": "what is retrieval augmented generation",
    "queries": [],
    "startUrls": [],
    "searchEngine": "auto",
    "searchLanguage": "auto",
    "searchCountry": "auto",
    "maxResults": 3,
    "maxItems": 0,
    "outputFormats": [
        "markdown"
    ],
    "removeElementsCssSelector": "nav, footer, aside, script, style, .ad, .advertisement, [aria-hidden='True']",
    "keepElementsCssSelector": [],
    "htmlTransformer": "readable-text",
    "maxContentLength": 0,
    "includeMetadata": True,
    "chunkMarkdown": False,
    "chunkMaxChars": 2000,
    "chunkOverlapChars": 200,
    "maxCrawlDepth": 0,
    "maxCrawlPages": 25,
    "domainAllowlist": [],
    "domainBlocklist": [],
    "excludeContentSelectors": [],
    "keywordsAnyOf": [],
    "emitFailedResults": False
}

run = client.actor("vexaloom-labs/rag-web-browser").call(run_input=run_input)
if run is None:
    raise RuntimeError("The Actor run was not found.")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

pip install apify-client

JavaScript

import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: "<YOUR_APIFY_TOKEN>" });
const input = {
    "query": "what is retrieval augmented generation",
    "queries": [],
    "startUrls": [],
    "searchEngine": "auto",
    "searchLanguage": "auto",
    "searchCountry": "auto",
    "maxResults": 3,
    "maxItems": 0,
    "outputFormats": [
        "markdown"
    ],
    "removeElementsCssSelector": "nav, footer, aside, script, style, .ad, .advertisement, [aria-hidden='true']",
    "keepElementsCssSelector": [],
    "htmlTransformer": "readable-text",
    "maxContentLength": 0,
    "includeMetadata": true,
    "chunkMarkdown": false,
    "chunkMaxChars": 2000,
    "chunkOverlapChars": 200,
    "maxCrawlDepth": 0,
    "maxCrawlPages": 25,
    "domainAllowlist": [],
    "domainBlocklist": [],
    "excludeContentSelectors": [],
    "keywordsAnyOf": [],
    "emitFailedResults": false
};

const run = await client.actor("vexaloom-labs/rag-web-browser").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

npm install apify-client

cURL

curl -X POST "https://api.apify.com/v2/actors/vexaloom-labs~rag-web-browser/run-sync-get-dataset-items"   -H "Authorization: Bearer $APIFY_TOKEN"   -H "Content-Type: application/json"   -d '{"query":"what is retrieval augmented generation","queries":[],"startUrls":[],"searchEngine":"auto","searchLanguage":"auto","searchCountry":"auto","maxResults":3,"maxItems":0,"outputFormats":["markdown"],"removeElementsCssSelector":"nav, footer, aside, script, style, .ad, .advertisement, [aria-hidden='''true''']","keepElementsCssSelector":[],"htmlTransformer":"readable-text","maxContentLength":0,"includeMetadata":true,"chunkMarkdown":false,"chunkMaxChars":2000,"chunkOverlapChars":200,"maxCrawlDepth":0,"maxCrawlPages":25,"domainAllowlist":[],"domainBlocklist":[],"excludeContentSelectors":[],"keywordsAnyOf":[],"emitFailedResults":false}'

Waits for the run and returns the dataset items (runs over 300 seconds return HTTP 408; start an async run instead).

MCP (AI agents)

{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=vexaloom-labs/rag-web-browser",
      "headers": {
        "Authorization": "Bearer <YOUR_APIFY_TOKEN>"
      }
    }
  }
}

Adds this Actor as a tool in an MCP client that takes a remote server URL (Cursor, VS Code, Claude Code) through Apify's hosted MCP server. OAuth sign-in also works without the header. Clients that only start local servers can wrap the URL with npx mcp-remote.

What a run costs

The result rate falls on higher Apify plans. Each figure is the published per-result rate times the number of results.

Cost of Search & URL Markdown Extractor for LLMs results by Apify plan
Apify planPer 1,00010,000 results100,000 results
Free plan$0.99$9.90$99
Starter plan$0.82$8.20$82
Scale plan$0.66$6.60$66
Business plan$0.49$4.90$49
  • Every run also has a start event, charged per GB of memory (minimum one): $0.10 on Free, $0.03 on Business. At its default memory of 4 GB a run starts at $0.40 on Free. Fewer, larger runs keep this small.
  • The Free plan includes $5 of monthly usage (Apify pricing, checked 2026-11-11); at the Free rate that covers at most about 5,050 results, less start events and platform usage.
  • Worked example: 10,000 results in one run on the Free plan cost $10.30 ($9.90 for results + $0.40 start), plus Apify platform usage (compute), billed separately by Apify.
  • Pay per event. Platform usage (compute) is billed by Apify on top of the event prices. Compare other tools in the cost estimator.

Where it fits among Google Search routes

It ranks 1 of 4 catalogue Actors for Google Search on the published formula (fields, price, reliability, freshness). Its line is highlighted on the map.

Route diagram for Google Search dataSearch & URL Markdown Extractor for LLMs: stops at 2 of the 10 fields shown; Google Image Search Results & Metadata Scraper: stops at 3 of the 10 fields shown; Google Autocomplete Keyword Expansion Scraper: stops at 1 of the 10 fields shown; Google Search Results Scraper: Organic & SERP Boxes: stops at 5 of the 10 fields shown; Other Store tools (7): stops at 9 of the 10 fields shown; Programmable Search Engine JSON API: limited, field coverage not compared.Google Searchtitleurlsnippetpositionserp featuresaiOverviewhasNextPageorganicResultspaidResultspeopleAlsoAsk1234+API

Stops are fields. A ring means the field is in that route's published output schema; no ring means the line passes without it. Bold labels are the core fields for this website, the rest are fields that differ between routes. A white capsule means every data line stops there. The red line is the official API; its field coverage is not compared. A crossed red line means there is no open official API.

Official route: Programmable Search Engine JSON API

Limited access. Google's programmable search API returns results for a configured search engine. It is not a general replacement for the live Google results page.

Free allowance plus per-query pricing is published; check the official overview for current rates and caps.

Official documentation

Other Store tools for Google Search

Reference only, from their public listings.

Other Store tools for Google Search
ToolFieldsPrice / 1K
Cheapest Google Search Results (Fast and cheap SERP API)11$0.50
Free Google Search Results Scraper11$0.35
Google Search Results Scraper (SERP)5$2.00
Google Search Results Scraper27$0.60
Google Search Results–$0.50

What people use it for

  • Collect web content
  • Prepare retrieval datasets
  • Extract citation metadata

Other catalogue Actors for Google Search

Google Image Search Results & Metadata Scraper

Run a Google Images search and get back full-resolution image URLs with dimensions, thumbnails, source page titles, and the web page each image…

3/5 core fields 29 output fields $0.99 per 1K

Google Autocomplete Keyword Expansion Scraper

Expand seed keywords into long-tail suggestions using Google's autocomplete, with question-word, preposition, comparison, and A-to-Z expansion…

1/5 core fields 7 output fields $0.99 per 1K

Google Search Results Scraper: Organic & SERP Boxes

Search Google and get organic results plus AI Overview, knowledge panel, People Also Ask, related searches, local pack, top stories and ads for…

0/5 core fields 18 output fields $0.99 per 1K

Domain-Scoped Site Crawler for Markdown Datasets

Crawl a website from one or more start URLs, staying on the same domain, and get back clean Markdown, text, or HTML per page with title,…

5 output fields $0.99 per 1K

Amazon Brand Store Page & Merchandising Crawler

Crawl an Amazon Brand Store's navigation, creative modules (images, video, CTAs), and every product link found on its pages. Resolves a brand's…

11 output fields $0.99 per 1K

Wayback Machine Snapshot History & Archived Text Extractor

Pull the Wayback Machine's capture history for any URL, host, or domain with timestamps, status codes, MIME types, and optional archived page text.

19 output fields $0.99 per 1K

Facebook Page & Profile Finder by Keyword or URL

Find Facebook Pages or public profiles by keyword, or scrape a list of Facebook URLs directly, and get back contact info, category, ratings,…

10 output fields $0.99 per 1K

Ahrefs Domain Rating, Backlinks & Traffic Lookup

Look up a domain's public Ahrefs Domain Rating, linking-website count, global rank, and estimated organic traffic, with a mode to fetch just…

6 output fields $0.99 per 1K

Complete Page Capture - Screenshot & PDF

Capture complete full-page screenshots or PDFs of any URL list. Scrolls lazy content, waits for images and fonts, removes fixed headers and…

12 output fields $0.99 per 1K

Questions people ask

How much does Search & URL Markdown Extractor for LLMs cost?

The published result rate depends on your Apify plan: $0.99 per 1,000 on Free, $0.82 per 1,000 on Starter, $0.66 per 1,000 on Scale, $0.49 per 1,000 on Business. So 10,000 results cost about $9.90 on the Free plan and $4.90 on Business, plus a start fee of $0.10 per run per GB of memory on Free. Platform usage is billed separately.

What data does Search & URL Markdown Extractor for LLMs return?

Its published output schema lists 13 fields: url, title, description, wordCount, httpStatusCode, loadedTime, searchRank, canonicalUrl, author, publishedDate, contentLength, engine, and 1 more. A listed field is not guaranteed to be filled in every row.

What input does Search & URL Markdown Extractor for LLMs need?

No input is strictly required; the defaults run as is. Common settings: query, queries, startUrls, searchEngine, searchLanguage, searchCountry.

What are the alternatives to Search & URL Markdown Extractor for LLMs for Google Search?

4 catalogue Actors cover Google Search. Close alternatives: Google Image Search Results & Metadata Scraper; Google Autocomplete Keyword Expansion Scraper; Google Search Results Scraper: Organic & SERP Boxes. The Google Search page compares all of them field by field.

How do I run Search & URL Markdown Extractor for LLMs from Python or the API?

Use the Apify API client: in Python, ApifyClient(token).actor("vexaloom-labs/rag-web-browser").call(run_input=...), then read the run's default dataset (run.default_dataset_id); in JavaScript the same call is client.actor("vexaloom-labs/rag-web-browser").call(input). Without a client, POST the input JSON to https://api.apify.com/v2/actors/vexaloom-labs~rag-web-browser/run-sync-get-dataset-items with your API token. Ready-to-paste code with the example input is on this page.

Sources

Actor updated 2026-10-17 Data synced 2026-11-12
Cite this page

Scraper Finder. "Search & URL Markdown Extractor for LLMs." https://scraperfinder.com/catalogue/rag-web-browser/ (data checked 2026-11-12).

Run Search & URL Markdown Extractor for LLMs

$0.99 per 1,000 results. Paste the example input above, set your Google Search query, then export the dataset. Still choosing? Compare every Google Search route.

Open in Apify Store