Exa ACTION
Search
auto is the recommended search type, and Highlights is the recommended default content mode. See the documentation- Action
- Read only
- API key
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Exa account once, then configure and run Search from your backend or agent.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "exa-search",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
exa: { authProvisionId: "apn_xxxxxxx" },
query: "Query",
type: "Search Type",
},
})
console.log(result)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "exa-search",
"configured_props": {
"exa": { "authProvisionId": "apn_xxxxxxx" },
"query": "Query",
"type": "Search Type"
}
}'// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "exa",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
name: "exa-search",
arguments: {
query: "Query",
type: "Search Type",
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
query Query | string | The search query string Required |
type Search Type | string | The type of search to perform. auto is recommended for most workflows. Optional |
category Category | string | A data category to focus on Optional |
numResults Number of Results | integer | Number of search results to return. Exa currently supports up to 100 results for supported search types. Optional |
includeDomains Include Domains | string[] | List of domains to include in the search results Optional |
excludeDomains Exclude Domains | string[] | List of domains to exclude from the search results Optional |
startCrawlDate Start Crawl Date | string | Results will only include links crawled after this date (ISO 8601 format). Example: 2025-01-01T00:00:00Z Optional |
endCrawlDate End Crawl Date | string | Results will only include links crawled before this date (ISO 8601 format). Example: 2025-01-01T00:00:00Z Optional |
startPublishedDate Start Published Date | string | Results will only include links published after this date (ISO 8601 format). Example: 2025-01-01T00:00:00Z Optional |
endPublishedDate End Published Date | string | Results will only include links published before this date (ISO 8601 format). Example: 2025-01-01T00:00:00Z Optional |
includeText Include Text | string[] | List of strings that must be present in the webpage text (max 5 words per string) Optional |
excludeText Exclude Text | string[] | List of strings that must not be present in the webpage text Optional |
moderation Include Moderation | boolean | Whether to filter unsafe content from results Optional |
systemPrompt System Prompt | string | Instructions that guide Exa's synthesized output and, for deep search types, search planning. Optional |
outputSchema Output Schema | object | JSON schema for structured output from Exa. Use this to shape synthesized search or answer output. Optional |
additionalQueries Additional Queries | string[] | Extra query variations for deep-lite, deep, or deep-reasoning search. Optional |
userLocation User Location | string | Two-letter ISO country code used to bias results toward a region, for example US. Optional |
contentsHighlights Contents - Highlights | boolean | Return token-efficient highlights from each result. This is the recommended default for most Search workflows. Optional |
contentsHighlightQuery Contents - Highlights Query | string | Optional query to guide which highlights Exa should return. Optional |
contentsHighlightMaxCharacters Contents - Highlights Max Characters | integer | Optional cap on highlight characters per URL. Leave unset for Exa's highest-quality default. Optional |
contentsText Contents - Text | boolean | Return full page text. Prefer Highlights when you want a smaller, more targeted context window. Optional |
contentsTextMaxCharacters Contents - Text Max Characters | integer | Optional cap on returned text length. Optional |
contentsTextIncludeHtmlTags Contents - Text Include HTML Tags | boolean | Whether to preserve HTML tags in extracted text. Optional |
contentsTextVerbosity Contents - Text Verbosity | string | Level of detail for extracted text. Exa recommends using Max Age Hours of 0 when you need filtered live text. Optional |
contentsTextIncludeSections Contents - Text Include Sections | string[] | Only include these page sections. Most reliable with Max Age Hours set to 0. Optional |
contentsTextExcludeSections Contents - Text Exclude Sections | string[] | Exclude these page sections. Most reliable with Max Age Hours set to 0. Optional |
contentsSummary Contents - Summary | boolean | Return Exa-generated summaries. Prefer Highlights unless you explicitly need Exa-side synthesis. Optional |
contentsSummaryQuery Contents - Summary Query | string | Optional instructions that guide Exa's generated summary Optional |
contentsSummarySchema Contents - Summary Schema | object | JSON schema for structured Exa summary output. See JSON Schema documentation for details. Example:
Optional |
contentsMaxAgeHours Contents - Max Age Hours | integer | Maximum acceptable age for cached content in hours. Use 0 to always live crawl, -1 for cache only, or leave unset for Exa's default behavior. Optional |
contentsLivecrawlTimeout Contents - Live Crawl Timeout | integer | Timeout in milliseconds for live crawling (default: 10000) Optional |
contentsSubpages Contents - Subpages | integer | Number of subpages to crawl per result Optional |
contentsSubpageTarget Contents - Subpage Target | string | Keyword or phrase Exa should prioritize when choosing which subpages to crawl Optional |
contentsExtrasLinks Contents - Extras Links | integer | Number of URLs to return from each webpage. Optional |
contentsExtrasImageLinks Contents - Extras Image Links | integer | Number of images to return for each result. Optional |
context Legacy Context | boolean | Hidden legacy prop preserved for saved workflows. When set, Search preserves Exa's deprecated top-level context output and also keeps the legacy highlights fallback. Optional |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- exa-search
- Version
- 0.1.1
- App
- Exa
- Authentication
- API key
- Read-only
- Yes
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗