Skip to main content

Monitors API Reference

Standalone recurring-search surface via https://api.exa.ai/monitors.
  • Base docs URL: https://exa.ai/docs
  • Monitors guide: /reference/monitors-api-guide
  • Monitors coding-agent reference: /reference/monitors-api-guide-for-coding-agents

Contents

  • Overview
  • Endpoint summary
  • Create shape
  • Search payload and trigger shape
  • Runs, statuses, and updates
  • Webhook handling
  • Critical pitfalls

Overview

The Monitors API runs Exa searches on a schedule and delivers results to a webhook. Use it for recurring monitoring workflows such as:
  • competitor announcements
  • funding events
  • policy or regulatory changes
  • new publications on a topic
This file covers the standalone Monitors API only. Websets has its own monitor subresources inside the Websets API family and is documented separately in websets.md.

Endpoint Summary

Create Shape

Create Fields

Search Payload and Trigger Shape

  • query
  • optional numResults
  • optional nested contents
For recurring behavior, the key extra concept is trigger:
trigger can be removed on update by setting it to null.

Runs, Statuses, and Updates

Monitor statuses in current Exa docs:
  • active: runs on schedule and accepts manual triggers
  • paused: does not run on schedule but still accepts manual triggers
  • disabled: system-disabled, not manually chosen in normal create flows
Update semantics:
  • all update fields are optional
  • search supports partial updates
  • manual testing is done through POST /monitors/{id}/trigger

Webhook Handling

Creating a monitor returns a one-time webhookSecret. Store it immediately. It is required for verifying webhook signatures and cannot be fetched later. This is one of the most important operational details in the Monitors API.

Python Example

Current Exa Python monitor examples use an API-shaped params dict, so the nested search payload commonly stays in camelCase even though the core Python search helpers are snake_case.

Critical Pitfalls

  1. Use search, not searchParams.
  2. Use trigger, not a top-level schedule string.
  3. Store webhookSecret immediately on create.
  4. Keep this Monitors API separate from Websets-owned monitor subresources.
  5. Manual triggers still work for paused monitors, but not for system-disabled ones.
Last modified on June 26, 2026