Exa
AI · AI
Neural web search, Websets, enrichments, imports, and agent runs on their own key.
Acts as the person, not as itself
Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.
Credentials never touch the agent
Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.
Every call on the record
Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.
What an agent can do
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
exa_delete_agent_runs_by_idWRITEDelete an agent run via DELETE /agent/runs/{id}. Delete a stored Agent run. DESTRUCTIVE: the resource is removed and there is no undo. Read it first with the matching Get tool if you may need what it held.
exa_delete_batches_by_idWRITEDelete a batch via DELETE /batches/{id}. Soft-delete a batch in a terminal status. DESTRUCTIVE: the resource is removed and there is no undo. Read it first with the matching Get tool if you may need what it held. FEATURE-GATED: the Batch API is enabled per team on request. Measured 2026-09-24 with a working key and the required beta token, every route here answers HTTP 403 "The batch endpoint is not enabled for your team. Contact support to request access." An entitlement, not a credential fault; ask Exa support to enable it.
exa_delete_monitors_by_idWRITEDelete a search monitor via DELETE /monitors/{id}. Deletes a monitor. This cannot be undone. DESTRUCTIVE: the resource is removed and there is no undo. Read it first with the matching Get tool if you may need what it held.
exa_delete_v0_imports_by_idWRITEDelete Import via DELETE /websets/v0/imports/{id}. Deletes a import. DESTRUCTIVE: the resource is removed and there is no undo. Read it first with the matching Get tool if you may need what it held. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_delete_v0_monitors_by_idWRITEDelete a Websets Monitor via DELETE /websets/v0/monitors/{id}. Deletes a monitor. DESTRUCTIVE: the resource is removed and there is no undo. Read it first with the matching Get tool if you may need what it held. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_delete_v0_webhooks_by_idWRITEDelete a Webhook via DELETE /websets/v0/webhooks/{id}. Deletes a Webhook. Its status becomes `inactive`, which stops future webhook deliveries to its URL. DESTRUCTIVE: the resource is removed and there is no undo. Read it first with the matching Get tool if you may need what it held. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_delete_v0_websets_by_idWRITEDelete a Webset via DELETE /websets/v0/websets/{id}. Deletes a Webset. Once deleted, the Webset and all its Items will no longer be available. DESTRUCTIVE: the resource is removed and there is no undo. Read it first with the matching Get tool if you may need what it held. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_delete_v0_websets_by_webset_enrichments_by_idWRITEDelete an Enrichment via DELETE /websets/v0/websets/{webset}/enrichments/{id}. When deleting an Enrichment, any running enrichments will be canceled and all existing `enrichment_result` generated by this Enrichment will no longer be available. DESTRUCTIVE: the resource is removed and there is no undo. Read it first with the matching Get tool if you may need what it held. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_delete_v0_websets_by_webset_items_by_idWRITEDelete an Item via DELETE /websets/v0/websets/{webset}/items/{id}. Deletes an Item from the Webset. This will cancel any enrichment process for it. DESTRUCTIVE: the resource is removed and there is no undo. Read it first with the matching Get tool if you may need what it held. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_get_agent_runsREADList agent runs via GET /agent/runs. List Agent runs for your team, ordered from newest to oldest.
exa_get_agent_runs_by_idREADGet an agent run via GET /agent/runs/{id}. Retrieve a single Agent run by ID.
exa_get_agent_runs_by_id_eventsREADList agent run events via GET /agent/runs/{id}/events. List stored events for an Agent run. Set `Accept: text/event-stream` to replay stored events as server-sent events. Use `cursor` for JSON pagination or `Last-Event-ID` for SSE replay.
exa_get_batchesREADList batches via GET /batches. List batches for your team, ordered from newest to oldest. FEATURE-GATED: the Batch API is enabled per team on request. Measured 2026-09-24 with a working key and the required beta token, every route here answers HTTP 403 "The batch endpoint is not enabled for your team. Contact support to request access." An entitlement, not a credential fault; ask Exa support to enable it.
exa_get_batches_by_idREADGet a batch via GET /batches/{id}. Retrieve a single batch by ID. FEATURE-GATED: the Batch API is enabled per team on request. Measured 2026-09-24 with a working key and the required beta token, every route here answers HTTP 403 "The batch endpoint is not enabled for your team. Contact support to request access." An entitlement, not a credential fault; ask Exa support to enable it.
exa_get_monitorsREADList search monitors via GET /monitors. Lists all monitors for the authenticated team. Supports filtering by status and cursor-based pagination.
exa_get_monitors_by_idREADGet a search monitor via GET /monitors/{id}. Retrieves a single monitor by its ID.
exa_get_monitors_by_id_runsREADList search monitor runs via GET /monitors/{id}/runs. Lists all runs for a monitor with cursor-based pagination. Runs are returned in reverse chronological order.
exa_get_monitors_by_id_runs_by_runidREADGet a search monitor run via GET /monitors/{id}/runs/{runId}. Retrieves a single run by its ID, including the full output if the run is completed.
exa_get_v0_eventsREADList all Events via GET /websets/v0/events. List all events that have occurred in the system. You can paginate through the results using the `cursor` parameter. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_get_v0_events_by_idREADGet an Event via GET /websets/v0/events/{id}. Get a single Event by id. You can subscribe to Events by creating a Webhook. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_get_v0_importsREADList Imports via GET /websets/v0/imports. Lists all imports for the Webset. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_get_v0_imports_by_idREADGet Import via GET /websets/v0/imports/{id}. Gets a specific import. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_get_v0_monitorsREADList Websets Monitors via GET /websets/v0/monitors. Lists all monitors for the Webset. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_get_v0_monitors_by_idREADGet a Websets Monitor via GET /websets/v0/monitors/{id}. Gets a specific monitor. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_get_v0_monitors_by_monitor_runsREADList Websets Monitor runs via GET /websets/v0/monitors/{monitor}/runs. Lists all runs for the Monitor. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_get_v0_monitors_by_monitor_runs_by_idREADGet a Websets Monitor run via GET /websets/v0/monitors/{monitor}/runs/{id}. Gets a specific monitor run. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_get_v0_teams_meREADGet team info via GET /websets/v0/teams/me. Returns information about the authenticated team, including current concurrency usage and limits. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_get_v0_webhooksREADList webhooks via GET /websets/v0/webhooks. Returns the active Webhooks for your team. You can paginate through the results using the `cursor` parameter. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_get_v0_webhooks_by_idREADGet a Webhook via GET /websets/v0/webhooks/{id}. Returns a Webhook by id, including its status, subscribed events, target URL, and metadata. The signing `secret` is not returned. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_get_v0_webhooks_by_id_attemptsREADList webhook attempts via GET /websets/v0/webhooks/{id}/attempts. List all attempts made by a Webhook ordered in descending order. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_get_v0_websetsREADList all Websets via GET /websets/v0/websets. Returns a list of Websets. You can paginate through the results using the `cursor` parameter. You can filter results using the `search` parameter to find Websets by ID, external ID, or title. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_get_v0_websets_by_idREADGet a Webset via GET /websets/v0/websets/{id}. Returns a Webset by `id` or `externalId`, including its status, searches, imports, enrichments, and monitors. Pass `expand=items` to include up to the first 100 items in the response. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_get_v0_websets_by_webset_enrichments_by_idREADGet an Enrichment via GET /websets/v0/websets/{webset}/enrichments/{id}. Returns an Enrichment configured on a Webset, including its status, description, format, and options. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_get_v0_websets_by_webset_itemsREADList all Items for a Webset via GET /websets/v0/websets/{webset}/items. Returns a list of Webset Items. You can paginate through the Items using the `cursor` parameter. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_get_v0_websets_by_webset_items_by_idREADGet an Item via GET /websets/v0/websets/{webset}/items/{id}. Returns a Webset Item. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_get_v0_websets_by_webset_searches_by_idREADGet a Search via GET /websets/v0/websets/{webset}/searches/{id}. Gets a Search by id PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_patch_monitors_by_idWRITEUpdate a search monitor via PATCH /monitors/{id}. Updates an existing monitor. All fields are optional. For `search`, you can send a partial object containing only the fields you want to change. Set `trigger` to `null` to remove the schedule.
exa_patch_v0_imports_by_idWRITEUpdate Import via PATCH /websets/v0/imports/{id}. Updates a import configuration. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_patch_v0_monitors_by_idWRITEUpdate a Websets Monitor via PATCH /websets/v0/monitors/{id}. Updates a monitor configuration. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_patch_v0_webhooks_by_idWRITEUpdate a Webhook via PATCH /websets/v0/webhooks/{id}. Updates the target URL, subscribed events, or metadata of a Webhook. Omitted fields are left unchanged. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_patch_v0_websets_by_webset_enrichments_by_idWRITEUpdate an Enrichment via PATCH /websets/v0/websets/{webset}/enrichments/{id}. Update an Enrichment configuration for a Webset. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_post_agent_runsWRITECreate an agent run via POST /agent/runs. Create an asynchronous Agent run. By default, the API returns the run object immediately. Set `Accept: text/event-stream` to stream run lifecycle events until the run reaches a terminal status. COST: this is a BILLED Exa call charged to the connected team's credit balance -- searches, content fetches, answers and agent runs are priced per call (and an agent run per unit of effort), so an agent allowed to call it can spend the account's balance. A 402 from Exa is that balance, not the key.
exa_post_agent_runs_by_id_cancelWRITECancel an agent run via POST /agent/runs/{id}/cancel. Cancel a queued or running Agent run immediately without returning any results. You are billed for usage accrued before cancellation. If the run has already reached a terminal status, the API returns the existing run.
exa_post_agent_runs_by_id_stopWRITEStop an agent run via POST /agent/runs/{id}/stop. Complete a running Agent run early, returning the results gathered so far. You are billed for usage accrued before the stop. Currently supported only for `max` effort runs and requires the `Exa-Beta: agent-max-effort-2026-07-27` header. If the run has already reached a terminal status, the API returns the existing run.
exa_post_answerWRITEAnswer a question via POST /answer. Performs a search based on the query and generates either a direct answer or a detailed summary with citations, depending on the query type. COST: this is a BILLED Exa call charged to the connected team's credit balance -- searches, content fetches, answers and agent runs are priced per call (and an agent run per unit of effort), so an agent allowed to call it can spend the account's balance. A 402 from Exa is that balance, not the key.
exa_post_batchesWRITECreate a batch via POST /batches. Create a batch of requests to run asynchronously. Each request is dispatched to its target route and results are made available for download when the batch completes. COST: this is a BILLED Exa call charged to the connected team's credit balance -- searches, content fetches, answers and agent runs are priced per call (and an agent run per unit of effort), so an agent allowed to call it can spend the account's balance. A 402 from Exa is that balance, not the key. FEATURE-GATED: the Batch API is enabled per team on request. Measured 2026-09-24 with a working key and the required beta token, every route here answers HTTP 403 "The batch endpoint is not enabled for your team. Contact support to request access." An entitlement, not a credential fault; ask Exa support to enable it.
exa_post_batches_by_id_cancelWRITECancel a batch via POST /batches/{id}/cancel. Request cancellation of a batch. The batch stops scheduling new requests and drains in-flight work before settling to `cancelled`. Cancelling a batch that is already `cancelling` or `cancelled` is idempotent and returns the batch unchanged. A batch that has already reached a terminal status (`completed` or `expired`) cannot be cancelled and the request fails with a 409. FEATURE-GATED: the Batch API is enabled per team on request. Measured 2026-09-24 with a working key and the required beta token, every route here answers HTTP 403 "The batch endpoint is not enabled for your team. Contact support to request access." An entitlement, not a credential fault; ask Exa support to enable it.
exa_post_contentsWRITEGet page contents via POST /contents. Fetch the contents of pages Exa has already crawled, by `urls` or by the result `ids` a previous search returned -- one of the two is required. Ask for `text` (optionally capped with `maxCharacters`), `highlights` (query-relevant excerpts), `summary` (optionally against a JSON schema), `livecrawl` behaviour when the page is not cached, and `subpages`/`extras` for links and images. This is the read half of search: it retrieves page content and never runs a new query. COST: this is a BILLED Exa call charged to the connected team's credit balance -- searches, content fetches, answers and agent runs are priced per call (and an agent run per unit of effort), so an agent allowed to call it can spend the account's balance. A 402 from Exa is that balance, not the key.
exa_post_findsimilarWRITEFind similar pages via POST /findSimilar. Find links similar to the provided URL and optionally retrieve their contents. Deprecated: prefer `/search` with a query describing the source. COST: this is a BILLED Exa call charged to the connected team's credit balance -- searches, content fetches, answers and agent runs are priced per call (and an agent run per unit of effort), so an agent allowed to call it can spend the account's balance. A 402 from Exa is that balance, not the key.
exa_post_monitorsWRITECreate a search monitor via POST /monitors. Creates a new Monitor to run recurring Exa searches on a schedule. Monitors automatically execute your search query on a recurring schedule and deliver results to your webhook endpoint with automatic deduplication: - **Date-based filtering** only fetches content since the last run - **Semantic deduplication** tracks previous outputs to surface only new developments The response includes a `webhookSecret` that is only returned once at creation time. Store it securely for webhook signature verification. THE WEBHOOK SIGNING SECRET IS REDACTED FROM THIS RESULT. Exa returns it only here and no endpoint reads it back, so it is credential material arriving in an ordinary reply; Agentic Fabriq replaces it before the result reaches an agent or the audit pipeline. Everything else is returned untouched. If you need to hold the secret in order to verify delivery signatures, create the resource with Exa's own API or dashboard.
exa_post_monitors_batchWRITEBatch action on search monitors via POST /monitors/batch. Perform a batch action on monitors matching the provided filters. Supported actions: - **delete**: Permanently remove matching monitors - **pause**: Pause matching monitors - **unpause**: Unpause matching monitors Use `dry_run: true` (the default) to preview which monitors would be affected before performing the action. Results are paginated via the `limit` parameter; loop until `has_more` is `false` to process all matching monitors.
exa_post_monitors_by_id_triggerWRITETrigger a search monitor via POST /monitors/{id}/trigger. Triggers a run immediately, regardless of the schedule. Works for monitors with status `active` or `paused`. COST: this is a BILLED Exa call charged to the connected team's credit balance -- searches, content fetches, answers and agent runs are priced per call (and an agent run per unit of effort), so an agent allowed to call it can spend the account's balance. A 402 from Exa is that balance, not the key.
exa_post_searchWRITESearch the web via POST /search. Perform a search with an Exa prompt-engineered query and retrieve a list of relevant results. Optionally get contents. COST: this is a BILLED Exa call charged to the connected team's credit balance -- searches, content fetches, answers and agent runs are priced per call (and an agent run per unit of effort), so an agent allowed to call it can spend the account's balance. A 402 from Exa is that balance, not the key.
exa_post_v0_importsWRITECreate an Import via POST /websets/v0/imports. Creates a new import to upload your data into Websets. Imports can be used to: - **Enrich**: Enhance your data with additional information using our AI-powered enrichment engine - **Search**: Query your data using Websets' agentic search with natural language filters - **Exclude**: Prevent duplicate or already known results from appearing in your searches Once the import is created, you can upload your data to the returned `uploadUrl` until `uploadValidUntil` (by default 1 hour). PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_post_v0_monitorsWRITECreate a Websets Monitor via POST /websets/v0/monitors. Creates a new `Monitor` to continuously keep your Websets updated with fresh data. Monitors automatically run on your defined schedule to ensure your Websets stay current without manual intervention: - **Find new content**: Execute `search` operations to discover fresh items matching your criteria - **Update existing content**: Run `refresh` operations to update items contents and enrichments - **Automated scheduling**: Configure `cron` expressions and `timezone` for precise scheduling control PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_post_v0_webhooksWRITECreate a Webhook via POST /websets/v0/webhooks. Creates a Webhook that delivers the selected events to your URL as they occur. The response includes the signing `secret` used to verify deliveries; it is only returned on creation. THE WEBHOOK SIGNING SECRET IS REDACTED FROM THIS RESULT. Exa returns it only here and no endpoint reads it back, so it is credential material arriving in an ordinary reply; Agentic Fabriq replaces it before the result reaches an agent or the audit pipeline. Everything else is returned untouched. If you need to hold the secret in order to verify delivery signatures, create the resource with Exa's own API or dashboard. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_post_v0_websetsWRITECreate a Webset via POST /websets/v0/websets. Creates a new Webset with optional search, import, and enrichment configurations. The Webset will automatically begin processing once created. You can specify an `externalId` to reference the Webset with your own identifiers for easier integration. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_post_v0_websets_by_idWRITEUpdate a Webset via POST /websets/v0/websets/{id}. Updates the `title` or `metadata` of a Webset. Searches, imports, and enrichments are managed through their own endpoints. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_post_v0_websets_by_id_cancelWRITECancel a running Webset via POST /websets/v0/websets/{id}/cancel. Cancels all operations being performed on a Webset. Any enrichment or search will be stopped and the Webset will be marked as `idle`. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_post_v0_websets_by_webset_enrichmentsWRITECreate an Enrichment via POST /websets/v0/websets/{webset}/enrichments. Create an Enrichment for a Webset. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_post_v0_websets_by_webset_enrichments_by_id_cancelWRITECancel a running Enrichment via POST /websets/v0/websets/{webset}/enrichments/{id}/cancel. All running enrichments will be canceled. You can not resume an Enrichment after it has been canceled. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_post_v0_websets_by_webset_searchesWRITECreate a Search via POST /websets/v0/websets/{webset}/searches. Creates a new Search for the Webset. The default behavior is to reuse the previous Search results and evaluate them against the new criteria. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_post_v0_websets_by_webset_searches_by_id_cancelWRITECancel a running Search via POST /websets/v0/websets/{webset}/searches/{id}/cancel. Cancels a currently running Search. You can cancel all searches at once by using the `websets/:webset/cancel` endpoint. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
exa_post_v0_websets_previewWRITEPreview a webset via POST /websets/v0/websets/preview. Preview how a search query will be decomposed before creating a webset. This endpoint performs the same query analysis that happens during webset creation, allowing you to see the detected entity type, generated search criteria, and available enrichment columns in advance. Use this to help users understand how their search will be interpreted before committing to a full webset creation. PLAN-GATED: Exa's Websets surface needs a Pro plan. Measured 2026-09-24 with a working key on a non-Pro team, every route here answers HTTP 401 "Your team does not have access to the API. Upgrade to a Pro plan to get access." That is an entitlement, not a credential fault: the key is fine, re-pasting it changes nothing, and the remedy is the plan.
Often connected alongside
Put Exa behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.