---
name: web.surf.cascade.fyi
description: web.surf.cascade.fyi provides two complementary web intelligence skills: a search skill that queries the web via Exa and returns titles, URLs, and snippets, and a crawl skill that fetches specific URLs and returns their content as markdown, HTML, or plain text. Together they cover the discover-then-retrieve pattern common in research and data extraction workflows.
host: web.surf.cascade.fyi
---

# web.surf.cascade.fyi

This host serves agents that need to gather information from the open web, either by finding relevant pages through keyword search or by extracting readable content from known URLs. It is a lightweight, pay-per-request service using x402 micropayments on Solana mainnet. It does not offer recursive site crawling, link graph traversal, or JavaScript-heavy SPA rendering beyond standard page loading.

## When to use this host

Use this host when an agent needs to discover relevant web pages for a query (search-web-cascade) or extract readable content from known URLs (crawl-web-pages), or both in sequence. Do not use it for recursive domain crawling or full site mapping — it fetches only explicitly specified URLs. Do not use it for real-time data feeds, streaming content, or JavaScript-heavy SPAs that require a full browser runtime. If the agent already knows the target URLs and only needs content extraction, crawl-web-pages alone is sufficient; search-web-cascade is only needed when the URLs are unknown. Each search request costs $0.01 USDC on Solana mainnet, so agents should avoid redundant queries.

## Capabilities

### Web Discovery

Finds relevant pages on the open web for a given query, returning titles, URLs, and text snippets to identify what to read next.

- **`search-web-cascade`** — Searches the web via Exa and returns titles, URLs, and text snippets for a given query, paid per-request over x402.

### Page Content Extraction

Fetches one or more specific URLs and returns their content in a structured format (markdown, HTML, or plain text), with optional CSS selector filtering and proxy support.

- **`crawl-web-pages`** — Fetches one or more web pages and returns extracted content as markdown, HTML, or plain text, with optional CSS selector filtering and proxy support for blocked sites.

## Workflows

### Search and Retrieve

*Use when an agent needs to research a topic by first finding relevant pages and then extracting their full content for summarization or data extraction.*

1. **`search-web-cascade`** — Query the web for the topic to obtain a ranked list of relevant URLs and snippets.
2. **`crawl-web-pages`** — Fetch the full content of one or more URLs returned by the search step, extracting readable text for downstream processing.

## Skill reference

### `crawl-web-pages`

**Surf Crawl** — Fetches one or more web pages and returns extracted content as markdown, HTML, or plain text, with optional CSS selector filtering and proxy support for blocked sites.

*Use when:* Use when an agent needs to extract readable content from one or more URLs — for summarization, data extraction, or research — and requires the raw page text in a structured format.

*Not for:* Do not use for recursive site crawling or link discovery across an entire domain; this endpoint fetches specific URLs only. Not suitable for real-time streaming or JavaScript-heavy SPAs that require browser interaction beyond standard rendering.

**Inputs:**

- `url` (string) — Single URL to crawl. Use this for a single-page request; response will be a single object.
- `urls` (array) — Multiple URLs to crawl in one request. Response will be an array of result objects, one per URL.
- `format` (string) — Output format for extracted content. One of: markdown, html, text. Defaults to markdown.
- `selector` (string) — CSS selector to scope extraction to a specific element on the page.
- `proxy` (boolean) — Set to true to route the request through a proxy, useful for sites that block direct crawlers.

**Returns:** Returns a JSON array where each element contains status (HTTP code), content (array of extracted text blocks in the requested format), and url (final URL after redirects) for each requested URL.

**Example:** `{"urls": ["https://example.com/", "https://httpbin.org/anything"], "format": "markdown"}`

---

### `search-web-cascade`

**Cascade Web Search** — Searches the web via Exa and returns titles, URLs, and text snippets for a given query, paid per-request over x402.

*Use when:* Use when an agent needs current web search results — titles, URLs, and snippets — for a user query and can authorize a $0.01 USDC micropayment per search request on Solana mainnet.

*Not for:* Do not use for fetching or extracting the full content of a specific URL; use a crawl endpoint instead. Not suitable for streaming or real-time data feeds.

**Inputs:**

- `query` (string, required) — The search query string to send to the web search engine.
- `num_results` (integer) — Number of search results to return.

**Returns:** Returns a results array where each item contains a title, URL, and text snippet from a matching web page; 5 results returned for the test query.

**Example:** `{"query": "x402 protocol", "num_results": 5}`

---
