Extract content from URLs via Exa at $0.002/request — cheap bulk scraping via micropayment
What it does
The Exa Contents endpoint (`POST /api/exa/contents`) on StableEnrich extracts page content from one or more URLs. It is part of the StableEnrich platform, which provides pay-per-request access to multiple research APIs (Apollo, Exa, Firecrawl, Google Maps, Serper, Whitepages, and others) without subscriptions or API keys. Payment serves as authentication, settled via micropayment on Base mainnet (USDC), Solana, or Tempo.
This endpoint accepts a JSON body with a required `urls` array and optional content-shaping parameters: `text` (boolean or object with `maxCharacters`/`includeHtmlTags`), `highlights`, `summary`, `livecrawl` (never/fallback/always/preferred), `subpages`, `subpageTarget`, and `extras` (links, imageLinks). The response returns an array of result objects containing title, URL, published date, author, extracted text, highlights, summaries, and per-URL status codes. At $0.002 per request it is the cheapest content extraction option on StableEnrich — roughly 6× cheaper than Firecrawl Scrape ($0.0126). It supports livecrawl modes for fresh content and can extract subpages in a single call.
The endpoint is a POST-only route. Both x402 and MPP (Tempo method, charge intent) payment protocols are supported. Full OpenAPI 3.1 schemas for request and response are published. The endpoint is part of a broader suite documented at stableenrich.dev with detailed guidance for agent workflows.
Capabilities
Use cases
- —Extracting article text from a list of URLs for summarization or analysis
- —Bulk content retrieval for research pipelines at low per-request cost
- —Feeding page content into LLM context when direct fetch returns JS-only or 403 responses
- —Gathering highlights and summaries from multiple web pages in a single call
- —Crawling subpages of a target URL to build a knowledge base
Fit
Best for
- —Agents needing cheap bulk URL content extraction ($0.002/call)
- —Research workflows that already use Exa Search and want to fetch full content for result URLs
- —Replacing blocked or JS-rendered page fetches with a reliable extraction backend
- —Pay-per-use content scraping without API key management
Not for
- —Full-site crawling with JS rendering (use Cloudflare Crawl or Firecrawl instead)
- —Semantic web search (use Exa Search endpoint instead)
- —Real-time streaming content extraction
Quick start
POST https://stableenrich.dev/api/exa/contents
Content-Type: application/json
{"urls": ["https://example.com"]}Example
Request
{
"text": true,
"urls": [
"https://example.com",
"https://openai.com"
],
"livecrawl": "fallback"
}Response
{
"results": [
{
"id": "ex1",
"url": "https://example.com",
"text": "This domain is for use in illustrative examples...",
"score": null,
"title": "Example Domain",
"author": null,
"publishedDate": null
},
{
"id": "ex2",
"url": "https://openai.com",
"text": "OpenAI is an AI research and deployment company...",
"score": null,
"title": "OpenAI",
"author": null,
"publishedDate": "2024-01-15"
}
],
"statuses": [
{
"id": "ex1",
"error": null,
"status": "success"
},
{
"id": "ex2",
"error": null,
"status": "success"
}
],
"requestId": "abc123",
"costDollars": {
"total": 0.004
}
}Endpoint
Quality
Full OpenAPI 3.1 schema with request/response types, clear pricing ($0.002/request), detailed guidance docs, and multiple payment protocols documented. The probe returned 405 (POST-only route probed with HEAD/GET) which is expected behavior, not a liveness failure. No actual 402 challenge was captured for this specific endpoint, slightly reducing confidence in live status.
Warnings
- —Probe returned 405 on HEAD and GET — endpoint is POST-only; no direct 402 challenge was captured for this specific path
- —Response examples are inferred from schema, not from an actual API call
Citations
- —Exa Contents endpoint costs $0.002 per requesthttps://stableenrich.dev
- —Endpoint accepts urls array with optional text, highlights, summary, livecrawl, subpages, and extras parametershttps://stableenrich.dev/docs
- —Supports both x402 and MPP (Tempo method, charge intent) payment protocolshttps://stableenrich.dev
- —Exa Contents is a cheaper alternative to Firecrawl Scrape ($0.0126/request) for bulk URL processinghttps://stableenrich.dev