# ExaApi
import StarterToolInfo from "@/app/_components/starter-tool-info";
import ToolInfo from "@/app/_components/tool-info";
import Badges from "@/app/_components/badges";
import TabbedCodeBlock from "@/app/_components/tabbed-code-block";
import TableOfContents from "@/app/_components/table-of-contents";
import ToolFooter from "@/app/_components/tool-footer";
import { Callout } from "nextra/components";
The ExaApi MCP Server offers a comprehensive suite of tools for conducting searches, managing websets, and handling research requests.
## Available Tools
If you need to perform an action that's not listed here, you can [get in touch
with us](mailto:contact@arcade.dev) to request a new tool, or [create your own
tools](/guides/create-tools/tool-basics/build-mcp-server).
## ExaApi.PerformExaSearch
Conduct a search using Exa and retrieve relevant results.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.FindSimilarLinks
Find similar links to a given link.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.GetContentDetails
Retrieve details about specific content.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.GenerateAnswerSummary
Retrieve direct answers or detailed summaries with citations.
**Parameters**
- **search_query** (`string`, required) The question or query to be answered or summarized.
- **enable_streaming_response** (`boolean`, optional) Return the response as a server-sent events (SSE) stream if set to true.
- **include_full_text** (`boolean`, optional) If true, the response includes full text content in the search results.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.ListResearchRequests
Retrieve a paginated list of research requests.
**Parameters**
- **pagination_cursor** (`string`, optional) A string representing the position in the paginated results to continue retrieving data from.
- **results_limit** (`number`, optional) Specifies the number of research requests to return in the response. Helps manage pagination effectively.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.CreateResearchRequest
Create a new research request.
**Parameters**
- **research_request_details** (`json`, required) JSON object containing details of the research request including parameters and criteria.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.GetResearchById
Retrieve research information using a specific ID.
**Parameters**
- **enable_streaming** (`string`, required) Set to 'true' to receive real-time streaming updates of the research information.
- **event_filter** (`string`, required) Specify the events to filter for in the research retrieval. Accepts a comma-separated list of event types.
- **research_id** (`string`, required) A string representing the unique identifier of the research to be retrieved.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.CreateWebset
Create a new Webset with optional configurations.
**Parameters**
- **webset_configuration** (`json`, required) A JSON object detailing optional search, import, and enrichment configurations for the Webset. Include any necessary identifiers like `externalId`.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.ListWebsets
Retrieve a list of available websets.
**Parameters**
- **pagination_cursor** (`string`, optional) A string used to paginate through the list of Websets.
- **websets_return_limit** (`number`, optional) Specify the maximum number of Websets to return in the response.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.GetWebsetDetails
Retrieve detailed information about a specific webset.
**Parameters**
- **webset_identifier** (`string`, required) The unique identifier or external ID for the Webset to retrieve.
- **resources_to_expand** (`array[string]`, optional) A list of resources to include in the response for additional details.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.UpdateWebset
Update details of an existing webset.
**Parameters**
- **webset_details** (`json`, required) A JSON object containing the details to update for the webset. This includes any attributes that need to be changed.
- **webset_id** (`string`, required) The unique id or externalId of the Webset to be updated. Ensure it matches a valid Webset.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.DeleteWebset
Deletes a Webset and its associated items.
**Parameters**
- **webset_identifier** (`string`, required) The unique identifier or external ID of the Webset to delete.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.CancelWebsetOperations
Cancel all operations on a specified Webset.
**Parameters**
- **webset_identifier** (`string`, required) The ID or external ID of the Webset to cancel operations on.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.PreviewSearchDecomposition
Preview and analyze search query decomposition.
**Parameters**
- **search_query_details** (`json`, required) A JSON object detailing the search query to preview. It includes elements like the search string and any additional parameters for analysis.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.GetWebsetItem
Retrieve a specific Webset Item by ID.
**Parameters**
- **webset_identifier** (`string`, required) The ID or external ID of the Webset to identify the desired Webset from which the item is to be retrieved.
- **webset_item_id** (`string`, required) The unique identifier of the Webset item to retrieve.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.DeleteWebsetItem
Delete an item from a webset and cancel its enrichment process.
**Parameters**
- **webset_identifier** (`string`, required) The ID or external ID of the Webset from which the item will be deleted.
- **webset_item_id** (`string`, required) The unique identifier of the item to be deleted from the webset.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.ListWebsetItems
Retrieve a list of items from a specific webset.
**Parameters**
- **webset_identifier** (`string`, required) The ID or external ID of the Webset to retrieve items from.
- **pagination_cursor** (`string`, optional) A string used to paginate through the results. Pass this to retrieve the next set of items in the webset.
- **result_limit** (`number`, optional) Specify the number of results to return. This controls the size of the page in a paginated response.
- **source_id** (`string`, optional) The unique identifier for the source from which to retrieve items.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.CreateWebsetEnrichment
Create an enrichment for a specified webset.
**Parameters**
- **enrichment_details** (`json`, required) A JSON object containing the details required to create the enrichment for the webset.
- **webset_identifier** (`string`, required) The ID or external ID of the webset to enrich.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.UpdateWebsetEnrichment
Update an enrichment configuration for a webset.
**Parameters**
- **enrichment_configuration_details** (`json`, required) A JSON object containing the details of the enrichment configuration to update.
- **enrichment_configuration_id** (`string`, required) The unique identifier of the enrichment configuration to be updated.
- **webset_identifier** (`string`, required) The identifier of the webset to be updated. Provide the specific name or ID of the webset.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.GetEnrichmentDetails
Retrieve detailed information about a specific enrichment.
**Parameters**
- **enrichment_id** (`string`, required) The unique identifier for the specific enrichment you want to retrieve within the webset.
- **webset_identifier** (`string`, required) The ID or external ID of the webset to retrieve enrichment details for.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.DeleteEnrichment
Delete an enrichment and cancel running processes.
**Parameters**
- **enrichment_id** (`string`, required) The unique identifier of the enrichment to be deleted.
- **webset_id** (`string`, required) The ID or external ID of the Webset to identify which enrichment to delete.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.CancelEnrichmentProcess
Cancel a running enrichment process.
**Parameters**
- **enrichment_id** (`string`, required) The unique identifier of the enrichment process to be canceled.
- **webset_id** (`string`, required) The ID or external ID of the Webset to identify which enrichment process to cancel.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.CreateWebhookForNotifications
Create webhooks to receive event notifications.
**Parameters**
- **webhook_configuration** (`json`, required) A JSON object detailing the events to monitor and the destination URL for notifications.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.GetWebhooksList
Retrieve a paginated list of all webhooks in your account.
**Parameters**
- **pagination_cursor** (`string`, optional) The cursor used to navigate through pages of results for webhooks.
- **results_per_page** (`number`, optional) The number of webhooks to return per page, up to a maximum of 200.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.GetWebhookInfo
Retrieve details of a webhook using its ID.
**Parameters**
- **webhook_id** (`string`, required) The unique identifier for the webhook you want details about.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.UpdateWebhookSettings
Update a webhook's settings for events, URL, and metadata.
**Parameters**
- **webhook_id** (`string`, required) The unique identifier of the webhook to be updated.
- **webhook_update_request_body** (`json`, required) JSON object containing webhook updates, such as events list, new URL, and metadata.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.RemoveWebhook
Remove a webhook from your account.
**Parameters**
- **webhook_id** (`string`, required) The unique identifier of the webhook to remove. This is necessary for specifying which webhook to delete.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.ListWebhookAttempts
Retrieve and list all webhook attempt records.
**Parameters**
- **webhook_id** (`string`, required) The unique identifier for the webhook to retrieve attempt records for.
- **event_type_filter** (`string`, optional) Filter webhook attempts by specifying the type of event, such as 'webset.created' or 'monitor.run.completed'.
- **filter_by_successful_attempts** (`boolean`, optional) Use 'true' to filter for successful webhook attempts and 'false' for unsuccessful ones.
- **pagination_cursor** (`string`, optional) A string used to paginate through the webhook attempt results.
- **results_limit** (`number`, optional) Specify the maximum number of webhook attempt records to return.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.ListSystemEvents
Retrieve a list of all system events.
**Parameters**
- **created_after** (`string`, optional) Filter events created after or at this timestamp. Use a valid ISO 8601 datetime string in UTC.
- **event_types_filter** (`array[string]`, optional) Filter events by specifying an array of event type names.
- **filter_created_before** (`string`, optional) Filter events created before or at this timestamp (inclusive). Provide a valid ISO 8601 datetime string in UTC.
- **pagination_cursor** (`string`, optional) Cursor for paginating through event results. Use it to navigate through pages of events.
- **results_limit** (`number`, optional) Specify the number of event results to return. This controls the size of the result set for a single request.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.GetEventById
Retrieve details of an event using its ID.
**Parameters**
- **event_id** (`string`, required) The unique identifier of the event to retrieve details for.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.CreateWebsetSearch
Create a new search for a specified webset.
**Parameters**
- **search_criteria** (`json`, required) JSON object representing new search criteria for the webset. This specifies the parameters or conditions for the new search.
- **webset_id** (`string`, required) The unique identifier for the Webset you want to create a search in.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.GetSearchById
Retrieve a search by its ID.
**Parameters**
- **search_id** (`string`, required) The ID of the search to retrieve details for.
- **webset_id** (`string`, required) The ID of the Webset to retrieve the specific search.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.CancelRunningSearch
Cancels a currently running search operation.
**Parameters**
- **search_id** (`string`, required) The ID of the search to cancel. Provide the unique string identifier for the targeted search operation.
- **webset_id** (`string`, required) The ID of the Webset where the search is executing. Use this to specify the Webset to be canceled.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.CreateMonitorForWebsets
Create a scheduled monitor to update Websets with fresh data.
**Parameters**
- **monitor_configuration** (`json`, required) JSON object describing the configuration for the new monitor, including schedule, search and refresh operations.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.ListWebsiteMonitors
Fetch all monitors associated with a website.
**Parameters**
- **pagination_cursor** (`string`, optional) The cursor for paginating through the monitor results.
- **results_limit** (`number`, optional) Specifies the maximum number of monitor results to return. Use for pagination.
- **webset_id** (`string`, optional) The unique identifier for the Webset to retrieve monitors for. This is required to specify which website's monitors you want to list.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.GetSpecificMonitor
Retrieve details of a specific monitor using its ID.
**Parameters**
- **monitor_id** (`string`, required) The unique identifier of the monitor to retrieve details for.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.UpdateMonitorConfiguration
Update the configuration of a monitor.
**Parameters**
- **monitor_configuration_details** (`json`, required) A JSON object containing the new configuration settings for the monitor.
- **monitor_id** (`string`, required) The unique identifier for the monitor to update.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.DeleteMonitor
Deletes a specified monitor using its ID.
**Parameters**
- **monitor_id** (`string`, required) The unique identifier for the monitor to be deleted.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.ListMonitorRuns
Lists all runs for a given monitor.
**Parameters**
- **monitor_id** (`string`, required) The ID of the monitor to list all associated runs.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.GetSpecificMonitorRun
Retrieve details of a specific monitor run.
**Parameters**
- **monitor_id** (`string`, required) The unique identifier of the monitor to retrieve the run for.
- **run_id** (`string`, required) The unique identifier of the specific run to retrieve details for.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.CreateDataImport
Initiates a new data import for uploading data into Websets.
**Parameters**
- **data_import_details** (`json`, required) The JSON object containing data to import for Websets. This includes details for enrichment, search, or exclusion processes.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.ListImports
Retrieve all import entries for the Webset.
**Parameters**
- **pagination_cursor** (`string`, optional) String used for paginating through results. Pass it to retrieve the next set of results.
- **results_limit** (`number`, optional) Specify the maximum number of import results to return.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.GetSpecificImport
Retrieve details of a specific import.
**Parameters**
- **import_id** (`string`, required) The unique identifier for the specific import to retrieve details about.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.UpdateImportsConfiguration
Update an import configuration with new settings.
**Parameters**
- **import_configuration_details** (`json`, required) JSON object containing the new settings for the import configuration. Include all necessary fields that need to be updated.
- **import_id** (`string`, required) The identifier for the import configuration to be updated.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## ExaApi.DeleteImport
Delete an import by its ID.
**Parameters**
- **import_id** (`string`, required) The unique identifier of the import to be deleted.
**Secrets**
This tool requires the following secrets: `EXA_API_KEY` (learn how to [configure secrets](/guides/create-tools/tool-basics/create-tool-secrets))
## Reference
Below is a reference of enumerations used by some of the tools in the ExaApi MCP Server:
### ToolMode
- **GET_REQUEST_SCHEMA**: `get_request_schema`
- **EXECUTE**: `execute`