Fetch any URL as clean, AI-ready Markdown with token counts and caching. Strip ads, nav, scripts, and noise from web pages.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add dvcrn/openclaw-skills-marketplace --skill stripfeed --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Stripfeed?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/dvcrn-stripfeed)More formats (shields.io, HTML) on the badges page.
---
name: stripfeed
description: "Fetch any URL as clean, AI-ready Markdown with token counts and caching. Strip ads, nav, scripts, and noise from web pages."
---
# StripFeed
Convert any URL to clean Markdown optimized for LLM consumption. Strips ads, navigation, scripts, and noise. Returns token counts so you know exactly how much context you're using.
## When to use this skill
Use StripFeed whenever you need to read a web page, article, documentation, or any URL content. It produces much cleaner output than raw HTML fetching and tells you the token cost.
## Authentication
All requests require the `STRIPFEED_API_KEY` environment variable. Pass it as a Bearer token:
```
Authorization: Bearer $STRIPFEED_API_KEY
```
Get a free API key at https://www.stripfeed.dev (200 requests/month, no credit card).
## Fetch a single URL
```bash
curl -s "https://www.stripfeed.dev/api/v1/fetch?url=URL_HERE" \
-H "Authorization: Bearer $STRIPFEED_API_KEY"
```
This returns clean Markdown directly as the response body (Content-Type: text/markdown).
### Parameters
| Parameter | Required | Description |
| ------------ | -------- | ----------------------------------------------------------------------------------------- |
| `url` | Yes | The URL to fetch (must be http or https) |
| `format` | No | Output format: `markdown` (default), `json`, `text`, `html`. Pro only except markdown. |
| `selector` | No | CSS selector to extract specific content (e.g. `article`, `.content`, `#main`). Pro only. |
| `cache` | No | Set to `false` to bypass cache and force a fresh fetch |
| `ttl` | No | Cache TTL in seconds (default: 3600, max: 86400 for Pro) |
| `max_tokens` | No | Truncate output to fit within this token budget |
| `model` | No | AI model ID for cost tracking (e.g. `claude-sonnet-4-6`, `gpt-4o`) |
### JSON format (recommended for structured responses)
When you need metadata alongside the content, use `format=json`:
```bash
curl -s "https://www.stripfeed.dev/api/v1/fetch?url=URL_HERE&format=json" \
-H "Authorization: Bearer $STRIPFEED_API_KEY"
```
JSON response includes:
```json
{
"markdown": "# Page Title\n\nClean content...",
"url": "https://example.com",
"title": "Page Title",
"tokens": 1250,
"originalTokens": 15000,
"savingsPercent": 91.7,
"cached": false,
"fetchMs": 430,
"format": "json",
"truncated": false,
"selector": null,
"model": null
}
```
### Response headers
Every response includes these headers:
- `X-StripFeed-Tokens` - Token count of the stripped content
- `X-StripFeed-Original-Tokens` - Token count of the raw HTML (before stripping)
- `X-StripFeed-Savings-Percent` - Percentage of tokens saved
- `X-StripFeed-Cache` - `HIT` or `MISS`
- `X-StripFeed-Fetch-Ms` - Time to fetch the URL (0 if cached)
- `X-StripFeed-Format` - Output format used
## Batch fetch (Pro plan)
Fetch up to 10 URLs in a single request:
```bash
curl -s -X POST "https://www.stripfeed.dev/api/v1/batch" \
-H "Authorization: Bearer $STRIPFEED_API_KEY" \
-H "Content-Type: application/json" \
-d '{"urls": ["https://example.com", "https://example.org"]}'
```
URLs can also include selectors:
```json
{
"urls": [
{ "url": "https://example.com", "selector": "article" },
{ "url": "https://example.org" }
],
"model": "claude-sonnet-4-6"
}
```
Batch response:
```json
{
"results": [
{ "url": "...", "markdown": "...", "tokens": 1250, "status": 200 },
{ "url": "...", "error": "Failed to fetch", "status": 502 }
],
"total": 2,
"success": 1,
"failed": 1
}
```
Individual URL errors don't break the batch. Check each result's `status` field.
## Error handling
| Status | Meaning |
| ------ | ---------------------------------------- |
| 401 | Missing or invalid API key |
| 403 | Feature requires Pro plan |
| 422 | Invalid URL, format, or parameter |
| 429 | Rate limit or monthly quota exceeded |
| 502 | Target URL unreachable or returned error |
| 504 | Target URL timed out (9s limit) |
## Tips
- Default format is `markdown` which returns raw text. Use `format=json` when you need token counts and metadata in the response body.
- Responses are cached for 1 hour by default. Use `cache=false` for real-time content.
- The `max_tokens` parameter is useful to fit content within your context window budget.
- Use `selector` to grab only the main content (e.g. `selector=article` or `selector=.post-content`) and skip sidebars/footers.
- Free plan: 200 requests/month, markdown format only. Pro plan ($19/mo): 100K requests, all formats, selectors, batch endpoint.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!