npx skills add ...
npx skills add felo-inc/felo-skills --skill felo-web-fetch
Extract webpage content with Felo Web Extract API. Use for turning URLs into html/markdown/text, selecting specific page areas with CSS selectors, and controlling extraction options like crawl mode, cookies, user-agent, and timeout.
npx skills add felo-inc/felo-skills --skill felo-web-fetch
Trigger this skill when users want to extract or convert webpage content from a URL:
html, markdown, or textfast/fine)Trigger keywords (examples):
/felo-web-fetch, "use felo web fetch", "extract this URL with felo"Do NOT use this skill for:
felo-search)felo-slides)Linux/macOS:
Windows PowerShell:
Script (from repo):
Packaged CLI (after npm install -g felo-ai): same options, with short forms allowed:
Required parameter:
--urlCore optional parameters:
--output-format html|markdown|text--crawl-mode fast|fine--target-selector "article.main-content"--wait-for-selector ".content-ready"Other key optional parameters:
--cookie "session_id=xxx" (repeatable)--set-cookies-json '[{"name":"sid","value":"xxx","domain":"example.com"}]'--user-agent "Mozilla/5.0 ..."--timeout 60 (HTTP request timeout in seconds)--request-timeout-ms 15000 (API payload timeout in ms)--with-readability true--with-links-summary true--with-images-summary true--with-images-readability true--with-images true--with-links true--ignore-empty-text-image true--with-cache false--with-stypes true--json (print full JSON response)When the user wants a specific part of the page or a specific output format, phrase the command like this:
--output-format text, --output-format markdown, or --output-format html.#main" / "Fetch only article.main-content" → use --target-selector "article.main" or the selector they give.Examples:
POST /v2/web/extracthttps://openapi.felo.ai. Override with FELO_API_BASE env if needed.Authorization: Bearer YOUR_API_KEY| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| url | string | Yes | - | Webpage URL to fetch |
| crawl_mode | string | No | fast | fast or fine |
| output_format | string | No | html | html, text, markdown |
| with_readability | boolean | No | - | Use readability (main content) |
| with_links_summary | boolean | No | - | Include links summary |
| with_images_summary | boolean | No | - | Include images summary |
| target_selector | string | No | - | CSS selector for target element |
| wait_for_selector | string | No | - | Wait for selector before fetch |
| timeout | integer | No | - | Timeout in milliseconds |
| with_cache | boolean | No | true | Use cache |
| set_cookies | array | No | - | Cookie entries |
| user_agent | string | No | - | Custom user-agent |
Success (200):
Fetched content is in data.content; structure depends on output_format.
| HTTP | Code | Description |
|---|---|---|
| 400 | - | Parameter validation failed |
| 401 | INVALID_API_KEY | API key invalid or revoked |
| 500/502 | WEB_EXTRACT_FAILED | Fetch failed (server or page error) |
--json when user needs metadata and full response object.Error response format:
output_format: html, markdown, textcrawl_mode: fast, fine--target-selector when users only want a specific part of the page.--request-timeout-ms for page rendering/extraction wait, and --timeout for local HTTP timeout.--timeout.--with-cache false only when fresh content is required.felo web-fetch -u "https://example.com" [options]
# Short forms: -u (url), -f (format), -t (timeout, seconds), -j (json)# Basic: fetch as Markdown
node felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --output-format markdown
# Article-style with readability
node felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com/article" --with-readability true --output-format markdown
# Only the element matching a CSS selector
node felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --target-selector "article.main" --output-format markdown
# With cookies and custom user-agent
node felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com/private" --cookie "session_id=abc123" --with-readability true --json
# Full JSON response
node felo-web-fetch/scripts/run_web_fetch.mjs --url "https://example.com" --output-format text --jsoncurl -X POST "https://openapi.felo.ai/v2/web/extract" \
-H "Authorization: Bearer $FELO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com", "output_format": "markdown", "with_readability": true}'{
"code": 0,
"message": "success",
"data": {
"content": { ... }
}
}## Web Fetch Failed
- Message: <error message>
- Suggested Action: verify URL/parameters and retry