Doc2RAG AI - Documentation to LLM-Ready Markdown Converter avatar

Doc2RAG AI - Documentation to LLM-Ready Markdown Converter

Pricing

from $3.00 / 1,000 clean llm-ready markdown documents

Go to Apify Store
Doc2RAG AI - Documentation to LLM-Ready Markdown Converter

Doc2RAG AI - Documentation to LLM-Ready Markdown Converter

Convert technical documentation websites (Stripe, Supabase, Next.js, Mintlify, Docusaurus) into clean, LLM-ready Markdown with preserved multi-language code blocks, tables, and RAG frontmatter. Exports JSON dataset, single llms-full.txt, and ZIP archive.

Pricing

from $3.00 / 1,000 clean llm-ready markdown documents

Rating

0.0

(0)

Developer

Automation Studio

Automation Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

The ultimate technical documentation scraper for AI agents and RAG pipelines. Automatically crawl, clean, and convert technical documentation websites (Stripe, Supabase, Next.js, Mintlify, Docusaurus, GitBook) into pristine, LLM-ready Markdown with preserved multi-language code snippets, tables, and RAG YAML frontmatter.


๐ŸŽฏ Why Doc2RAG AI?

General-purpose web scrapers dump navigation bars, sidebars, cookie popups, and search modals into your vector database, diluting context quality and inflating token costs.

Doc2RAG AI is engineered specifically for developers building RAG pipelines, Claude Projects, and Cursor IDE context:

  • ๐Ÿ› ๏ธ Framework Auto-Detection: Recognizes Mintlify, Docusaurus, GitBook, Nextra, VitePress, Readme.io, and MkDocs to isolate the technical content body with 100% precision.
  • ๐Ÿ’ป Multi-Language Code Tab Preservation: Unlike naive scrapers that drop inactive tabs, Doc2RAG parses tabbed code containers and formats every language (cURL, Python, Node.js, Go) into distinct labeled Markdown fences.
  • ๐Ÿ“Š Clean Table Conversion: Formats HTML tables into clean GitHub-flavored Markdown tables.
  • ๐Ÿท๏ธ RAG Frontmatter: Injects structured YAML frontmatter (title, url, headings, word_count, estimated_tokens, crawled_at) for vector embeddings and document chunkers.
  • ๐Ÿ“ฆ Triple Output Delivery:
    1. Structured JSON Dataset: Per-page records with clean Markdown and metadata.
    2. documentation.zip: Downloadable ZIP folder hierarchy mirroring documentation URL subpaths.
    3. llms-full.txt: Consolidated single document with master Table of Contents, ready to drop into Claude Projects, NotebookLM, or ChatGPT.

โšก Supported Documentation Engines

FrameworkDetection SignatureCode Tabs Preserved
Docusaurus.theme-doc-markdown, articleโœ… All Languages
Mintlify#content-area, .proseโœ… All Languages
GitBook[data-testid="page.content"]โœ… All Languages
Nextraarticle.nextra-contentโœ… All Languages
VitePressdiv.vp-doc, mainโœ… All Languages
MkDocsarticle.md-content__innerโœ… All Languages
Sphinx / ReadTheDocsdiv[itemprop="articleBody"]โœ… All Languages
Custom / Bespoke DocsTrafilatura NLP Extractor Fallbackโœ… All Languages

๐Ÿ“ฅ Input Example

{
"start_urls": [
"https://docs.stripe.com/api"
],
"max_pages": 50,
"max_depth": 4,
"strict_path_scoping": true,
"preserve_code_tabs": true,
"include_tables": true,
"generate_zip": true,
"generate_llms_txt": true
}

๐Ÿ“ค Output Sample (Markdown with YAML Frontmatter)

---
title: "Create a PaymentIntent"
url: "https://docs.stripe.com/api/payment_intents/create"
description: "Creates a PaymentIntent object to initiate payment collection."
framework: "Docusaurus"
word_count: 1420
estimated_tokens: 1890
crawled_at: "2026-09-13T12:00:00Z"
headings:
- "Arguments"
- "Returns"
- "Code Examples"
---
# Create a PaymentIntent
Creates a PaymentIntent object to initiate payment collection.
### Code Examples
**Python Example:**
```python
import stripe
stripe.api_key = "sk_test_..."
stripe.PaymentIntent.create(
amount=2000,
currency="usd",
automatic_payment_methods={"enabled": True},
)

Node.js Example:

const stripe = require('stripe')('sk_test_...');
const paymentIntent = await stripe.paymentIntents.create({
amount: 2000,
currency: 'usd',
automatic_payment_methods: { enabled: true },
});
---
## ๐Ÿš€ Quickstart: RAG Ingestion Example (LangChain)
```python
from apify_client import ApifyClient
from langchain_community.document_loaders import ApifyDatasetLoader
from langchain_text_splitters import MarkdownHeaderTextSplitter
# 1. Run Doc2RAG AI
client = ApifyClient("YOUR_APIFY_TOKEN")
actor_call = client.actor("automation_studio/doc-to-rag-markdown-converter").call(
run_input={"start_urls": ["https://docs.stripe.com/api"], "max_pages": 50}
)
# 2. Ingest structured Markdown into LangChain
loader = ApifyDatasetLoader(
dataset_id=actor_call["defaultDatasetId"],
dataset_mapping_function=lambda item: Document(
page_content=item["markdown"],
metadata={"url": item["url"], "title": item["title"], "tokens": item["estimated_tokens"]}
)
)
docs = loader.load()