RAG Website Crawler — Markdown & AI Chunks avatar

RAG Website Crawler — Markdown & AI Chunks

Pricing

Pay per usage

Go to Apify Store
RAG Website Crawler — Markdown & AI Chunks

RAG Website Crawler — Markdown & AI Chunks

Crawl websites into clean Markdown, deterministic RAG chunks, canonical metadata, content hashes, and deduplicated AI-ready datasets for vector databases and agents.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

João Victor

João Victor

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Turn websites into clean Markdown and deterministic, deduplicated chunks ready for RAG pipelines, vector databases, AI agents, search indexes, and knowledge bases.

HTTP-first for low cost. Browser rendering, proxies, and asset downloads remain explicit opt-ins.

Why use this Actor?

A generic crawler returns pages. This Actor returns a practical ingestion contract:

CrawlCleanPrepare for AIControl cost
Same-site links and depth limitsMain-content MarkdownStable chunk IDs and metadataHTTP mode by default
Include/exclude URL patternsCanonical URL and languageSHA-256 content hashProxy disabled by default
Per-item error rowsAuthor and publication metadataDuplicate detectionByte, page, depth, and concurrency caps

Best for

  • RAG and AI teams building reliable ingestion pipelines.
  • Developers syncing documentation or help centers into vector databases.
  • Agencies exporting clean client-site content through Dataset/API/webhooks.
  • Knowledge-base owners who need canonical metadata and duplicate suppression.

Output highlights

Every page produces a traceable Dataset row with:

  • url and canonicalUrl;
  • clean markdown;
  • title, description, author, language, and publication date;
  • deterministic contentHash;
  • isDuplicate and duplicateOf;
  • chunks with stable IDs and page metadata;
  • optional downloaded assets;
  • machine-readable errorType for failed pages.

Duplicate pages remain visible for auditing but do not create redundant chunks.

Quick start

{
"startUrls": [{ "url": "https://docs.example.com" }],
"maxCrawlDepth": 2,
"maxPages": 100,
"chunkForRag": true,
"chunkSize": 500,
"chunkOverlap": 50,
"deduplicateContent": true,
"useBrowser": false,
"downloadAssets": false,
"proxyConfiguration": { "useApifyProxy": false }
}

Recommended workflow:

Start URLs → safe HTTP crawl → main-content extraction → Markdown
→ canonical metadata → hash/dedupe → RAG chunks → Dataset/API

Input

FieldDefaultPurpose
startUrlsrequiredSeed pages
maxCrawlDepth3Link depth from seeds
maxPages100Hard page budget
includeUrlPatterns[]Optional URL regex allowlist
excludeUrlPatterns[]Optional URL regex blocklist
chunkForRagtrueCreate vector-ready chunks
chunkSize500Approximate target tokens
chunkOverlap50Approximate overlap tokens
deduplicateContenttrueSuppress duplicate chunks
useBrowserfalseRender JavaScript-heavy pages
downloadAssetsfalseDownload up to 20 images/PDFs per page
proxyConfigurationdisabledApify Proxy settings
maxConcurrency10Parallel HTTP requests; browser mode is capped at 5
requestDelay500 msDelay between requests
maxContentBytes1,000,000Maximum page body size
allowPrivateUrlsfalseExplicit internal-network override

Invalid or risky regexes are rejected before crawling. chunkOverlap must be smaller than chunkSize.

Example page result

{
"url": "https://docs.example.com/getting-started",
"canonicalUrl": "https://docs.example.com/getting-started",
"title": "Getting started",
"markdown": "# Getting started\n\nInstall the SDK...",
"language": "en",
"contentHash": "sha256...",
"isDuplicate": false,
"duplicateOf": null,
"useful": true,
"chunks": [
{
"id": "<contentHash>:0",
"index": 0,
"text": "# Getting started...",
"tokenCount": 186,
"metadata": {
"url": "https://docs.example.com/getting-started",
"title": "Getting started",
"language": "en"
}
}
],
"chunkCount": 1,
"error": null
}

OUTPUT separately reports attempted, technically successful, useful, duplicate, and failed pages so empty/error rows cannot inflate success metrics.

Security and reliability

Public URL fetchers can become SSRF relays. This Actor blocks local/private/special IP ranges, metadata endpoints, credentialed URLs, unsafe redirects, and unsafe browser subrequests by default. It also redacts sensitive query values in logs and caps page/asset response sizes.

allowPrivateUrls: true is an expert override for controlled internal environments.

Cost guidance

  • Keep useBrowser: false for static sites and documentation.
  • Enable browser rendering only when the raw HTML lacks useful content.
  • Leave proxy and assets disabled unless the target requires them.
  • Use URL patterns and a small maxPages while calibrating a new site.

Actual cost depends on memory, browser use, proxy traffic, assets, and target response time. Run a small sample before scaling.

Limitations

  • This Actor crawls public HTTP(S) pages; it does not log in or bypass access controls.
  • JavaScript-heavy sites may require browser mode.
  • Content quality depends on the target HTML structure.
  • Sites can block automated traffic or impose their own crawl rules.
  • DNS validation reduces SSRF risk, but absolute protection against DNS rebinding requires network-level egress controls.

Pricing

Currently kept on normal Apify platform usage to reduce adoption friction while real external demand is measured. No separate Pay-Per-Event charge is added by this Actor.

Support

For issues or feature requests, contact the author through the Apify platform and include the run ID plus a redacted sample URL.