Neural web search and content extraction using x402-protected APIs. Better than WebSearch for deep research and WebFetch for blocked sites. USE FOR: - Deep web research and investigation - Finding similar pages to a reference URL - Extracting clean text from web pages - Scraping sites that block standard fetchers - Getting direct answers to factual questions - Research requiring multiple sources - Crawling multiple pages from a website TRIGGERS: - "research", "investigate", "deep dive", "find sources" - "similar to", "pages like", "more like this" - "scrape", "extract content from", "get the text from" - "blocked site", "can't access", "paywall" - "what is", "explain", "answer this" - "crawl", "crawl site", "scrape entire site" Use agentcash.fetch for stableenrich.dev endpoints. Prefer Exa for semantic/neural search, Firecrawl for direct scraping.
68
85%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
Access Exa (neural search) and Firecrawl (web scraping) through x402-protected endpoints.
See rules/getting-started.md for installation and wallet setup.
| Task | Endpoint | Price | Best For |
|---|---|---|---|
| Neural search | https://stableenrich.dev/api/exa/search | $0.01 | Semantic web search |
| Find similar | https://stableenrich.dev/api/exa/find-similar | $0.01 | Pages similar to a URL |
| Extract text | https://stableenrich.dev/api/exa/contents | $0.002 | Clean text from URLs |
| Direct answers | https://stableenrich.dev/api/exa/answer | $0.01 | Factual Q&A |
| Scrape page | https://stableenrich.dev/api/firecrawl/scrape | $0.0126 | Single page to markdown |
| Web search | https://stableenrich.dev/api/firecrawl/search | $0.0252 | Search with content snippets |
| Crawl website | https://stableenrich.dev/api/cloudflare/crawl | $0.10 | Multi-page site crawl |
| Poll crawl | GET https://stableenrich.dev/api/cloudflare/jobs?token=... | Free | Poll crawl results |
| Scenario | Tool |
|---|---|
| General web search | WebSearch (free) or Exa ($0.01) |
| Semantic/conceptual search | Exa search |
| Find pages like X | Exa find-similar |
| Get clean text from URL | Exa contents |
| Scrape blocked/JS-heavy site | Firecrawl scrape |
| Search + content snippets | Firecrawl search |
| Quick fact lookup | Exa answer |
| Crawl entire site/section | Cloudflare crawl |
See rules/when-to-use.md for detailed guidance.
Semantic search that understands meaning, not just keywords:
agentcash.fetch(
url="https://stableenrich.dev/api/exa/search",
method="POST",
body={
"query": "startups building AI agents for customer support",
"numResults": 10
}
)Options:
query - Search query (required)numResults - Number of results (default: 5, max: 100)type - Search mode/latency strategy ("auto", "fast", "deep"). Do not put content verticals here — use categoryincludeDomains - Only search these domains (full hostnames; some domains like reddit.com, x.com, nytimes.com are blocked and return 400)excludeDomains - Skip these domains (same blocked-domain restriction applies)startPublishedDate / endPublishedDate - Date range filtercategory - Filter by content type: "company", "people", "research paper", "news", "pdf", "personal site", "financial report" (other strings are used as category hints)category: "people" for people/profile discoveryReturns: List of URLs with titles, snippets, and relevance scores.
Find pages semantically similar to a reference URL:
agentcash.fetch(
url="https://stableenrich.dev/api/exa/find-similar",
method="POST",
body={
"url": "https://example.com/article-i-like",
"numResults": 10
}
)Great for:
Get clean, structured text from URLs:
agentcash.fetch(
url="https://stableenrich.dev/api/exa/contents",
method="POST",
body={
"urls": [
"https://example.com/article1",
"https://example.com/article2"
]
}
)Options:
urls - Array of URLs to extracttext - Include full text (default: true)highlights - Include key highlightsCheapest option ($0.002) when you already have URLs and just need the content.
Get factual answers to questions:
agentcash.fetch(
url="https://stableenrich.dev/api/exa/answer",
method="POST",
body={
"query": "What is the population of Tokyo?"
}
)Returns a direct answer with source citations. Best for:
Scrape a single page to clean markdown:
agentcash.fetch(
url="https://stableenrich.dev/api/firecrawl/scrape",
method="POST",
body={
"url": "https://example.com/page-to-scrape"
}
)Options:
url - Page to scrape (required, the only parameter)Returns: url (final URL after redirects), title, and content (page as markdown).
Advantages over WebFetch:
Web search with automatic scraping of results:
agentcash.fetch(
url="https://stableenrich.dev/api/firecrawl/search",
method="POST",
body={
"query": "best practices for react server components",
"limit": 5
}
)Options:
query - Search query (required)limit - Number of results (default: 5, max: 10)Returns results with title, URL, description, and a content snippet (first ~500 chars of markdown) for each.
Crawl multiple pages from a website with browser rendering. Async two-step pattern.
Step 1: Start the crawl (paid, $0.10)
agentcash.fetch(
url="https://stableenrich.dev/api/cloudflare/crawl",
method="POST",
body={
"url": "https://example.com",
"limit": 10,
"depth": 1,
"formats": ["markdown"]
}
)Returns 202 with {"token": "jwt..."}.
Step 2: Poll for results (SIWX, free)
agentcash.fetch(
url="https://stableenrich.dev/api/cloudflare/jobs?token=JWT_TOKEN",
method="GET"
)Poll every 3-5 seconds until complete.
Parameters:
url (required) — starting URLlimit (default 10, max 25) — max pagesdepth (default 1, max 3) — max link depthformats — ["markdown", "html", "json"]render (default false) — execute JavaScriptsource — URL discovery source: "all", "sitemaps", or "links"options.includePatterns / excludePatterns — URL wildcards (exclude wins); options.includeExternalLinks / includeSubdomains — scope flagsGood for: crawling docs sites, scraping multiple pages, building sitemaps.
agentcash.get_balanceagentcash.fetch(
url="https://stableenrich.dev/api/exa/search",
method="POST",
body={"query": "AI agents in healthcare 2024", "numResults": 15}
)agentcash.fetch(
url="https://stableenrich.dev/api/exa/find-similar",
method="POST",
body={"url": "https://best-article-found.com"}
)agentcash.fetch(
url="https://stableenrich.dev/api/exa/contents",
method="POST",
body={"urls": ["url1", "url2", "url3"]}
)agentcash.fetch(
url="https://stableenrich.dev/api/firecrawl/scrape",
method="POST",
body={"url": "https://blocked-site.com/article"}
)Independent searches can run in parallel:
# These don't depend on each other
agentcash.fetch(url=".../exa/search", body={"query": "topic A"})
agentcash.fetch(url=".../exa/search", body={"query": "topic B"})522d5da
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.