Exa

Learn how to use Exa with Composio

Overview

SLUG: EXA

Description

Exa focuses on data extraction and search, helping teams gather, analyze, and visualize information from websites, APIs, or internal databases

Authentication Details

generic_api_key
stringRequired

Connecting to Exa

Create an auth config

Use the dashboard to create an auth config for the Exa toolkit. This allows you to connect multiple Exa accounts to Composio for agents to use.

1

Select App

Navigate to the Exa toolkit page and click “Setup Integration”.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Integration”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using API Key

1from composio import Composio
2
3# Replace these with your actual values
4exa_auth_config_id = "ac_YOUR_EXA_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/app
6
7composio = Composio()
8
9def authenticate_toolkit(user_id: str, auth_config_id: str):
10 # Replace this with a method to retrieve an API key from the user.
11 # Or supply your own.
12 user_api_key = input("[!] Enter API key")
13
14 connection_request = composio.connected_accounts.initiate(
15 user_id=user_id,
16 auth_config_id=auth_config_id,
17 config={"auth_scheme": "API_KEY", "val": user_api_key}
18 )
19
20 # API Key authentication is immediate - no redirect needed
21 print(f"Successfully connected Exa for user {user_id}")
22 print(f"Connection status: {connection_request.status}")
23
24 return connection_request.id
25
26
27connection_id = authenticate_toolkit(user_id, exa_auth_config_id)
28
29# You can verify the connection using:
30connected_account = composio.connected_accounts.get(connection_id)
31print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the Exa toolkit’s playground

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["EXA"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

Tool List

Tool Name: Generate an answer

Description

Generates a direct, citation-backed answer to a clear natural language question or topic using exa's search, adept at both specific answers and detailed summaries for open-ended queries.

Action Parameters

model
stringDefaults to exa
query
stringRequired
stream
boolean
text
boolean

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Import

Description

Tool to create a new import to upload data into a webset. use when you need to initialize an import before uploading the data file.

Action Parameters

count
integer
csv
object
entity
objectRequired
format
stringRequired
metadata
object
size
integer
title
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create a Monitor

Description

Tool to create a new monitor. use when you need to schedule automated updates for a webset without manual runs.

Action Parameters

behavior
objectRequired
cadence
objectRequired
metadata
object
websetId
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Create Webset

Description

Tool to create a new webset with search, import, and enrichment setup. use when you need to configure and seed a webset in one call.

Action Parameters

enrichments
array
externalId
string
import
array
metadata
object
search
objectRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete webset

Description

Tool to delete a webset. use after confirming the webset id to permanently remove the webset and all its items.

Action Parameters

id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Find similar

Description

Finds web pages semantically similar to a given url using embeddings-based search, optionally retrieving full text, highlights, or summaries for results.

Action Parameters

highlights
boolean
num_results
integerDefaults to 10
summary
boolean
text
boolean
url
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get contents from URLs or document IDs

Description

Retrieves configurable text and highlights from a list of exa document ids or publicly accessible urls.

Action Parameters

highlights
boolean
ids
arrayRequired
text
booleanDefaults to True

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List events

Description

Tool to list all events that have occurred in the system. use when you need to paginate through the event history.

Action Parameters

createdAfter
string
createdBefore
string
cursor
string
limit
integerDefaults to 25
types
array

Action Response

data
arrayRequired
error
string
hasMore
booleanRequired
nextCursor
string
successful
booleanRequired

Tool Name: List imports

Description

Tool to list all imports for the webset. use when you need to paginate through and monitor import jobs.

Action Parameters

cursor
string
limit
integerDefaults to 25

Action Response

data
arrayRequired
error
string
hasMore
booleanRequired
nextCursor
string
successful
booleanRequired

Tool Name: Delete import

Description

Tool to delete an existing import. use when you need to permanently remove an import by its id.

Action Parameters

id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Event

Description

Tool to get details of a specific event by its id. use when you have an event id and need its full details.

Action Parameters

id
stringRequired

Action Response

data
objectRequired
error
string
id
stringRequired
object
stringRequired
successful
booleanRequired

Tool Name: List webhooks

Description

Tool to list all webhooks for websets. use when you need to view existing webhooks and paginate through results.

Action Parameters

cursor
string
limit
integerDefaults to 25

Action Response

data
arrayRequired
error
string
hasMore
booleanRequired
nextCursor
string
successful
booleanRequired

Tool Name: Update import

Description

Tool to update an import configuration by id. use when you need to modify an import's title or metadata.

Action Parameters

id
stringRequired
metadata
object
title
string

Action Response

data
objectRequired
error
string
successful
booleanRequired