suck — pull any URL off the web as clean, LLM-ready markdown
curl suck.dev/URL
curl -H 'Accept: application/json' suck.dev/URL
curl -H 'X-API-Key: sk_suck_…' suck.dev/URL
npx suckdev URL # or: npm i -g suckdev, then suck URL (man suck included)
The web is 3 MB of divs, trackers and cookie banners wrapped around 4 KB of text. suck fetches any page, strips the boilerplate with readability extraction, and returns markdown your LLM can actually eat. No SDK, no client library, no dashboard — the URL is the API.
Feed it docs, articles, changelogs, competitors' pricing pages. Pipe the output straight into your context window.
$ curl suck.dev/https://example.com
# Example Domain
This domain is for use in documentation examples…
$ curl suck.dev/https://en.wikipedia.org/wiki/Vacuum | head
$ curl -H 'Accept: application/json' suck.dev/https://example.com
{"title": "Example Domain", "markdown": "…", "remaining": 19}
Try it without leaving this page:
| Header | Meaning |
|---|---|
| X-Suck-Final-Url | URL after redirects |
| X-Suck-Bytes-In | raw page size sucked |
| X-Suck-Remaining | requests left in your window |
3 MB page cap · 20 s timeout · private/internal hosts refused ·
sends SuckBot/1.0 honestly.
| Tier | Limit | Price |
|---|---|---|
| anonymous | 20 req/day per IP | $0 — no signup |
| free key | 500 req/mo | $0 — email below |
| hobby | 5,000 req/mo | $19/mo |
| pro | 50,000 req/mo + support | $99/mo |
Get a free key (shown once, one per email):
Paid checkout:
Run curl suck.dev with no URL at all. Go on.
Donations help cover infrastructure costs and supplement a 9-to-5 job.
ADDRESS_PENDINGADDRESS_PENDINGADDRESS_PENDINGADDRESS_PENDINGJavaScript-only SPAs render as whatever is in their HTML shell — headless rendering is on the roadmap. Report anything else to hello@suck.dev.
curl(1), jq(1), your context window