Felo API PlatformFelo API Platform

Configure Harness

Web Fetch API

Extract webpage content as HTML, text, or Markdown with selector and readability options.

POST/v2/web/extract

Authentication

Bearer API key

Content type

application/json

Rate notes

Endpoint-specific limits may apply.

The Web Fetch API extracts content from a target URL and returns the result in a format that is easier for agents, RAG systems, and content workflows to process. It can return HTML, plain text, or Markdown, and it supports selectors, readability options, cache control, custom user agents, and request cookies.

Endpoint

POST https://openapi.felo.ai/v2/web/extract

Authentication

Send your API key in the Authorization header:

Authorization: Bearer YOUR_API_KEY

See the Authentication Guide for details on creating and managing API keys.

Use with AI Agents

Install the complete felo-ai package when you want an Agent to extract webpages alongside every other available Felo Skill. The installer dynamically discovers every package directory containing SKILL.md, so it never relies on a fixed list. Install all discovered Skills in Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills, or Hermes Agent ~/.hermes/skills. Use the manual AI Agent setup guide for each platform's safe installation and API key steps.

Request

Headers

HeaderRequiredDescription
AuthorizationYesYour API key in the format Bearer YOUR_API_KEY
Content-TypeYesMust be application/json

Body Parameters

ParameterTypeRequiredDefaultDescription
urlstringYes-The webpage URL to extract.
crawl_modestringNofastExtraction mode. Use fast for a quicker fetch or fine for a more precise crawl that may handle richer pages.
output_formatstringNohtmlOutput format. Supported values: html, text, markdown.
with_readabilityboolean or stringNo-Enable readability processing to focus on main content and reduce page noise.
with_links_summarybooleanNo-Include a summary of links when supported by the downstream extractor.
with_images_summarybooleanNo-Include a summary of images when supported.
with_images_readabilitybooleanNo-Apply readability handling to image extraction when supported.
with_imagesbooleanNo-Include image information in the extracted result.
with_linksbooleanNo-Include link information in the extracted result.
ignore_empty_text_imagebooleanNo-Ignore images that do not contain useful text when supported.
target_selectorstringNo-CSS selector for the target element to extract, such as article.main-content.
wait_for_selectorstringNo-Wait until a CSS selector appears before extraction. Useful for dynamically rendered pages.
set_cookiesarrayNo-Cookies to send with the extraction request.
user_agentstringNo-Custom User-Agent string for the extraction request.
timeoutintegerNo-Request timeout in milliseconds.
with_cachebooleanNotrueWhether the downstream extractor may use cache.
with_stypesbooleanNofalseInclude style-type metadata when supported.

Response

Success Response

The response uses a transparent pass-through design. The exact fields inside data can vary based on output_format and other extraction options.

{
  "status": "ok",
  "message": null,
  "data": {
    "content": "# Example Article\n\nExtracted article content..."
  }
}

Response Fields

FieldTypeDescription
statusstringResponse status. Usually ok for a successful request.
messagestring or nullAdditional message. Usually null for successful requests.
dataobjectExtracted content and metadata returned by the downstream extraction service.
data.contentstring or objectExtracted content. The shape depends on output_format and selected options.

Error Responses

HTTP StatusError CodeDescriptionSuggested Action
400WEB_EXTRACT_FAILEDRequest validation failed, the URL is invalid, or the downstream extractor returned a client-side error.Check url, selectors, and request parameters.
401INVALID_API_KEYAPI key is missing, invalid, or revoked.Verify your API key and authorization header.
500WEB_EXTRACT_FAILEDInternal service error.Retry the request. Contact support if the issue persists.

Examples

Basic Extraction

curl -X POST https://openapi.felo.ai/v2/web/extract \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com"
  }'

Extract Markdown With Readability

curl -X POST https://openapi.felo.ai/v2/web/extract \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/article",
    "output_format": "markdown",
    "with_readability": true
  }'

Extract a Specific CSS Selector

curl -X POST https://openapi.felo.ai/v2/web/extract \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/article",
    "target_selector": "article.main-content",
    "output_format": "text"
  }'

Wait for Dynamic Content

curl -X POST https://openapi.felo.ai/v2/web/extract \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/app",
    "crawl_mode": "fine",
    "wait_for_selector": "#loaded-content",
    "output_format": "markdown",
    "timeout": 30000
  }'

Use Cases

  • Give an agent webpage context before answering a question.
  • Extract article text for RAG ingestion or knowledge-base creation.
  • Convert webpages into Markdown for archiving or documentation workflows.
  • Pull focused content from a page by using CSS selectors.
  • Reduce page noise with readability processing before downstream AI analysis.

Notes

  • The API handles one URL per request.
  • data is passed through from the downstream extraction service, so additional fields may appear over time.
  • fine mode may be slower than fast, but can be useful when the page needs richer rendering behavior.
  • Some pages may block extraction, require cookies, or need a custom user_agent.