openapi: 3.1.0
info:
title: Exa Websets API
version: 2.0.0
description: Exa Websets API - subset of the Exa Public API.
servers:
- url: https://api.exa.ai
security:
- apiKey: []
- bearer: []
paths:
/v0/websets:
servers:
- url: https://api.exa.ai/websets
post:
description: '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.'
operationId: websets-create
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateWebsetParameters'
responses:
'201':
description: Webset created
content:
application/json:
schema:
$ref: '#/components/schemas/Webset'
headers:
X-Request-Id:
schema:
type: string
description: Unique identifier for the request.
example: req_N6SsgoiaOQOPqsYKKiw5
required: true
'409':
description: Webset with this externalId already exists
headers:
X-Request-Id:
schema:
type: string
description: Unique identifier for the request.
example: req_N6SsgoiaOQOPqsYKKiw5
required: true
summary: Create a Webset
tags:
- Websets
security:
- apiKey: []
- bearer: []
x-codeSamples:
- lang: javascript
label: JavaScript
source: "// npm install exa-js\nimport Exa from 'exa-js';\nconst exa = new Exa('YOUR_EXA_API_KEY');\n\nconst webset\
\ = await exa.websets.create({\n search: {\n query: \"Tech companies in San Francisco\",\n count: 10\n }\n\
});\n\nconsole.log(`Created webset: ${webset.id}`);"
- lang: python
label: Python
source: "# pip install exa-py\nfrom exa_py import Exa\nexa = Exa(api_key='YOUR_EXA_API_KEY')\n\nwebset = exa.websets.create(params={\n\
\ 'search': {\n 'query': 'Tech companies in San Francisco',\n 'count': 10\n }\n})\n\nprint(f'Created\
\ webset: {webset.id}')"
- lang: javascript
label: Filter within CSV Import
source: "// Filter a CSV import by criteria (no top-level import needed)\nimport Exa from 'exa-js';\nconst exa = new\
\ Exa('YOUR_EXA_API_KEY');\n\nconst webset = await exa.websets.create({\n search: {\n query: \"people who changed\
\ jobs\",\n criteria: [\"changed jobs in the last 6 months\"],\n count: 10,\n scope: [{\n source:\
\ \"import\",\n id: \"import_abc123\" // Your existing import ID\n }]\n }\n});\n\nconsole.log(`Filtered\
\ webset: ${webset.id}`);"
- lang: python
label: Filter within CSV Import
source: "from exa_py import Exa\nexa = Exa(api_key='YOUR_EXA_API_KEY')\n\nwebset = exa.websets.create(params={\n \
\ 'search': {\n 'query': 'people who changed jobs',\n 'criteria': ['changed jobs in the last 6 months'],\n\
\ 'count': 10,\n 'scope': [{\n 'source': 'import',\n 'id': 'import_abc123' \
\ # Your existing import ID\n }]\n }\n})\n\nprint(f'Filtered webset: {webset.id}')"
- lang: javascript
label: Hop Search (Graph Traversal)
source: "// Find related entities (e.g., companies -> investors)\nimport Exa from 'exa-js';\nconst exa = new Exa('YOUR_EXA_API_KEY');\n\
\nconst webset = await exa.websets.create({\n search: {\n query: \"investors\",\n scope: [{\n source:\
\ \"webset\",\n id: \"webset_companies\",\n relationship: {\n definition: \"investors of\",\n \
\ limit: 3 // Find up to 3 investors per company\n }\n }]\n }\n});\n\nconsole.log(`Hop search webset:\
\ ${webset.id}`);"
- lang: python
label: Hop Search (Graph Traversal)
source: "from exa_py import Exa\nexa = Exa(api_key='YOUR_EXA_API_KEY')\n\nwebset = exa.websets.create(params={\n \
\ 'search': {\n 'query': 'investors',\n 'scope': [{\n 'source': 'webset',\n \
\ 'id': 'webset_companies',\n 'relationship': {\n 'definition': 'investors of',\n \
\ 'limit': 3 # Find up to 3 investors per company\n }\n }]\n }\n})\n\nprint(f'Hop\
\ search webset: {webset.id}')"
get:
description: '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.'
operationId: websets-list
parameters:
- name: cursor
required: false
in: query
description: The cursor to paginate through the results
schema:
minLength: 1
type: string
- name: limit
required: false
in: query
description: The number of Websets to return
schema:
minimum: 1
maximum: 100
default: 25
type: number
- name: search
required: false
in: query
description: Search term to filter Websets by ID, external ID, or title
schema:
minLength: 2
maxLength: 50
type: string
responses:
'200':
description: List of Websets
content:
application/json:
schema:
$ref: '#/components/schemas/ListWebsetsResponse'
headers:
X-Request-Id:
schema:
type: string
description: Unique identifier for the request.
example: req_N6SsgoiaOQOPqsYKKiw5
required: true
summary: List all Websets
tags:
- Websets
security:
- apiKey: []
- bearer: []
x-codeSamples:
- lang: javascript
label: JavaScript
source: "// npm install exa-js\nimport Exa from \"exa-js\";\nconst exa = new Exa(\"YOUR_EXA_API_KEY\");\n\n// List\
\ websets with optional pagination\nconst websets = await exa.websets.list({\n limit: 20, // Optional: max results\
\ per page\n});\n\nconsole.log(`Found ${websets.data.length} websets`);\nwebsets.data.forEach((webset) => {\n console.log(`-\
\ ${webset.id}: ${webset.status}`);\n});"
- lang: python
label: Python
source: "# pip install exa-py\nfrom exa_py import Exa\n\nexa = Exa(\"YOUR_EXA_API_KEY\")\n\n# List websets with optional\
\ pagination\nwebsets_response = exa.websets.list(\n limit=20 # Optional: max results per page\n)\n\nprint(f\"\
Found {len(websets_response.data)} websets\")\nfor webset in websets_response.data:\n print(f\"- {webset.id}:\
\ {webset.status}\")"
/v0/websets/{id}:
servers:
- url: https://api.exa.ai/websets
get:
operationId: websets-get
parameters:
- name: id
required: true
in: path
description: The id or externalId of the Webset.
schema:
type: string
- name: expand
required: false
in: query
description: Expand the response with the specified resources
schema:
type: array
items:
type: string
enum:
- items
responses:
'200':
description: Webset
content:
application/json:
schema:
$ref: '#/components/schemas/GetWebsetResponse'
headers:
X-Request-Id:
schema:
type: string
description: Unique identifier for the request.
example: req_N6SsgoiaOQOPqsYKKiw5
required: true
'404':
description: Webset not found
headers:
X-Request-Id:
schema:
type: string
description: Unique identifier for the request.
example: req_N6SsgoiaOQOPqsYKKiw5
required: true
summary: Get a Webset
tags:
- Websets
security:
- apiKey: []
- bearer: []
x-codeSamples:
- lang: javascript
label: JavaScript
source: '// npm install exa-js
import Exa from "exa-js";
const exa = new Exa("YOUR_EXA_API_KEY");
const webset = await exa.websets.get("webset_id");
console.log(`Webset: ${webset.id} - ${webset.status}`);'
- lang: python
label: Python
source: '# pip install exa-py
from exa_py import Exa
exa = Exa("YOUR_EXA_API_KEY")
webset = exa.websets.get("webset_id")
print(f"Webset: {webset.id} - {webset.status}")'
post:
operationId: websets-update
parameters:
- name: id
required: true
in: path
description: The id or externalId of the Webset
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateWebsetRequest'
responses:
'200':
description: Webset updated
content:
application/json:
schema:
$ref: '#/components/schemas/Webset'
headers:
X-Request-Id:
schema:
type: string
description: Unique identifier for the request.
example: req_N6SsgoiaOQOPqsYKKiw5
required: true
'404':
description: Webset not found
headers:
X-Request-Id:
schema:
type: string
description: Unique identifier for the request.
example: req_N6SsgoiaOQOPqsYKKiw5
required: true
summary: Update a Webset
tags:
- Websets
security:
- apiKey: []
- bearer: []
x-codeSamples:
- lang: javascript
label: JavaScript
source: "// npm install exa-js\nimport Exa from \"exa-js\";\nconst exa = new Exa(\"YOUR_EXA_API_KEY\");\n\nconst webset\
\ = await exa.websets.update(\"webset_id\", {\n name: \"Updated Webset Name\",\n description: \"Updated description\"\
,\n});\n\nconsole.log(`Updated webset: ${webset.id}`);"
- lang: python
label: Python
source: "# pip install exa-py\nfrom exa_py import Exa\n\nexa = Exa(\"YOUR_EXA_API_KEY\")\n\nwebset = exa.websets.update(\n\
\ \"webset_id\",\n params={\"name\": \"Updated Webset Name\", \"description\": \"Updated description\"},\n\
)\n\nprint(f\"Updated webset: {webset.id}\")"
delete:
description: 'Deletes a Webset.
Once deleted, the Webset and all its Items will no longer be available.'
operationId: websets-delete
parameters:
- name: id
required: true
in: path
description: The id or externalId of the Webset
schema:
type: string
responses:
'200':
description: Webset deleted
content:
application/json:
schema:
$ref: '#/components/schemas/Webset'
headers:
X-Request-Id:
schema:
type: string
description: Unique identifier for the request.
example: req_N6SsgoiaOQOPqsYKKiw5
required: true
'404':
description: Webset not found
headers:
X-Request-Id:
schema:
type: string
description: Unique identifier for the request.
example: req_N6SsgoiaOQOPqsYKKiw5
required: true
summary: Delete a Webset
tags:
- Websets
security:
- apiKey: []
- bearer: []
x-codeSamples:
- lang: javascript
label: JavaScript
source: '// npm install exa-js
import Exa from "exa-js";
const exa = new Exa("YOUR_EXA_API_KEY");
await exa.websets.delete("webset_id");
console.log("Webset deleted successfully");'
- lang: python
label: Python
source: '# pip install exa-py
from exa_py import Exa
exa = Exa("YOUR_EXA_API_KEY")
exa.websets.delete("webset_id")
print("Webset deleted successfully")'
/v0/websets/{id}/cancel:
servers:
- url: https://api.exa.ai/websets
post:
description: 'Cancels all operations being performed on a Webset.
Any enrichment or search will be stopped and the Webset will be marked as `idle`.'
operationId: websets-cancel
parameters:
- name: id
required: true
in: path
description: The id or externalId of the Webset
schema:
type: string
responses:
'200':
description: Webset canceled
content:
application/json:
schema:
$ref: '#/components/schemas/Webset'
headers:
X-Request-Id:
schema:
type: string
description: Unique identifier for the request.
example: req_N6SsgoiaOQOPqsYKKiw5
required: true
summary: Cancel a running Webset
tags:
- Websets
security:
- apiKey: []
- bearer: []
x-codeSamples:
- lang: javascript
label: JavaScript
source: '// npm install exa-js
import Exa from "exa-js";
const exa = new Exa("YOUR_EXA_API_KEY");
const webset = await exa.websets.cancel("webset_id");
console.log(`Cancelled webset: ${webset.id}`);'
- lang: python
label: Python
source: '# pip install exa-py
from exa_py import Exa
exa = Exa("YOUR_EXA_API_KEY")
webset = exa.websets.cancel("webset_id")
print(f"Cancelled webset: {webset.id}")'
/v0/websets/preview:
servers:
- url: https://api.exa.ai/websets
post:
description: '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.'
operationId: websets-preview
parameters:
- name: search
required: false
in: path
description: Weather you want to search for a preview list of items or not
schema:
type: boolean
requestBody:
required: true
description: Search parameters
content:
application/json:
schema:
$ref: '#/components/schemas/PreviewWebsetParameters'
responses:
'200':
description: Preview of the webset
content:
application/json:
schema:
$ref: '#/components/schemas/PreviewWebsetResponse'
headers:
X-Request-Id:
schema:
type: string
description: Unique identifier for the request.
example: req_N6SsgoiaOQOPqsYKKiw5
required: true
'422':
description: Unable to detect entity or criteria from query
headers:
X-Request-Id:
schema:
type: string
description: Unique identifier for the request.
example: req_N6SsgoiaOQOPqsYKKiw5
required: true
summary: Preview a webset
tags:
- Websets Preview
security:
- apiKey: []
- bearer: []
x-codeSamples:
- lang: javascript
label: JavaScript
source: "// npm install exa-js\nimport Exa from \"exa-js\";\nconst exa = new Exa(\"YOUR_EXA_API_KEY\");\n\nconst preview\
\ = await exa.websets.preview({\n search: {\n query:\n \"Marketing agencies based in the US, that focus\
\ on consumer products. Get brands worked with and city\",\n },\n});\n\nconsole.log(\"Search criteria:\", preview.search.criteria);"
- lang: python
label: Python
source: "# pip install exa-py\nfrom exa_py import Exa\n\nexa = Exa(\"YOUR_EXA_API_KEY\")\n\npreview = exa.websets.preview(\n\
\ params={\n \"query\": \"Marketing agencies based in the US, that focus on consumer products. Get brands\
\ worked with and city\"\n }\n)\n\nprint(\"Search criteria:\", preview.search.criteria)\nprint(\"Available enrichments:\"\
, len(preview.enrichments))"
/v0/websets/{webset}/items/{id}:
servers:
- url: https://api.exa.ai/websets
get:
description: Returns a Webset Item.
operationId: websets-items-get
parameters:
- name: webset
required: true
in: path
description: The id or externalId of the Webset
schema:
type: string
- name: id
required: true
in: path
description: The id of the Webset item
schema:
type: string
responses:
'200':
description: Webset Item
content:
application/json:
schema:
$ref: '#/components/schemas/WebsetItem'
headers:
X-Request-Id:
schema:
type: string
description: Unique identifier for the request.
example: req_N6SsgoiaOQOPqsYKKiw5
required: true
summary: Get an Item
tags:
- Items
security:
- apiKey: []
- bearer: []
x-codeSamples:
- lang: javascript
label: JavaScript
source: '// npm install exa-js
import Exa from "exa-js";
const exa = new Exa("YOUR_EXA_API_KEY");
const item = await exa.websets.items.get("webset_id", "item_id");
console.log(`Item: ${item.id} - ${item.properties.name}`);'
- lang: python
label: Python
source: '# pip install exa-py
from exa_py import Exa
exa = Exa("YOUR_EXA_API_KEY")
item = exa.websets.items.get("webset_id", "item_id")
print(f"Item: {item.id} - {item.properties.name}")'
delete:
description: 'Deletes an Item from the Webset.
This will cancel any enrichment process for it.'
operationId: websets-items-delete
parameters:
- name: webset
required: true
in: path
description: The id or externalId of the Webset
schema:
type: string
- name: id
required: true
in: path
description: The id of the Webset item
schema:
type: string
responses:
'200':
description: Webset Item deleted
content:
application/json:
schema:
$ref: '#/components/schemas/WebsetItem'
headers:
X-Request-Id:
schema:
type: string
description: Unique identifier for the request.
example: req_N6SsgoiaOQOPqsYKKiw5
required: true
summary: Delete an Item
tags:
- Items
security:
- apiKey: []
- bearer: []
x-codeSamples:
- lang: javascript
label: JavaScript
source: '// npm install exa-js
import Exa from "exa-js";
const exa = new Exa("YOUR_EXA_API_KEY");
await exa.websets.items.delete("webset_id", "item_id");
console.log("Item deleted successfully");'
- lang: python
label: Python
source: '# pip install exa-py
from exa_py import Exa
exa = Exa("YOUR_EXA_API_KEY")
exa.websets.items.delete("webset_id", "item_id")
print("Item deleted successfully")'
/v0/websets/{webset}/items:
servers:
- url: https://api.exa.ai/websets
get:
description: 'Returns a list of Webset Items.
You can paginate through the Items using the `cursor` parameter.'
operationId: websets-items-list
parameters:
- name: webset
required: true
in: path
description: The id or externalId of the Webset
schema:
type: string
- name: cursor
required: false
in: query
description: The cursor to paginate through the results
schema:
minLength: 1
type: string
- name: limit
required: false
in: query
description: The number of results to return
schema:
minimum: 1
maximum: 100
default: 20
type: number
- name: sourceId
required: false
in: query
description: The id of the source
schema:
type: string
responses:
'200':
description: Webset Items
content:
application/json:
schema:
$ref: '#/components/schemas/ListWebsetItemResponse'
headers:
X-Request-Id:
schema:
type: string
description: Unique identifier for the request.
example: req_N6SsgoiaOQOPqsYKKiw5
required: true
summary: List all Items for a Webset
tags:
- Items
security:
- apiKey: []
- bearer: []
x-codeSamples:
- lang: javascript
label: JavaScript
source: "// npm install exa-js\nimport Exa from \"exa-js\";\nconst exa = new Exa(\"YOUR_EXA_API_KEY\");\n\nconst items\
\ = await exa.websets.items.list(\"webset_id\", {\n limit: 20,\n});\n\nconsole.log(`Found ${items.data.length}\
\ items`);\nitems.data.forEach((item) => {\n console.log(`- ${item.id}: ${item.properties.name}`);\n});"
- lang: python
label: Python
source: "# pip install exa-py\nfrom exa_py import Exa\n\nexa = Exa(\"YOUR_EXA_API_KEY\")\n\nitems = exa.websets.items.list(\"\
webset_id\", limit=20)\n\nprint(f\"Found {len(items.data)} items\")\nfor item in items.data:\n print(f\"- {item.id}:\
\ {item.properties.name}\")"
/v0/websets/{webset}/enrichments:
servers:
- url: https://api.exa.ai/websets
post:
description: Create an Enrichment for a Webset.
operationId: websets-enrichments-create
parameters:
- name: webset
required: true
in: path
description: The id or externalId of the Webset
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEnrichmentParameters'
responses:
'200':
description: Enrichment created
content:
application/json:
schema:
$ref: '#/components/schemas/WebsetEnrichment'
headers:
X-Request-Id:
schema:
type: string
description: Unique identifier for the request.
example: req_N6SsgoiaOQOPqsYKKiw5
required: true
summary: Create an Enrichment
tags:
- Enrichments
security:
- apiKey: []
- bearer: []
x-codeSamples:
- lang: javascript
label: JavaScript
source: "// npm install exa-js\nimport Exa from \"exa-js\";\nconst exa = new Exa(\"YOUR_EXA_API_KEY\");\n\nconst enrichment\
\ = await exa.websets.enrichments.create(\"webset_id\", {\n description: \"Company revenue information\",\n format:\
\ \"text\",\n});\n\nconsole.log(`Created enrichment: ${enrichment.id}`);"
- lang: python
label: Python
source: "# pip install exa-py\nfrom exa_py import Exa\n\nexa = Exa(\"YOUR_EXA_API_KEY\")\n\nenrichment = exa.websets.enrichments.create(\n\
\ \"webset_id\", params={\"description\": \"Company revenue information\", \"format\": \"text\"}\n)\n\nprint(f\"\
Created enrichment: {enrichment.id}\")"
/v0/websets/{webset}/enrichments/{id}:
servers:
- url: https://api.exa.ai/websets
patch:
description: Update an Enrichment configuration for a Webset.
operationId: websets-enrichments-update
parameters:
- name: webset
required: true
in: path
schema:
type: string
- name: id
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateEnrichmentParameters'
responses:
'200':
description: ''
headers:
X-Request-Id:
schema:
type: string
description: Unique identifier for the request.
example: req_N6SsgoiaOQOPqsYKKiw5
required: true
summary: Update an Enrichment
tags:
- Enrichments
security:
- apiKey: []
- bearer: []
x-codeSamples:
- lang: javascript
label: JavaScript
source: "// npm install exa-js\nimport Exa from \"exa-js\";\nconst exa = new Exa(\"YOUR_EXA_API_KEY\");\n\nconst enrichment\
\ = await exa.websets.enrichments.update(\"webset_id\", \"enrichment_id\", {\n description: \"Updated company revenue\
\ and growth metrics\",\n format: \"number\",\n});\n\nconsole.log(`Updated enrichment: ${enrichment.id}`);"
- lang: python
label: Python
source: "# pip install exa-py\nfrom exa_py import Exa\n\nexa = Exa(\"YOUR_EXA_API_KEY\")\n\nenrichment = exa.websets.enrichments.update(\n\
\ \"webset_id\",\n \"enrichment_id\",\n params={\n \"description\": \"Updated company revenue and\
\ growth metrics\",\n \"format\": \"number\",\n },\n)\n\nprint(f\"Updated enrichment: {enrichment.id}\"\
)"
get:
operationId: websets-enrichments-get
parameters:
- name: webset
required: true
in: path
description: The id or externalId of the Webset
schema:
type: string
- name: id
required: true
in: path
description: The id of the Enrichment
schema:
type: string
responses:
'200':
description: Enrichment
content:
application/json:
schema:
$ref: '#/components/schemas/WebsetEnrichment'
headers:
X-Request-Id:
schema:
type: string
description: Unique identifier for the request.
example: req_N6SsgoiaOQOPqsYKKiw5
required: true
summary: Get an Enrichment
tags:
- Enrichments
security:
- apiKey: []
- bearer: []
x-codeSamples:
- lang: javascript
label: JavaScript
source: '// npm install exa-js
import Exa from "exa-js";
const exa = new Exa("YOUR_EXA_API_KEY");
const enrichment = await exa.websets.enrichments.get("webset_id", "enrichment_id");
console.log(`Enrichment: ${enrichment.id} - ${enrichment.status}`);'
- lang: python
label: Python
source: '# pip install exa-py
from exa_py import Exa
exa = Exa("YOUR_EXA_API_KEY")
enrichment = exa.websets.enrichments.get("webset_id", "enrichment_id")
print(f"Enrichment: {enrichment.id} - {enrichment.status}")'
delete:
description: When deleting an Enrichment, any running enrichments will be canceled and all existing `enrichment_result`
generated by this Enrichment will no longer be available.
operationId: websets-enrichments-delete
parameters:
- name: webset
required: true
in: path
description: The id or externalId of the Webset
schema:
type: string
- name: id
required: true
in: path
description: The id of the Enrichment
schema:
type: string
responses:
'200':
description: Enrichment deleted
content:
application/json:
schema:
$ref: '#/components/schemas/WebsetEnrichment'
headers:
X-Request-Id:
schema:
type: string
description: Unique identifier for the request.
example: req_N6SsgoiaOQOPqsYKKiw5
required: true
summary: Delete an Enrichment
tags:
- Enrichments
security:
- apiKey: []
- bearer: []
x-codeSamples:
- lang: javascript
label: JavaScript
source: '// npm install exa-js
import Exa from "exa-js";
const exa = new Exa("YOUR_EXA_API_KEY");
await exa.websets.enrichments.delete("webset_id", "enrichment_id");
console.log("Enrichment deleted successfully");'
- lang: python
label: Python
source: '# pip install exa-py
from exa_py import Exa
exa = Exa("YOUR_EXA_API_KEY")
exa.websets.enrichments.delete("webset_id", "enrichment_id")
print("Enrichment deleted successfully")'
/v0/websets/{webset}/enrichments/{id}/cancel:
servers:
- url: https://api.exa.ai/websets
post:
description: All running enrichments will be canceled. You can not resume an Enrichment after it has been canceled.
operationId: websets-enrichments-cancel
parameters:
- name: webset
required: true
in: path
description: The id or externalId of the Webset
schema:
type: string
- name: id
required: true
in: path
description: The id of the Enrichment
schema:
type: string
responses:
'200':
description: Enrichment cancelled
content:
application/json:
schema:
$ref: '#/components/schemas/WebsetEnrichment'
headers:
X-Request-Id:
schema:
type: string
description: Unique identifier for the request.
example: req_N6SsgoiaOQOPqsYKKiw5
required: true
summary: Cancel a running Enrichment
tags:
- Enrichments
security:
- apiKey: []
- bearer: []
x-codeSamples:
- lang: javascript
label: JavaScript
source: '// npm install exa-js
import Exa from "exa-js";
const exa = new Exa("YOUR_EXA_API_KEY");
const enrichment = await exa.websets.enrichments.cancel("webset_id", "enrichment_id");
console.log(`Cancelled enrichment: ${enrichment.id}`);'
- lang: python
label: Python
source: '# pip install exa-py
from exa_py import Exa
exa = Exa("YOUR_EXA_API_KEY")
enrichment = exa.websets.enrichments.cancel("webset_id", "enrichment_id")
print(f"Cancelled enrichment: {enrichment.id}")'
/v0/webhooks:
servers:
- url: https://api.exa.ai/websets
post:
operationId: webhooks-create
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateWebhookParameters'
responses:
'200':
description: Webhook
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
headers:
X-Request-Id:
schema:
type: string
description: Unique identifier for the request.
example: req_N6SsgoiaOQOPqsYKKiw5
required: true
summary: Create a Webhook
tags:
- Webhooks
security:
- apiKey: []
# --- truncated at 32 KB (151 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/exa-ai/refs/heads/main/openapi/exa-websets-api-openapi.yml