| name | exa-contents |
| version | 0.1.0 |
| description | Call Exa Contents (POST /contents) for LLM-ready extraction from known URLs: text, highlights, summaries, links, image links, subpages, freshness-controlled crawl. Use when the agent already has URLs. Prefer Exa MCP web_fetch_exa when available; otherwise raw HTTP with EXA_API_KEY. NOT for open-ended discovery (use exa-search) or auth-walled X/Twitter (use mktg-x). For full-site crawl of a known domain, firecrawl may be better.
|
| allowed-tools | ["Bash","Read","Write","Skill"] |
| author | Exa Labs (ported by mktg) |
| license | MIT |
| user-invocable | true |
| metadata | {"openclaw":{"emoji":"📄"}} |
On Activation
- Read
brand/competitors.md / brand/landscape.md if present for URL shortlists. Optional.
- Confirm Exa auth (MCP or
EXA_API_KEY) via mktg doctor if unsure.
- Prefer MCP
web_fetch_exa when available; otherwise use the cURL examples below.
- If the page is auth-walled (X/Twitter login stub), route to
mktg-x instead.
Exa Contents
Requires API key: Get one at https://dashboard.exa.ai/api-keys
Header: x-api-key: $EXA_API_KEY
Use POST https://api.exa.ai/contents when the agent already knows the URLs and needs clean, LLM-ready extraction without running a new search. Start with one content mode: highlights for compact agent context, text for broad page context, or summary for Exa-side compression.
Quick Start (cURL)
Basic text extraction
curl -sS -X POST "https://api.exa.ai/contents" \
-H "Content-Type: application/json" \
-H "x-api-key: $EXA_API_KEY" \
-d '{
"urls": ["https://example.com"],
"text": true
}'
Highlights with freshness control
curl -sS -X POST "https://api.exa.ai/contents" \
-H "Content-Type: application/json" \
-H "x-api-key: $EXA_API_KEY" \
-d '{
"urls": ["https://arxiv.org/abs/2307.06435"],
"highlights": {
"query": "methodology and results"
},
"maxAgeHours": 24,
"livecrawlTimeout": 12000
}'
Endpoint
POST https://api.exa.ai/contents
Authentication: x-api-key: <API_KEY> header. Exa also accepts Authorization: Bearer <API_KEY>, but prefer x-api-key in cURL examples for consistency.
Use this endpoint for known-URL extraction. If the agent needs discovery or ranking first, use POST /search.
Parameters