Clean Markdown
The main content only: no navigation, ads, cookie banners or pop-ups. Tables, links and images are kept, with full URLs.
Send a URL, get back its main content as Markdown, text or HTML, without menus, ads or cookie banners. Pages built by JavaScript are loaded in a real browser when they need it. Link previews and site maps too, from one REST call or MCP tool.
1,000 free pages / monthNo credit card required
curl -X POST https://api-readmint.plxi.us/v1/read \
-H "X-API-Key: sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/"
}'One header, one request, useful results.
A straightforward API, with the tools to take it from your first experiment to production.
The main content only: no navigation, ads, cookie banners or pop-ups. Tables, links and images are kept, with full URLs.
Plain pages answer in a fraction of a second. Pages built by JavaScript are loaded in Chromium automatically, at the same price.
Title, description, image and its size, favicon, site name and oEmbed details for any link, from one call.
read_url, preview_url and map_site as MCP tools, with results sized for a context window and a cap you choose.
Give an agent one MCP tool that reads any page as Markdown, instead of raw HTML that fills its context window.
Turn docs, help centres and blogs into clean Markdown to chunk and embed, with titles, dates and canonical URLs.
Show link cards in chats, feeds and editors: title, description, image size, favicon and embeds from one call.
Start free with your Plexsicity account.
Create a key in your dashboard.
Send JSON with an X-API-Key header.
Explore examples from the API’s actual operation catalog, then try them in your workspace.
A web page's main content as clean Markdown, text or HTML, without menus, ads or cookie banners.
POST /v1/read{
"url": "https://example.com/"
}{
"url": "https://example.com/",
"final_url": "https://example.com/",
"status": 200,
"title": "Example Domain",
"byline": null,
"excerpt": "This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.",
"site_name": null,
"published": null,
"lang": "en",
"format": "markdown",
"content": "This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.\n\n…\n\n[Learn more](https://iana.org/help/example-domains)",
"word_count": 133,
"truncated": false,
"rendered": true,
"article": true,
"fetched_at": "2026-10-31T13:20:00Z",
"credits": 1
}A link preview: title, description, image, site name, favicon and oEmbed details for any page.
POST /v1/preview{
"url": "https://example.com/"
}{
"url": "https://example.com/",
"final_url": "https://example.com/",
"status": 200,
"title": "Example Domain",
"description": null,
"site_name": "example.com",
"type": null,
"image": null,
"favicon": "https://example.com/favicon.ico",
"icons": [],
"theme_color": null,
"author": null,
"published": null,
"lang": "en",
"canonical": null,
"feeds": [],
"oembed_url": null,
"oembed": null,
"content_type": "text/html",
"rendered": false,
"fetched_at": "2026-10-31T13:20:00Z",
"credits": 1
}Simple, usage-based pricing.
Start free, upgrade when you need more.
When it has to. Each page is first fetched directly; if it turns out to be built by script, or the site turns plain clients away, it is loaded in a real Chromium browser. render: "always" or "never" overrides that. A read costs one credit either way.
Navigation, headers, footers, sidebars, cookie banners, pop-ups and chat widgets. Mozilla's Readability finds the main content; a page that isn't an article comes back without its navigation, header and footer. selector reads one element instead.
No. Bad input, private addresses, pages behind a bot check or a login, HTTP errors and files that are not web pages are refused with a 4xx error and cost nothing.
No. Readmint reads public pages only. It doesn't solve CAPTCHAs or get past bot protection, and refuses those pages without charging.
A read can come from a cache up to max_age seconds old: an hour by default, a day for previews. Send max_age: 0 to read the page fresh; fetched_at says when it was read.
Get your free key and make your first request with Readmint.