Skip to main content
Every exa.api.* operation is listed below with parameter shapes and return types from the plugin Zod schemas.
New to Corsair? See API access, authentication, and error handling.

Answer

get

answer.get Generate a direct, citation-backed answer to a natural language question Risk: read
await corsair.exa.api.answer.get({});
Input
NameTypeRequiredDescription
querystringYes
textbooleanNo
streambooleanNo
Output
NameTypeRequiredDescription
answerstringYes
citationsobject[]No
requestIdstringNo
{
  id: string,
  url: string,
  title?: string | null,
  publishedDate?: string | null,
  author?: string | null,
  score?: number,
  text?: string,
  highlights?: string[],
  highlightScores?: number[],
  summary?: string
}[]

Contents

get

contents.get Retrieve full text, highlights, or summaries from URLs or document IDs Risk: read
await corsair.exa.api.contents.get({});
Input
NameTypeRequiredDescription
idsstring[]Yes
textobjectNo
highlightsobjectNo
summaryobjectNo
{
  maxCharacters?: number,
  includeHtmlTags?: boolean
} | boolean
{
  numSentences?: number,
  highlightsPerUrl?: number,
  query?: string
} | boolean
{
  query?: string
} | boolean
Output
NameTypeRequiredDescription
resultsobject[]Yes
requestIdstringNo
{
  id: string,
  url: string,
  title?: string | null,
  publishedDate?: string | null,
  author?: string | null,
  score?: number,
  text?: string,
  highlights?: string[],
  highlightScores?: number[],
  summary?: string
}[]

Events

get

events.get Get details of a specific webset event by its ID Risk: read
await corsair.exa.api.events.get({});
Input
NameTypeRequiredDescription
websetIdstringYes
eventIdstringYes
Output
NameTypeRequiredDescription
idstringYes
objecteventYes
typestringYes
createdAtstringYes
dataanyNo

list

events.list List all events that have occurred for a webset Risk: read
await corsair.exa.api.events.list({});
Input
NameTypeRequiredDescription
websetIdstringYes
cursorstringNo
limitnumberNo
Output
NameTypeRequiredDescription
dataobject[]Yes
hasMorebooleanNo
nextCursorstringNo
{
  id: string,
  object: event,
  type: string,
  createdAt: string,
  data?: any
}[]

Imports

create

imports.create Create a new import to upload data into a webset Risk: write
await corsair.exa.api.imports.create({});
Input
NameTypeRequiredDescription
websetIdstringYes
urlsstring[]Yes
Output
NameTypeRequiredDescription
idstringYes
objectimportYes
websetIdstringYes
urlsstring[]No
statuspending | processing | completed | failedNo
createdAtstringYes
updatedAtstringNo

delete

imports.delete Delete an existing import [DESTRUCTIVE] Risk: destructive
await corsair.exa.api.imports.delete({});
Input
NameTypeRequiredDescription
websetIdstringYes
importIdstringYes
Output
NameTypeRequiredDescription
idstringYes
deletedbooleanYes

list

imports.list List all imports for a webset Risk: read
await corsair.exa.api.imports.list({});
Input
NameTypeRequiredDescription
websetIdstringYes
cursorstringNo
limitnumberNo
Output
NameTypeRequiredDescription
dataobject[]Yes
hasMorebooleanNo
nextCursorstringNo
{
  id: string,
  object: import,
  websetId: string,
  urls?: string[],
  status?: pending | processing | completed | failed,
  createdAt: string,
  updatedAt?: string
}[]

Monitors

create

monitors.create Create a new monitor to watch a webset for changes Risk: write
await corsair.exa.api.monitors.create({});
Input
NameTypeRequiredDescription
websetIdstringYes
cadenceobjectYes
{
  type: realtime | hourly | daily | weekly
}
Output
NameTypeRequiredDescription
idstringYes
objectmonitorYes
websetIdstringYes
cadenceobjectYes
createdAtstringYes
updatedAtstringNo
{
  type: realtime | hourly | daily | weekly
}

findSimilar

search.findSimilar Find web pages semantically similar to a given URL Risk: read
await corsair.exa.api.search.findSimilar({});
Input
NameTypeRequiredDescription
urlstringYes
numResultsnumberNo
includeDomainsstring[]No
excludeDomainsstring[]No
startCrawlDatestringNo
endCrawlDatestringNo
startPublishedDatestringNo
endPublishedDatestringNo
excludeSourceDomainbooleanNo
categorystringNo
contentsobjectNo
{
  text?: {
    maxCharacters?: number,
    includeHtmlTags?: boolean
  } | boolean,
  highlights?: {
    numSentences?: number,
    highlightsPerUrl?: number,
    query?: string
  } | boolean,
  summary?: {
    query?: string
  } | boolean
}
Output
NameTypeRequiredDescription
resultsobject[]Yes
requestIdstringNo
{
  id: string,
  url: string,
  title?: string | null,
  publishedDate?: string | null,
  author?: string | null,
  score?: number,
  text?: string,
  highlights?: string[],
  highlightScores?: number[],
  summary?: string
}[]

search

search.search Search the web using neural or keyword search Risk: read
await corsair.exa.api.search.search({});
Input
NameTypeRequiredDescription
querystringYes
numResultsnumberNo
includeDomainsstring[]No
excludeDomainsstring[]No
startCrawlDatestringNo
endCrawlDatestringNo
startPublishedDatestringNo
endPublishedDatestringNo
useAutopromptbooleanNo
typekeyword | neural | autoNo
categorystringNo
contentsobjectNo
{
  text?: {
    maxCharacters?: number,
    includeHtmlTags?: boolean
  } | boolean,
  highlights?: {
    numSentences?: number,
    highlightsPerUrl?: number,
    query?: string
  } | boolean,
  summary?: {
    query?: string
  } | boolean
}
Output
NameTypeRequiredDescription
resultsobject[]Yes
autopromptStringstringNo
requestIdstringNo
{
  id: string,
  url: string,
  title?: string | null,
  publishedDate?: string | null,
  author?: string | null,
  score?: number,
  text?: string,
  highlights?: string[],
  highlightScores?: number[],
  summary?: string
}[]

Webhooks Api

list

webhooksApi.list List all webhooks configured for websets Risk: read
await corsair.exa.api.webhooksApi.list({});
Input
NameTypeRequiredDescription
cursorstringNo
limitnumberNo
Output
NameTypeRequiredDescription
dataobject[]Yes
hasMorebooleanNo
nextCursorstringNo
{
  id: string,
  object: webhook,
  url: string,
  events?: string[],
  status?: active | inactive,
  createdAt: string,
  updatedAt?: string
}[]

Websets

create

websets.create Create a new webset with search, import, and enrichment setup Risk: write
await corsair.exa.api.websets.create({});
Input
NameTypeRequiredDescription
searchesobject[]No
enrichmentsobject[]No
externalIdstringNo
{
  query: string,
  count?: number,
  entity?: {
    type?: company | person | article | research paper | repository | event | product | video | job | podcast
  },
  criteria?: {
    description: string,
    successRate?: string
  }[]
}[]
{
  description: string,
  format?: text | date | number | options | boolean,
  options?: string[]
}[]
Output
NameTypeRequiredDescription
idstringYes
objectwebsetYes
statusidle | running | paused | doneYes
externalIdstringNo
searchesobject[]No
enrichmentsobject[]No
importsobject[]No
monitorsobject[]No
createdAtstringYes
updatedAtstringYes
{
  query: string,
  count?: number,
  entity?: {
    type?: company | person | article | research paper | repository | event | product | video | job | podcast
  },
  criteria?: {
    description: string,
    successRate?: string
  }[]
}[]
{
  id: string,
  description: string,
  format: text | date | number | options | boolean,
  options?: string[],
  createdAt: string,
  updatedAt: string
}[]
{
  id: string,
  object: import,
  websetId: string,
  urls?: string[],
  status?: pending | processing | completed | failed,
  createdAt: string,
  updatedAt?: string
}[]
{
  id: string,
  object: monitor,
  websetId: string,
  cadence: {
    type: realtime | hourly | daily | weekly
  },
  createdAt: string,
  updatedAt?: string
}[]

delete

websets.delete Delete a webset [DESTRUCTIVE] Risk: destructive
await corsair.exa.api.websets.delete({});
Input
NameTypeRequiredDescription
idstringYes
Output
NameTypeRequiredDescription
idstringYes
objectwebsetYes
deletedbooleanYes

get

websets.get Get details of a specific webset by its ID Risk: read
await corsair.exa.api.websets.get({});
Input
NameTypeRequiredDescription
idstringYes
Output
NameTypeRequiredDescription
idstringYes
objectwebsetYes
statusidle | running | paused | doneYes
externalIdstringNo
searchesobject[]No
enrichmentsobject[]No
importsobject[]No
monitorsobject[]No
createdAtstringYes
updatedAtstringYes
{
  query: string,
  count?: number,
  entity?: {
    type?: company | person | article | research paper | repository | event | product | video | job | podcast
  },
  criteria?: {
    description: string,
    successRate?: string
  }[]
}[]
{
  id: string,
  description: string,
  format: text | date | number | options | boolean,
  options?: string[],
  createdAt: string,
  updatedAt: string
}[]
{
  id: string,
  object: import,
  websetId: string,
  urls?: string[],
  status?: pending | processing | completed | failed,
  createdAt: string,
  updatedAt?: string
}[]
{
  id: string,
  object: monitor,
  websetId: string,
  cadence: {
    type: realtime | hourly | daily | weekly
  },
  createdAt: string,
  updatedAt?: string
}[]