Integrations / Exa
Exa
Neural web search with page contents, similar-page discovery and cited answers.
4 actions
API key
4 read0 write
Calls api.exa.ai
Connect
const conn = await setu.connections.initiate({ userId: "user_1", toolkit: "exa" });
console.log(conn.connectUrl); // show this to your user
await conn.waitUntilActive();Permissions requested
This toolkit uses a single credential and requests no scopes.
Actions
Get a cited answerreadexa.answerAsk a question and get an answer written from live web search, with the source citations.
| Input | Type | Description | |
|---|---|---|---|
query | string | Required | The question to answer |
text | boolean | Optional | Include the full text of cited pages |
model | string | Optional | Answer model |
systemPrompt | string | Optional | Extra instructions for the answer |
await setu.execute({
userId: "user_1",
action: "exa.answer",
input: {
"query": "<query>"
},
});Find similar pagesreadexa.find_similarFind web pages similar to a given URL, optionally excluding the source domain or limiting to certain domains.
| Input | Type | Description | |
|---|---|---|---|
url | string | Required | The URL to find similar pages for |
numResults | integer | Optional | Number of results, up to 100 (default 10) |
includeDomains | array of string | Optional | Only return results from these domains |
excludeDomains | array of string | Optional | Never return these domains |
excludeSourceDomain | boolean | Optional | Exclude results from the same domain as the url |
contents | object | Optional | Options for page contents, e.g. {"highlights": true} |
await setu.execute({
userId: "user_1",
action: "exa.find_similar",
input: {
"url": "<url>"
},
});Get page contentsreadexa.get_contentsFetch the text, highlights or summary of specific pages by URL (or Exa document id), up to 100 at a time.
| Input | Type | Description | |
|---|---|---|---|
urls | array of string | Required | URLs to fetch, 1 to 100 |
text | boolean | Optional | Return the full page text |
highlights | boolean | Optional | Return relevant highlight snippets |
maxAgeHours | integer | Optional | Maximum cache age in hours; 0 always fetches fresh, -1 always uses cache |
await setu.execute({
userId: "user_1",
action: "exa.get_contents",
input: {
"urls": []
},
});Search the webreadexa.searchSearch the web with Exa and get ranked results with titles, URLs and optional page text or highlights.
| Input | Type | Description | |
|---|---|---|---|
query | string | Required | The search query |
type | string | Optional | Search type (default auto) |
numResults | integer | Optional | Number of results, 1 to 100 (default 10) |
category | string | Optional | Focus on a category |
includeDomains | array of string | Optional | Only return results from these domains |
excludeDomains | array of string | Optional | Never return these domains |
startPublishedDate | string | Optional | Only results published after this ISO 8601 date-time |
endPublishedDate | string | Optional | Only results published before this ISO 8601 date-time |
contents | object | Optional | Options for page contents, e.g. {"highlights": true} or {"text": true} |
await setu.execute({
userId: "user_1",
action: "exa.search",
input: {
"query": "<query>"
},
});