URL to Markdown for LLM & RAG: Pages, PDFs, Podcasts avatar

URL to Markdown for LLM & RAG: Pages, PDFs, Podcasts

Pricing

from $1.00 / 1,000 page converteds

Go to Apify Store
URL to Markdown for LLM & RAG: Pages, PDFs, Podcasts

URL to Markdown for LLM & RAG: Pages, PDFs, Podcasts

Convert web pages, PDFs, Word/PowerPoint/Excel files, RSS feeds and podcast transcripts into clean Markdown for LLMs and RAG: main content, metadata, exact GPT-4o token counts and heading-aware chunks. HTTP-only, respects robots.txt. $1 per 1,000 pages; failed URLs free.

Pricing

from $1.00 / 1,000 page converteds

Rating

0.0

(0)

Developer

Kacper Gumieniuk

Kacper Gumieniuk

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Features

Limited permissions

Share

URL to Markdown for LLM & RAG converts web pages, PDF files, Word, PowerPoint and Excel files (DOCX, PPTX, XLSX), RSS/Atom feeds and podcast transcripts into clean, LLM-ready Markdown. Each result has the main content only, metadata, an outline, exact GPT-4o token counts and heading-aware RAG chunks, ready for a vector database, a LangChain/LlamaIndex loader, a custom GPT knowledge base or an AI agent's context window.

Try it now: press Start. The prefilled input converts a Wikipedia article, the 15-page "Attention Is All You Need" PDF and 3 podcast episodes in under a minute for about one cent. Price: $1 per 1,000 pages. Failed URLs are never charged. Apify's free plan ($5 of monthly credit) covers about 4,900 pages a month.

It is fast and cheap because it uses plain HTTP (no browser) and respects robots.txt.

Use cases

  • Build a RAG knowledge base from documentation sites, help centers, research PDFs and blog archives.
  • Feed an AI agent clean context from any URL (works through the Apify API and the Apify MCP server).
  • Turn podcast episodes into searchable, quotable text for show notes, summaries, newsletters or fine-tuning data, without paying for speech-to-text when the publisher already has a transcript.
  • Keep a competitor or news monitor that pulls full articles from RSS feeds every day.
  • Convert reports, papers and whitepapers (PDF) into Markdown for summarization or extraction.
  • Read Word, PowerPoint and Excel files in n8n Cloud, Make or Zapier, where you cannot install Python converters: one HTTP call with the file's URL returns Markdown your AI step can use.

What it converts

  • Web pages → Markdown: keeps the main article content and strips navigation, headers, footers, cookie banners, sidebars and link farms. Headings, lists, tables (GFM), code blocks with language, quotes and links are preserved. Metadata comes from Open Graph, JSON-LD and meta tags: title, description, author, published date, language, site name, canonical URL and image.
  • PDF → Markdown: reads the PDF text layer, turns larger fonts into headings, joins wrapped lines into paragraphs (with de-hyphenation), drops running headers, footers and page numbers, and marks pages with <!-- page N --> for citations.
  • Word, PowerPoint, Excel → Markdown: DOCX headings, bold/italic, links, bulleted and numbered lists and tables; PPTX one ## Slide N: title section per slide with bullets and speaker notes; XLSX one section per visible sheet as a Markdown table (first row = header, up to 5,000 rows x 50 columns per sheet). Old binary .doc/.ppt/.xls are not supported (save them as the newer format).
  • Podcast transcripts → Markdown: give a podcast RSS feed. Episodes that publish a transcript (<podcast:transcript>, Podcasting 2.0: Buzzsprout, Fireside, Podnews, many others) become clean Markdown with speaker names and [hh:mm:ss] timestamps.
  • RSS/Atom feeds → full articles: a blog or news feed expands into the full Markdown of each linked article, not the truncated feed summary.
  • Caption files: direct .vtt / .srt / Podcasting 2.0 JSON links → timestamped Markdown.
  • Also: Markdown, plain text and JSON URLs. Sites that serve Markdown natively are used as-is.
  • For LLMs and RAG: exact token counts (o200k_base, the GPT-4o / GPT-4.1 / o-series tokenizer), chunks of a configurable token size cut at heading and paragraph boundaries, each with its heading path (
    Guide > Setup > Install
    ) and token count, and optional truncation to a token budget.

How to use URL to Markdown

  1. Paste URLs into URLs, one per line: web pages, PDFs, DOCX/PPTX/XLSX files, RSS/Atom feeds or transcript files.
  2. Pick a chunk size for RAG (default 1,000 tokens; 0 = no chunks).
  3. For feeds, set Max items per feed (prefilled with 3 for a quick test).
  4. Press Start. Each document becomes one dataset item; export it as JSON, JSONL, CSV or Excel, or read it with the API.

Input

{
"urls": [
"https://en.wikipedia.org/wiki/Retrieval-augmented_generation",
"https://arxiv.org/pdf/1706.03762",
"https://feeds.buzzsprout.com/1004689.rss",
"https://podnews.net/audio/podnews261102.mp3.vtt"
],
"chunkTokens": 800,
"maxFeedItems": 5
}
FieldDefaultWhat it does
urlsrequiredWeb pages, PDFs, Word/PowerPoint/Excel files, RSS/Atom feeds, transcript/caption files. Up to 5,000 per run.
chunkTokens1000Chunk size in tokens; 0 turns chunking off.
contentModemainmain = article content, full = whole page body.
feedItemsautoauto = podcast transcripts if the feed has them, otherwise linked articles; transcripts, articles, or feed (the feed itself as one document).
maxFeedItems10Items taken from each feed (newest first).
transcriptLanguage(none)Preferred transcript language, e.g. en.
timestampstrue[hh:mm:ss] at the start of transcript paragraphs.
maxTokens0Truncate each document to about this many tokens (0 = no limit).
keepLinks / keepImages / includeLinkListtrue / false / falseLink and image handling.
maxPdfPages200Pages converted per PDF (you pay per page).
maxConcurrency5Parallel downloads (one site is always hit at most every 250 ms).

Output

One dataset item per document. Example (podcast episode, shortened):

{
"url": "https://podnews.net/audio/podnews261030.mp3.vtt",
"type": "podcast-transcript",
"title": "Who’s buying PodcastOne?",
"author": "Podnews LLC",
"publishedAt": "2026-10-30T09:15:44.000Z",
"language": "en-gb",
"markdown": "# Who’s buying PodcastOne?\n\n- Show: Podnews Daily\n- Duration: 00:03:56\n...\n\n## Transcript\n\n**[00:00:00]** From our free daily newsletter, the latest from podnews.net ...",
"wordCount": 642,
"tokens": 878,
"truncated": false,
"outline": [{ "level": 1, "text": "Who’s buying PodcastOne?" }, { "level": 2, "text": "Transcript" }],
"chunks": [{ "index": 0, "heading": "Who’s buying PodcastOne? > Transcript", "tokens": 790, "markdown": "..." }],
"podcast": { "show": "Podnews Daily", "episode": "Who’s buying PodcastOne?", "durationSeconds": 236, "transcriptFormat": "vtt" },
"httpStatus": 200,
"fetchedAt": "2026-11-02T20:01:43.878Z"
}

type is one of web-page, pdf, docx, pptx, xlsx, podcast-transcript, captions, feed, markdown, text, json. PDFs add pdf: { pages, pagesConverted, producer }; presentations and workbooks add office: { slides } or office: { sheets }. A URL that cannot be converted produces an uncharged error item that says what to do:

{ "url": "https://httpbin.org/status/404", "type": "error", "error": { "code": "target_http_404", "message": "httpbin.org answered HTTP 404; not charged" } }

The dataset has three views: Overview (type, title, tokens, words), Markdown, and Podcast episodes.

How much does it cost to convert URLs to Markdown?

EventPriceExample
Page converted (web page, feed, caption, text file; a whole DOCX, PPTX or XLSX file)$0.0011,000 pages = $1.00
PDF page converted$0.0003a 15-page paper = $0.0045
Podcast transcript converted (one episode)$0.002100 episodes = $0.20
Actor start (per run)$0.001

Failed URLs cost nothing: 404s, robots.txt blocks, timeouts, unsupported files and empty pages. Platform usage is included. Set a maximum cost per run in the run options and the actor stops when it is reached.

FAQ

How is it different from RAG Web Browser or Website Content Crawler?

RAG Web Browser searches Google and renders pages in a browser; Website Content Crawler crawls whole sites. This actor does no search, no crawling and no JavaScript rendering: it converts the URLs and feeds you already have, so it is faster and cheaper per document, and it adds PDFs, podcast transcripts, token counts and RAG chunks.

Does it run JavaScript?

No. Pages that render their text in the browser (some single-page apps) return an uncharged empty_content error; use Website Content Crawler for those.

Does it OCR scanned PDFs?

No, only PDFs with a text layer. Scanned PDFs return an uncharged empty_content error; use Image to Text OCR for them.

Which tokenizer is used?

o200k_base (GPT-4o, GPT-4.1, o1/o3/o4). Counts for Claude or Llama models differ by a few percent.

How big can documents be?

Downloads up to 25 MB. Markdown is capped at 400,000 characters per document (use maxTokens for a smaller budget).

Is YouTube supported?

No. YouTube's Terms of Service forbid automated access and its robots.txt disallows the caption endpoints.

Can I use it from an AI agent?

Yes: through the Apify MCP server, the REST API (run-sync-get-dataset-items), or the LangChain / LlamaIndex Apify integrations reading the dataset.

Responsible use

robots.txt is respected on every request and redirect (RFC 9309). Sites can opt out with User-agent: LLMReadyMarkdown. The actor identifies itself in its user agent and spaces requests to the same site. No logins, no paywall bypass, no CAPTCHA solving, no proxy rotation to evade blocks. You are responsible for how you use converted content (copyright, terms of the source site).