Skills stripfeed

Fetch any URL as clean, AI-ready Markdown with token counts and caching. Strip ads, nav, scripts, and noise from web pages.

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/atlasopenclaw/stripfeed" ~/.claude/skills/clawdbot-skills-stripfeed && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/atlasopenclaw/stripfeed" ~/.openclaw/skills/clawdbot-skills-stripfeed && rm -rf "$T"
manifest: skills/atlasopenclaw/stripfeed/SKILL.md
source content

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

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

ParameterRequiredDescription
url
YesThe URL to fetch (must be http or https)
format
NoOutput format:
markdown
(default),
json
,
text
,
html
. Pro only except markdown.
selector
NoCSS selector to extract specific content (e.g.
article
,
.content
,
#main
). Pro only.
cache
NoSet to
false
to bypass cache and force a fresh fetch
ttl
NoCache TTL in seconds (default: 3600, max: 86400 for Pro)
max_tokens
NoTruncate output to fit within this token budget
model
NoAI 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
:

curl -s "https://www.stripfeed.dev/api/v1/fetch?url=URL_HERE&format=json" \
  -H "Authorization: Bearer $STRIPFEED_API_KEY"

JSON response includes:

{
  "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:

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:

{
  "urls": [
    { "url": "https://example.com", "selector": "article" },
    { "url": "https://example.org" }
  ],
  "model": "claude-sonnet-4-6"
}

Batch response:

{
  "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

StatusMeaning
401Missing or invalid API key
403Feature requires Pro plan
422Invalid URL, format, or parameter
429Rate limit or monthly quota exceeded
502Target URL unreachable or returned error
504Target 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.