URL to Markdown

Turn a web page into clean Markdown: the main content, without navigation, ads or boilerplate. Handles static pages and pages built with JavaScript.

Free to try Pay by wallet (x402) url-to-markdown

Example

Input
{
  "url": "https://example.com"
}
Answer
{
  "url": "https://example.com",
  "title": "Example Domain",
  "markdown": "Example Domain\n\n# Example Domain\n\nThis domain is for use in documentation examples without needing permission. Avoid use in operations.\n\n[Learn more](https://iana.org/domains/example)",
  "word_count": 22
}

Try it

Runs the real tool from your browser, with no key. Free calls are limited to 300 a month across all free tools.

Edit the values, then run.

Inputs

FieldTypeRequiredWhat it is
urlstringYesURL to convert
include_linksbooleanNo—
include_imagesbooleanNo—

Output fields

How reliably each field appears in a successful answer.

FieldTypeAppears
titlestringAlways (present in every successful answer)
markdownstringAlways (present in every successful answer)
word_countintegerAlways (present in every successful answer)

How to call it

The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.

# Free tool: works without a key, within a monthly allowance. Add your key for more.
curl -X POST https://api.strale.io/v1/do \
  -H 'Content-Type: application/json' \
  -d '{
    "capability_slug": "url-to-markdown",
    "inputs": {
      "url": "https://example.com"
    },
    "max_price_cents": 5
  }'

Limitations

  • Some website sources are unsupported

    Trustpilot, Glassdoor, LinkedIn, Google Search, Google Patents, Reddit and the major social platforms (Facebook, Instagram, X) are not supported and return a policy error before the page is read. Repeating the same request does not return content.

  • JavaScript applications may render incompletely

    JavaScript-heavy single-page applications may not render completely

    What to do instead: Inspect the rendered page in a browser to confirm whether any content is missing.

  • Login-protected or paywalled content cannot be extracted

    What to do instead: Use an accessible public page containing the information you need.

  • Pages are limited to 16 MiB of HTML

    Pages with more than 16 MiB of HTML are refused with a caller_input error naming the input field. The call is not charged, and the page is not retried through another fetch or rendering route.

Bundled checks that include it