Installs into .claude/skills of the current project.
Are you the author of Exa Search?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/superagnt-exa-search)
---
name: exa-search
description: "Neural web search, parsed page contents, find-similar, and agentic Q&A over the live web through the superagnt unified API."
version: 2.0.2
author: superagnt
license: MIT-0
platforms: [macos, linux, windows]
required_environment_variables:
- SUPERAGNT_API_KEY
metadata:
hermes:
tags: [exa, integration, api, ai-agent]
openclaw:
requires:
env:
- SUPERAGNT_API_KEY
bins:
- curl
primaryEnv: SUPERAGNT_API_KEY
emoji: "π"
homepage: https://superagnt.com/r/ch-exa-search-docs
---
# Exa Integration
The Exa integration connects your Exa AI account to superagnt so AI agents and automations can query the live web with neural + keyword search, pull parsed page content (text, highlights, summaries), discover semantically similar URLs, and run agentic Q&A with cited sources. Supports the full set of Exa endpoints β /search, /contents, /findSimilar, and /answer β proxied through your superagnt API key.
## Alternative install: the MCP server
If this client speaks MCP, you can connect the workspace server instead of
using this skill's curl calls β after the user connects their
Exa account in the dashboard, the same endpoints below are exposed
as native MCP tools:
```
https://mcp.superagnt.com/mcp
```
The URL publishes full OAuth discovery β an MCP-capable client needs the URL
and nothing else (approve once in the browser). Per-client setup lines:
https://mcp.superagnt.com/agent-setup/prompt.md
Everything below works on curl-only environments with just the API key.
## Capabilities and safety
This skill documents the Exa API surface the user's connected
account can reach β which can include destructive operations (updates,
deletes) and, where the vendor supports them, actions performed as the user
(sending messages, modifying records, changing settings). Two hard rules:
- **Confirm before destructive or outbound actions.** Never delete, overwrite,
or send on the user's behalf without their explicit confirmation in the
conversation.
- **Stay inside the user's request.** Use only the endpoints the task needs;
this skill grants no access beyond the Exa connection the user
set up themselves.
## Prerequisites
1. An API key β get one from the [dashboard](https://superagnt.com/r/ch-exa-search-key) and export it as
`SUPERAGNT_API_KEY`.
2. A connected Exa account β connect it in the
[connections dashboard](https://app.superagnt.com/dashboard/connections). Calls fail with a clear error
until the vendor is connected; that error is the signal to send the user to
the connections page, not a bug.
Note: `/v1/connections/*` calls run on the USER'S Exa credentials β
vendor-side rate limits and billing are theirs, not platform credits.
## Authentication
```
Authorization: Bearer $SUPERAGNT_API_KEY
```
If the variable is not set, ask the user for their key or point them at
https://superagnt.com/r/ch-exa-search-key.
## Verify the install (do this first)
```bash
curl -s https://api.superagnt.com/v1/credits \
-H 'Authorization: Bearer $SUPERAGNT_API_KEY'
```
A JSON result proves the key end to end. 401 = bad key; an error naming the
connection means the Exa account is not connected yet.
## Base URL
```
https://api.superagnt.com/v1/connections/exa
```
## Available Endpoints
| Method | Path | Summary |
|--------|------|---------|
| `POST` | `/search` | Search |
| `POST` | `/contents` | Get contents |
| `POST` | `/findSimilar` | Find similar links |
| `POST` | `/answer` | Generate an answer from search results |
## Tool Schemas
The following JSON defines every operation with its parameters. Each tool maps
to an API endpoint under the base URL.
```json
[
{
"name": "superagnt_connection_exa_search",
"description": "Search",
"method": "POST",
"path": "/search",
"parameters": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "The query string for the search."
},
"additionalQueries": {
"type": "array",
"description": "Additional query variations for deep-search variants. Used alongside the main query for more comprehensive results."
},
"stream": {
"type": "boolean",
"description": "If true, the response is returned as an SSE stream of OpenAI-compatible chat completion chunks."
},
"outputSchema": {
"type": "object",
"description": "JSON schema for synthesized output. When provided, the response includes an output object and output.content matches this schema."
},
"systemPrompt": {
"type": "string",
"description": "Instructions that guide synthesized output and, for deep-search variants, search planning."
},
"type": {
"type": "string",
"description": "Search strategy. `auto` intelligently combines neural and other search methods; `fast` uses streamlined models; `deep-lite` / `deep` / `deep-reasoning` are synthesized-output modes; `instant` is the lowest-latency mode."
},
"category": {
"type": "string",
"description": "A data category to focus on. `people` and `company` support a limited filter set β `startPublishedDate`, `endPublishedDate`, `startCrawlDate`, `endCrawlDate`, and `excludeDomains` are not allowed; `includeDomains` for `people` only accepts LinkedIn domains."
},
"userLocation": {
"type": "string",
"description": "Two-letter ISO country code of the user (e.g. `US`)."
},
"numResults": {
"type": "integer",
"description": "Number of results to return. Max 100 for `neural` and deep-search variants."
},
"includeDomains": {
"type": "array",
"description": "Restrict results to these domains."
},
"excludeDomains": {
"type": "array",
"description": "Exclude these domains from results."
},
"startCrawlDate": {
"type": "string",
"description": "Only include links crawled after this ISO 8601 date."
},
"endCrawlDate": {
"type": "string",
"description": "Only include links crawled before this ISO 8601 date."
},
"startPublishedDate": {
"type": "string",
"description": "Only include links with a published date after this ISO 8601 date."
},
"endPublishedDate": {
"type": "string",
"description": "Only include links with a published date before this ISO 8601 date."
},
"moderation": {
"type": "boolean",
"description": "Enable content moderation to filter unsafe content from results."
},
"contents": {
"type": "object",
"description": "Content enrichment options returned alongside search results. See /contents for the full schema."
}
},
"required": [
"query"
]
}
},
{
"name": "superagnt_connection_exa_getContents",
"description": "Get contents",
"method": "POST",
"path": "/contents",
"parameters": {
"type": "object",
"properties": {
"urls": {
"type": "array",
"description": "URLs to crawl (backwards compatible with `ids`)."
},
"ids": {
"type": "array",
"description": "Document IDs obtained from previous searches."
},
"text": {
"type": "string",
"description": "Boolean or advanced text options object. Object form supports `maxCharacters`, `includeHtmlTags`, `verbosity` (`compact` | `standard` | `full`), `includeSections`, `excludeSections` (header | navigation | banner | body | sidebar | footer | metadata)."
},
"highlights": {
"type": "string",
"description": "Boolean or advanced highlights object. Object form supports `maxCharacters`, `query`."
},
"summary": {
"type": "object",
"description": "LLM-generated summary options."
},
"livecrawl": {
"type": "string",
"description": "Deprecated β use `maxAgeHours`."
},
"livecrawlTimeout": {
"type": "integer",
"description": "livecrawlTimeout"
},
"maxAgeHours": {
"type": "integer",
"description": "Max age of cached content in hours. Positive = livecrawl if older, 0 = always livecrawl, -1 = never livecrawl."
},
"subpages": {
"type": "integer",
"description": "subpages"
},
"subpageTarget": {
"type": "string",
"description": "String or array of strings."
},
"extras": {
"type": "object",
"description": "extras"
}
},
"required": [
"urls"
]
}
},
{
"name": "superagnt_connection_exa_findSimilar",
"description": "Find similar links",
"method": "POST",
"path": "/findSimilar",
"parameters": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The URL to find similar links for."
},
"numResults": {
"type": "integer",
"description": "numResults"
},
"includeDomains": {
"type": "array",
"description": "includeDomains"
},
"excludeDomains": {
"type": "array",
"description": "excludeDomains"
},
"startCrawlDate": {
"type": "string",
"description": "startCrawlDate"
},
"endCrawlDate": {
"type": "string",
"description": "endCrawlDate"
},
"startPublishedDate": {
"type": "string",
"description": "startPublishedDate"
},
"endPublishedDate": {
"type": "string",
"description": "endPublishedDate"
},
"moderation": {
"type": "boolean",
"description": "moderation"
},
"contents": {
"type": "object",
"description": "Content enrichment options. Same shape as in /search and /contents."
}
},
"required": [
"url"
]
}
},
{
"name": "superagnt_connection_exa_answer",
"description": "Generate an answer from search results",
"method": "POST",
"path": "/answer",
"parameters": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "The question or query to answer."
},
"stream": {
"type": "boolean",
"description": "If true, returns an SSE stream."
},
"text": {
"type": "boolean",
"description": "If true, citations include full text content of each source."
},
"outputSchema": {
"type": "object",
"description": "JSON Schema Draft 7 for structured answers."
}
},
"required": [
"query"
]
}
}
]
```
## Example
```bash
curl -X POST 'https://api.superagnt.com/v1/connections/exa/search' \
-H 'Authorization: Bearer $SUPERAGNT_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"query":"latest developments in LLMs","numResults":10}'
```
## Use Cases
- Give agents real-time web knowledge beyond their training cutoff
- Research a company, competitor, or topic with cited sources and summaries
- Build retrieval-augmented generation pipelines grounded in the live web
- Pull clean page text for summarization, extraction, or ingest into a vector store
- Monitor news and blog posts filtered to trusted domains and date ranges
- Run agentic Q&A that returns answers plus the sources Exa used
## Links
- [Documentation](https://superagnt.com/r/ch-exa-search-docs)
- [Dashboard / API keys](https://superagnt.com/r/ch-exa-search-key)
- [Connections dashboard](https://app.superagnt.com/dashboard/connections)
- [This listing](https://clawhub.ai/superagnt/skills/exa-search)