MH MediaHarvester Web Context API

Markdown

Scrape Markdown

Turn noisy webpages into text your LLM or search index can consume directly, without carrying navigation chrome and raw DOM through every downstream step.

GET /v1/web/scrape/markdown

What you get

Developer-ready output for Scrape Markdown

01 LLM-readable markdown
02 includeLinks and includeImages controls
03 Main-content extraction
04 Base64 image shortening

Real workflows

Where teams use Scrape Markdown

These examples map to the endpoint's current inputs and outputs—not hypothetical platform features.

Ground an AI answer in live docs

Fetch a documentation page as Markdown before asking an agent to answer a product or support question.

OutcomeCleaner context with the original source URL retained.
Build a research corpus

Normalize pages from different sites into one Markdown shape before chunking, embedding or diffing them.

OutcomeLess preprocessing code in the ingestion pipeline.
Track meaningful content changes

Store Markdown snapshots instead of full HTML when the text and links are what matter to your monitor.

OutcomeSmaller, easier-to-diff records.

How it works

4 concrete steps from input to result

1

Send URL and markdown options

2

Fetch or render the page

3

Remove boilerplate when requested

4

Return markdown and source URL

API response

Fields developers usually wire first

Convert webpages into clean, source-linked Markdown for AI agents, research notes and retrieval pipelines while keeping link and image controls explicit.

markdown url links images
curl.exe -H "X-API-Key: YOUR_API_KEY" "http://127.0.0.1:8013/v1/web/scrape/markdown"

Developer FAQ

Common questions about Scrape Markdown

12 answers
Why use Markdown for LLMs?

Markdown keeps headings, lists, tables and links while removing most layout noise. It is easier to chunk and cheaper to place in a model context than raw HTML.

Can I preserve links for citations?

Yes. Keep includeLinks enabled when your agent needs source links or when downstream answers should cite the original page.

Can I exclude navigation and footers?

Yes. useMainContentOnly tells the extractor to focus on the article or page body and skip repeated chrome where possible.

What endpoint should I call for Scrape Markdown?

Use GET /v1/web/scrape/markdown. Local development accepts the X-API-Key header with YOUR_API_KEY, and production clients can use the same shape with their own key.

Can I call it from CLI, SDK, MCP and no-code tools?

Yes. The same endpoint can be called with curl, the TypeScript SDK, Python SDK, MCP server, Zapier, Make, n8n, Google Sheets or Excel workflows where appropriate.

How does caching with maxAgeMs work?

When maxAgeMs is supported, a cached response can be reused if it is younger than the requested freshness window. Set maxAgeMs to 0 when you need a fresh scrape or extraction.

What happens when a page is blocked or requires login?

The API returns clear states such as blocked, verification_required, login_required, robots_disallowed or permission_required. It does not promise to bypass access controls.

Which response fields should I store?

Most integrations store markdown, url, links, images, plus source URL, status, confidence and timestamp fields when present. Keep source metadata so users can audit values later.

Can I batch this endpoint?

For local or small workflows, loop over a list of URLs or domains. For larger jobs, use crawl, batch workflow endpoints or a queue so failures and retries are tracked cleanly.

How should I handle errors in production?

Check success, HTTP status, error.type and retryable flags. Retry timeouts and temporary network failures, but do not retry robots, login or permission errors without changing input or authorization.

Does the API work with JavaScript-heavy sites?

The engine router starts with fast fetching and escalates when content quality is low. Browser-style rendering is used where available, while access-control barriers are reported explicitly.

Is this safe to use with customer data?

Send only domains, URLs or fields your workflow needs. Use retention controls for generated artifacts and avoid storing unnecessary raw HTML, screenshots or extracted personal data.

Related data APIs

Build the next step in the workflow