---
name: url2text
description: Read the main article text of a web page as clean Markdown or plain text through url2text's free API. Use when you need the content of an article, blog post, documentation or wiki page without menus, ads or scripts, and for WeChat Official Account articles (mp.weixin.qq.com), Chinese or Japanese pages and SEC EDGAR filings.
---

# url2text

Get the readable content of a web page in one request, without running a browser.

## Use

```sh
curl "https://url2text.netlify.app/api/extract?url=https%3A%2F%2Fpaulgraham.com%2Fgreatwork.html&format=markdown"
```

The answer is the article as Markdown: title, byline, source address, then the text with headings,
lists, tables, links and code kept. Use `format=text` for plain paragraphs, or leave `format` out for
JSON with `title`, `byline`, `siteName`, `lang`, `words`, `markdown` and `text`.
POST `https://url2text.netlify.app/api/extract` with `{ "url": "…", "format": "markdown" }` works too.

It reads WeChat Official Account articles (`mp.weixin.qq.com`), Chinese and Japanese
pages in legacy encodings such as GBK and Shift_JIS, and SEC EDGAR filings with their tables.

For a long page add `&offset=0`: the answer is a part of about 20,000 tokens that ends with
`ask again with offset=N` until `[End of the article.]`. `max_chars` sets another part size.

An MCP client can use `https://url2text.netlify.app/api/mcp` (Streamable HTTP, no auth), tool `extract_article`; its answers always come in parts.

## When it fails

Errors are one readable sentence (`{ "error": "…" }` in JSON) with a status: 4xx for links that can't be read (private addresses,
files, missing pages, logins, more than 30 requests a minute), 502/504 when the site fails or is slow.
Pages that render with JavaScript or need a login come back as errors or nearly empty; fall back
to a browser for those.

Full reference: https://url2text.netlify.app/docs/api
