Exa website screenshot

Exa

Exa is a web search API and AI research platform built specifically for LLMs and agents — semantic and keyword search across the open web with token-efficient highlights, structured outputs, sub-200ms latency tiers, and verticals for code, companies, news, people, research, and financials. The platform pairs the core Search, Contents, and Answer endpoints with Research (asynchronous deep research), Agent (managed multi-step agents at four effort modes), Monitors (scheduled searches with webhooks), and Websets (curated, enrichable result collections). Customers include Cognition (Devin), HubSpot, Monday, Databricks, AWS, and Cursor; Exa raised a $250M Series C to build the search engine for AIs. Open SDKs in Python and JavaScript, an MCP server, Google Sheets and n8n integrations, and a free tier of 1,000 requests/month round out the surface.

7 APIs 19 Features
AISearchWeb SearchNeural SearchLLMAgentsResearchWebsets

APIs

Exa Search API

Exa's prompt-engineered Search API performs semantic and keyword web search optimized for LLM and agent consumption. Returns a list of relevant results with URLs, titles, author...

Exa Research API

Asynchronous multi-step deep-research tasks. Submit a research instruction, Exa orchestrates a Deep Search agent across the live web with structured outputs and web-grounded cit...

Exa Monitors API

Schedule recurring Exa searches and receive webhook notifications when fresh matching content appears on the web. Supports create, list, get, update, delete, batch actions, manu...

Exa Agent API

Run an Exa-hosted research agent at four effort modes — low ($0.025), medium ($0.10), high ($0.50), and x-high ($2.00) — with built-in web search, content retrieval, structured ...

Exa Websets API

Curated, enrichable collections of web results scoped to a query, vertical (companies, people, news, research), or imported list. Compose searches, attach LLM-driven enrichments...

Exa Team API

Lightweight team-info endpoint at /v0/teams/me — returns the authenticated team identity and metadata for the API key.

Exa Team Management API

Admin API for managing API keys within a team — create, list, get, update, delete keys with optional per-key rate limits and budgets, plus a per-key usage endpoint at GET /api-k...

Collections

Exa Agent API

POSTMAN

Exa Search API

POSTMAN

Exa Team API

POSTMAN

Exa Websets API

POSTMAN

Arazzo Workflows

Exa Answer with Deep Sources

Get a cited answer to a question, then deep-fetch the top citation.

ARAZZO

Exa Create and Poll Research

Kick off an Exa research task and poll until it completes, then read output.

ARAZZO

Exa Create Webset and List Items

Create a Webset from a search, poll until it settles, then list its items.

ARAZZO

Exa Enrich Webset and Poll

Build a Webset, then add an enrichment column and poll until it completes.

ARAZZO

Exa Expand Webset Search

Build a Webset, add a follow-up search, and poll it to completion.

ARAZZO

Exa Find Similar and Fetch Contents

Find pages similar to a seed result, then fetch their full contents.

ARAZZO

Exa Preview then Create Webset

Preview how a query decomposes, then commit it to a real Webset.

ARAZZO

Exa Resume Latest Research

Find the most recent research task and poll it until it completes.

ARAZZO

Exa Scout then Research

Scout sources with a quick search, then launch and poll a deep research task.

ARAZZO

Exa Search and Fetch Contents

Run an Exa neural search and pull full page contents for the top result.

ARAZZO

Exa Webset Item Deep Contents

Build a Webset, list its items, and deep-fetch the top item's contents.

ARAZZO

Pricing Plans

Exa Ai Plans Pricing

8 plans

PLANS

Rate Limits

Exa Ai Rate Limits

6 limits

RATE LIMITS

FinOps

Exa Ai Finops

FINOPS

Features

Neural and keyword web search built specifically for LLMs and agents
Token-efficient highlights — claimed ~90% reduction in LLM context cost vs full page text
Latency tiers — fast (~180ms), auto (~1s), deep (~10s)
Verticals — Code, Companies, News, People, Research, Financials
Structured outputs with web-grounded citations
Contents API for full-page text, summaries, highlights, and subpages
Answer endpoint — LLM-grounded answers with sources, streaming optional
Research API — asynchronous deep-research tasks
Agent API — managed research agents with low/medium/high/x-high effort modes
Monitors API — scheduled searches with webhook notifications
Websets — curated, enrichable result collections with imports and webhooks
Webhooks for Webset events, enrichments, monitor runs, and agent runs
Team Management API with per-key rate limits, budgets, and usage reporting
Official SDKs in Python (exa-py) and JavaScript / TypeScript (exa-js)
Exa MCP server and Websets MCP server for agent tool integration
n8n node, Google Sheets extension, Zed editor extension
Free tier — 1,000 requests/month
Pay-as-you-go from $7 per 1,000 search requests; $1 per 1,000 content pages
$1,000 startup/education grant program

Semantic Vocabularies

Exa Ai Context

0 classes · 12 properties

JSON-LD

Resources

🔗
PostmanWorkspace
PostmanWorkspace
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🌐
Portal
Portal
🔗
Documentation
Documentation
🚀
GettingStarted
GettingStarted
🔗
Documentation
Documentation
📝
Signup
Signup
🔗
Sandbox
Sandbox
💰
Pricing
Pricing
📄
ChangeLog
ChangeLog
📰
Blog
Blog
🟢
StatusPage
StatusPage
📜
TermsOfService
TermsOfService
📜
PrivacyPolicy
PrivacyPolicy
💬
Support
Support
🔗
LinkedIn
LinkedIn
👥
GitHubOrganization
GitHubOrganization
📦
SDKs
SDKs
📦
SDKs
SDKs
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
💻
CodeExamples
CodeExamples
💻
CodeExamples
CodeExamples
💻
CodeExamples
CodeExamples
💻
CodeExamples
CodeExamples
💻
CodeExamples
CodeExamples
💻
CodeExamples
CodeExamples
💻
CodeExamples
CodeExamples
💻
CodeExamples
CodeExamples
🔑
Authentication
Authentication
🔗
OpenAPI
OpenAPI
🔗
OpenAPI
OpenAPI
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Exa Websets API
  version: 2.0.0
request:
  auth:
    type: apikey
    key: x-api-key
    value: '{{x-api-key}}'
    placement: header
items:
- info:
    name: Websets
    type: folder
  items:
  - info:
      name: List all Websets
      type: http
    http:
      method: GET
      url: https://api.exa.ai/v0/websets
      params:
      - name: cursor
        value: ''
        type: query
        description: The cursor to paginate through the results
      - name: limit
        value: ''
        type: query
        description: The number of Websets to return
      - name: search
        value: ''
        type: query
        description: Search term to filter Websets by ID, external ID, or title
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: '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.'
  - info:
      name: Create a Webset
      type: http
    http:
      method: POST
      url: https://api.exa.ai/v0/websets
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: '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.'
  - info:
      name: Get a Webset
      type: http
    http:
      method: GET
      url: https://api.exa.ai/v0/websets/:id
      params:
      - name: id
        value: ''
        type: path
        description: The id or externalId of the Webset.
      - name: expand
        value: ''
        type: query
        description: Expand the response with the specified resources
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Get a Webset
  - info:
      name: Update a Webset
      type: http
    http:
      method: POST
      url: https://api.exa.ai/v0/websets/:id
      params:
      - name: id
        value: ''
        type: path
        description: The id or externalId of the Webset
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Update a Webset
  - info:
      name: Delete a Webset
      type: http
    http:
      method: DELETE
      url: https://api.exa.ai/v0/websets/:id
      params:
      - name: id
        value: ''
        type: path
        description: The id or externalId of the Webset
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: 'Deletes a Webset.


      Once deleted, the Webset and all its Items will no longer be available.'
  - info:
      name: Cancel a running Webset
      type: http
    http:
      method: POST
      url: https://api.exa.ai/v0/websets/:id/cancel
      params:
      - name: id
        value: ''
        type: path
        description: The id or externalId of the Webset
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: 'Cancels all operations being performed on a Webset.


      Any enrichment or search will be stopped and the Webset will be marked as `idle`.'
- info:
    name: Websets Preview
    type: folder
  items:
  - info:
      name: Preview a webset
      type: http
    http:
      method: POST
      url: https://api.exa.ai/v0/websets/preview
      params:
      - name: search
        value: ''
        type: path
        description: Weather you want to search for a preview list of items or not
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: '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.'
- info:
    name: Items
    type: folder
  items:
  - info:
      name: Get an Item
      type: http
    http:
      method: GET
      url: https://api.exa.ai/v0/websets/:webset/items/:id
      params:
      - name: webset
        value: ''
        type: path
        description: The id or externalId of the Webset
      - name: id
        value: ''
        type: path
        description: The id of the Webset item
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Returns a Webset Item.
  - info:
      name: Delete an Item
      type: http
    http:
      method: DELETE
      url: https://api.exa.ai/v0/websets/:webset/items/:id
      params:
      - name: webset
        value: ''
        type: path
        description: The id or externalId of the Webset
      - name: id
        value: ''
        type: path
        description: The id of the Webset item
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: 'Deletes an Item from the Webset.


      This will cancel any enrichment process for it.'
  - info:
      name: List all Items for a Webset
      type: http
    http:
      method: GET
      url: https://api.exa.ai/v0/websets/:webset/items
      params:
      - name: webset
        value: ''
        type: path
        description: The id or externalId of the Webset
      - name: cursor
        value: ''
        type: query
        description: The cursor to paginate through the results
      - name: limit
        value: ''
        type: query
        description: The number of results to return
      - name: sourceId
        value: ''
        type: query
        description: The id of the source
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: 'Returns a list of Webset Items.


      You can paginate through the Items using the `cursor` parameter.'
- info:
    name: Enrichments
    type: folder
  items:
  - info:
      name: Create an Enrichment
      type: http
    http:
      method: POST
      url: https://api.exa.ai/v0/websets/:webset/enrichments
      params:
      - name: webset
        value: ''
        type: path
        description: The id or externalId of the Webset
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Create an Enrichment for a Webset.
  - info:
      name: Get an Enrichment
      type: http
    http:
      method: GET
      url: https://api.exa.ai/v0/websets/:webset/enrichments/:id
      params:
      - name: webset
        value: ''
        type: path
        description: The id or externalId of the Webset
      - name: id
        value: ''
        type: path
        description: The id of the Enrichment
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Get an Enrichment
  - info:
      name: Update an Enrichment
      type: http
    http:
      method: PATCH
      url: https://api.exa.ai/v0/websets/:webset/enrichments/:id
      params:
      - name: webset
        value: ''
        type: path
      - name: id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Update an Enrichment configuration for a Webset.
  - info:
      name: Delete an Enrichment
      type: http
    http:
      method: DELETE
      url: https://api.exa.ai/v0/websets/:webset/enrichments/:id
      params:
      - name: webset
        value: ''
        type: path
        description: The id or externalId of the Webset
      - name: id
        value: ''
        type: path
        description: The id of the Enrichment
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: When deleting an Enrichment, any running enrichments will be canceled and all existing `enrichment_result` generated
      by this Enrichment will no longer be available.
  - info:
      name: Cancel a running Enrichment
      type: http
    http:
      method: POST
      url: https://api.exa.ai/v0/websets/:webset/enrichments/:id/cancel
      params:
      - name: webset
        value: ''
        type: path
        description: The id or externalId of the Webset
      - name: id
        value: ''
        type: path
        description: The id of the Enrichment
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: All running enrichments will be canceled. You can not resume an Enrichment after it has been canceled.
- info:
    name: Webhooks
    type: folder
  items:
  - info:
      name: List webhooks
      type: http
    http:
      method: GET
      url: https://api.exa.ai/v0/webhooks
      params:
      - name: cursor
        value: ''
        type: query
        description: The cursor to paginate through the results
      - name: limit
        value: ''
        type: query
        description: The number of results to return
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: List webhooks
  - info:
      name: Create a Webhook
      type: http
    http:
      method: POST
      url: https://api.exa.ai/v0/webhooks
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Create a Webhook
  - info:
      name: Get a Webhook
      type: http
    http:
      method: GET
      url: https://api.exa.ai/v0/webhooks/:id
      params:
      - name: id
        value: ''
        type: path
        description: The id of the webhook
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Get a Webhook
  - info:
      name: Update a Webhook
      type: http
    http:
      method: PATCH
      url: https://api.exa.ai/v0/webhooks/:id
      params:
      - name: id
        value: ''
        type: path
        description: The id of the webhook
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Update a Webhook
  - info:
      name: Delete a Webhook
      type: http
    http:
      method: DELETE
      url: https://api.exa.ai/v0/webhooks/:id
      params:
      - name: id
        value: ''
        type: path
        description: The id of the webhook
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Delete a Webhook
- info:
    name: Webhooks Attempts
    type: folder
  items:
  - info:
      name: List webhook attempts
      type: http
    http:
      method: GET
      url: https://api.exa.ai/v0/webhooks/:id/attempts
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the webhook
      - name: cursor
        value: ''
        type: query
        description: The cursor to paginate through the results
      - name: limit
        value: ''
        type: query
        description: The number of results to return
      - name: eventType
        value: ''
        type: query
        description: The type of event to filter by
      - name: successful
        value: ''
        type: query
        description: Filter attempts by their success status
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: List all attempts made by a Webhook ordered in descending order.
- info:
    name: Events
    type: folder
  items:
  - info:
      name: List all Events
      type: http
    http:
      method: GET
      url: https://api.exa.ai/v0/events
      params:
      - name: cursor
        value: ''
        type: query
        description: The cursor to paginate through the results
      - name: limit
        value: ''
        type: query
        description: The number of results to return
      - name: types
        value: ''
        type: query
        description: The types of events to filter by
      - name: createdBefore
        value: ''
        type: query
        description: Filter events created before or at this timestamp (inclusive). Must be a valid ISO 8601 datetime string.
          All times are in UTC.
      - name: createdAfter
        value: ''
        type: query
        description: Filter events created after or at this timestamp (inclusive). Must be a valid ISO 8601 datetime string.
          All times are in UTC.
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: 'List all events that have occurred in the system.


      You can paginate through the results using the `cursor` parameter.'
  - info:
      name: Get an Event
      type: http
    http:
      method: GET
      url: https://api.exa.ai/v0/events/:id
      params:
      - name: id
        value: ''
        type: path
        description: The id of the event
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: 'Get a single Event by id.


      You can subscribe to Events by creating a Webhook.'
- info:
    name: Searches
    type: folder
  items:
  - info:
      name: Create a Search
      type: http
    http:
      method: POST
      url: https://api.exa.ai/v0/websets/:webset/searches
      params:
      - name: webset
        value: ''
        type: path
        description: The id of the Webset
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: 'Creates a new Search for the Webset.


      The default behavior is to reuse the previous Search results and evaluate them against the new criteria.'
  - info:
      name: Get a Search
      type: http
    http:
      method: GET
      url: https://api.exa.ai/v0/websets/:webset/searches/:id
      params:
      - name: webset
        value: ''
        type: path
        description: The id of the Webset
      - name: id
        value: ''
        type: path
        description: The id of the Search
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Gets a Search by id
  - info:
      name: Cancel a running Search
      type: http
    http:
      method: POST
      url: https://api.exa.ai/v0/websets/:webset/searches/:id/cancel
      params:
      - name: webset
        value: ''
        type: path
        description: The id of the Webset
      - name: id
        value: ''
        type: path
        description: The id of the Search
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: 'Cancels a currently running Search.


      You can cancel all searches at once by using the `websets/:webset/cancel` endpoint.'
- info:
    name: Imports
    type: folder
  items:
  - info:
      name: List Imports
      type: http
    http:
      method: GET
      url: https://api.exa.ai/v0/imports
      params:
      - name: cursor
        value: ''
        type: query
        description: The cursor to paginate through the results
      - name: limit
        value: ''
        type: query
        description: The number of results to return
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Lists all imports for the Webset.
  - info:
      name: Create an Import
      type: http
    http:
      method: POST
      url: https://api.exa.ai/v0/imports
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: '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).'
  - info:
      name: Get Import
      type: http
    http:
      method: GET
      url: https://api.exa.ai/v0/imports/:id
      params:
      - name: id
        value: ''
        type: path
        description: The id of the Import
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Gets a specific import.
  - info:
      name: Update Import
      type: http
    http:
      method: PATCH
      url: https://api.exa.ai/v0/imports/:id
      params:
      - name: id
        value: ''
        type: path
        description: The id of the Import
      body:
        type: json
        data: '{}'
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Updates a import configuration.
  - info:
      name: Delete Import
      type: http
    http:
      method: DELETE
      url: https://api.exa.ai/v0/imports/:id
      params:
      - name: id
        value: ''
        type: path
        description: The id of the Import
      auth:
        type: apikey
        key: x-api-key
        value: '{{x-api-key}}'
        placement: header
    docs: Deletes a import.
bundled: true