Exa
Search the web, find similar pages, and get page contents with Exa's neural search.
On this page
Connect
Auth type: API key (secret_text). Paste the API key (or token) from the provider's settings into the connect dialog. It is encrypted at rest and only decrypted on the server when an action runs.
- In the editor: Backend panel, Integrations tab, then Connect. This connects it for the project.
- For every project in a workspace: Workspace settings, Integrations.
- Owners and admins choose which integrations members may connect in the admin panel (Integrations tab), and can attach their own OAuth app there.
Call it from a workflow
Pass the action name and its input. The call resolves with { success, output, error? }; a missing connection resolves with success false and the reason. See ctx.integrations.invoke and ctx.integrations.call.
// .workflow.js (native ctx)
export async function run(ctx) {
const res = await ctx.integrations.invoke("exa", "find_similar_links", {
"url": "<url>"
});
if (!res.success) throw new Error(res.error);
ctx.log.info("Exa answered", { output: res.output });
}// defineWorkflow module (@app/sdk ctx)
import { defineWorkflow } from "@app/sdk";
export default defineWorkflow({
id: "exa-find-similar-links",
name: "Exa: Find Similar Links",
description: "Calls Exa when a row is created.",
trigger: { type: "entity_event", entity: "tickets", event: "created" },
async run(ctx, event) {
const res = await ctx.integrations.call("exa", {
"action": "find_similar_links",
"url": "<url>"
}) as { success: boolean; error?: string };
if (!res.success) throw new Error(res.error);
},
});curl -X POST "$APP_ORIGIN/__appbricx/connector-proxy/exa/find_similar_links" \
-H "Authorization: Bearer $APP_KEY" \
-H "content-type: application/json" \
-d '{"props":{"url":"<url>"}}'Actions
find_similar_linksin catalog
Find Similar Links. Find pages similar to a given URL.
| Input | Type | Description |
|---|---|---|
urlrequired | text | Reference URL to find semantically similar links. |
numResultsoptional | number | Number of results to return (max 100). |
includeDomainsoptional | array | List of domains to include in results. |
excludeDomainsoptional | array | List of domains to exclude from results. |
startCrawlDateoptional | date-time (ISO) | Include links crawled after this date (ISO format). |
endCrawlDateoptional | date-time (ISO) | Include links crawled before this date (ISO format). |
startPublishedDateoptional | date-time (ISO) | Only include links published after this date (ISO format). |
endPublishedDateoptional | date-time (ISO) | Only include links published before this date (ISO format). |
includeTextoptional | array | Strings that must be present in the webpage text (max 1 string of up to 5 words). |
excludeTextoptional | array | Strings that must not be present in the webpage text (max 1 string of up to 5 words). |
get_contentsin catalog
Get Contents. Retrieve clean HTML content from specified URLs.
| Input | Type | Description |
|---|---|---|
urlsrequired | array | Array of URLs to crawl |
textoptional | boolean | If true, returns full page text. If false, disables text return. |
livecrawloptional | one of "never" | "fallback" | "always" | "auto" | Options for livecrawling pages. |
livecrawlTimeoutoptional | number | Timeout for livecrawling in milliseconds. |
subpagesoptional | number | Number of subpages to crawl. |
subpageTargetoptional | text | Keyword(s) to find specific subpages. |
perform_searchin catalog
Perform Search. Search the web using semantic or keyword-based search.
Also accepted as search.
| Input | Type | Description |
|---|---|---|
queryrequired | text | Search query to find related articles and data. |
typeoptional | one of "auto" | "keyword" | "neural" | Type of search to perform. |
categoryoptional | one of "company" | "research paper" | "news" | "pdf" | "github" | "tweet" | "personal site" | "linkedin profile" | "financial report" | Category of data to focus the search on. |
numResultsoptional | number | Number of results to return (max 100). |
includeDomainsoptional | array | Limit results to only these domains. |
excludeDomainsoptional | array | Exclude results from these domains. |
startCrawlDateoptional | date-time (ISO) | Only include results crawled after this ISO date. |
endCrawlDateoptional | date-time (ISO) | Only include results crawled before this ISO date. |
startPublishedDateoptional | date-time (ISO) | Only include results published after this ISO date. |
endPublishedDateoptional | date-time (ISO) | Only include results published before this ISO date. |
includeTextoptional | array | Strings that must be present in the text of results. |
excludeTextoptional | array | Strings that must not be present in the text of results. |
custom_api_call
Custom API Call. Make a custom API call to a specific endpoint
| Input | Type | Description |
|---|---|---|
urlrequired | object (depends on other props) | url |
methodrequired | one of "GET" | "POST" | "PATCH" | "PUT" | "DELETE" | "HEAD" | Method |
headersrequired | object | Authorization headers are injected automatically from your connection. |
queryParamsrequired | object | Query Parameters |
body_typeoptional | one of "none" | "json" | "form_data" | "raw" | Body Type |
bodyoptional | object (depends on other props) | Body |
response_is_binaryoptional | boolean | Enable for files like PDFs, images, etc. |
failsafeoptional | boolean | No Error on Failure |
timeoutoptional | number | Timeout (in seconds) |
followRedirectsoptional | boolean | Follow redirects |
generate_answer
Ask AI. Provides direct answers to queries by summarizing results.
| Input | Type | Description |
|---|---|---|
queryrequired | text | Ask a question to get summarized answers from the web. |
textoptional | boolean | If true, includes full text content from the search results |
modelrequired | one of "exa" | "exa-pro" | Choose the Exa model to use for the answer. |
Details
- Id
exa- Category
- AI and ML
- Tags
- search, neural-search, web, ai, discovery
- Package
@activepieces/piece-exa@0.1.5- Tier
- Community