Exa ACTION
Get Contents
Retrieve clean text, highlights, summaries, and metadata for specific URLs or Exa document IDs. Highlights are the recommended default extraction mode for most workflows. 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 Get Contents 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-get-contents",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
exa: { authProvisionId: "apn_xxxxxxx" },
urls: ["URLs"],
ids: ["IDs"],
},
})
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-get-contents",
"configured_props": {
"exa": { "authProvisionId": "apn_xxxxxxx" },
"urls": ["URLs"],
"ids": ["IDs"]
}
}'// 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-get-contents",
arguments: {
urls: ["URLs"],
ids: ["IDs"],
},
})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 |
|---|---|---|
urls URLs | string[] | List of URLs to retrieve contents for Optional |
ids IDs | string[] | List of Exa document IDs from previous Exa responses Optional |
text Text | boolean | Return full page text. Prefer Highlights when you only need targeted excerpts. Optional |
textMaxCharacters Text Max Characters | integer | Optional cap on returned text length. Optional |
textIncludeHtmlTags Text Include HTML Tags | boolean | Whether to preserve HTML tags in extracted text. Optional |
textVerbosity Text Verbosity | string | Level of detail for extracted text. Exa recommends using Max Age Hours of 0 when you need filtered live text. Optional |
textIncludeSections Text Include Sections | string[] | Only include these page sections. Most reliable with Max Age Hours set to 0. Optional |
textExcludeSections Text Exclude Sections | string[] | Exclude these page sections. Most reliable with Max Age Hours set to 0. Optional |
highlights Highlights | boolean | Return token-efficient highlights. This is the recommended default extraction mode for most Exa workflows. Optional |
highlightsQuery Highlights Query | string | Optional query to guide which highlights Exa should return. Optional |
highlightsMaxCharacters Highlights Max Characters | integer | Optional cap on highlight characters per URL. Leave unset for Exa's highest-quality default. Optional |
summary Summary | boolean | Return Exa-generated summaries. Prefer Highlights unless you explicitly need Exa-side synthesis. Optional |
summaryQuery Summary Query | string | Optional instructions that guide Exa's generated summary. Prefer Highlights unless you explicitly need Exa-side synthesis. Optional |
summarySchema Summary Schema | object | Optional JSON schema for structured Exa-side summaries. Example: {"type":"object","properties":{"summary_title":{"type":"string"},"summary_text":{"type":"string"},"metadata":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string"}}}}},"required":["summary_title","summary_text"]}. Optional |
maxAgeHours 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 |
livecrawlTimeout Live Crawl Timeout | integer | Timeout in milliseconds for live crawling (default: 10000) Optional |
subpages Subpages | integer | Number of subpages to crawl per result Optional |
subpageTarget Subpage Target | string | Keyword or phrase Exa should prioritize when choosing which subpages to crawl Optional |
extrasLinks Extras Links | integer | Number of URLs to return from each webpage. Optional |
extrasImageLinks Extras Image Links | integer | Number of images to return for each result. Optional |
context Legacy Context | boolean | Hidden legacy prop preserved for saved workflows. It is forwarded verbatim so saved workflows can keep using Exa's deprecated combined context string. Optional |
highlightsNumSentences Legacy Highlights Num Sentences | integer | Hidden legacy prop preserved for saved workflows. Enables modern highlights mode without forwarding deprecated fields. Optional |
highlightsPerUrl Legacy Highlights Per URL | integer | Hidden legacy prop preserved for saved workflows. Enables modern highlights mode without forwarding deprecated fields. Optional |
livecrawl Legacy Live Crawl | string | Hidden legacy prop preserved for saved workflows. Translates to modern freshness settings where possible. 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-get-contents
- Version
- 0.1.1
- App
- Exa
- Authentication
- API key
- Read-only
- Yes
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗