Skip to main content
Monitors run Exa searches on a recurring schedule and deliver results to a webhook endpoint. Use Monitors to follow news, competitor announcements, funding rounds, regulatory changes, research publications, or any other topic that changes over time.

How Monitors work

On each run, Exa executes the configured search, filters by time, removes results or findings the monitor has already returned, and sends the new output to your webhook. Each monitor keeps its own run history, so write the query around the ongoing signal you want to track rather than adding a moving date range yourself.

Create your first monitor

Create a monitor with a search query, an interval, and the HTTPS endpoint that will receive updates:
Store webhookSecret when you create the monitor. It is returned only once and is required to verify webhook signatures.

Configure the output

Every completed run returns newly discovered pages in output.results. Exa also synthesizes findings from each page into output.content: Sources for synthesized fields are returned automatically in output.grounding. Add outputSchema when downstream code needs consistent fields:
Keep citations and confidence out of the schema. They are returned separately in output.grounding.

Add page content

search accepts the same options as Exa Search: use contents to include highlights, full text, or summaries with each result, and includeDomains or excludeDomains to constrain sources.

Test your monitor

Trigger a run immediately instead of waiting for the next scheduled time, then list its runs:
Run statuses are: output is null until the run completes.

Schedule runs

The minimum interval is one hour. Use a single duration such as 1h, 6h, 1d, or 7d. The schedule is anchored to the monitor’s creation time — a daily monitor created at 2:30 PM runs daily around 2:30 PM — but each run may be delayed by up to 30 minutes, so do not rely on an exact wall-clock delivery time. Omit trigger to create a manual-only monitor. Pausing a scheduled monitor also stops automatic runs while preserving manual triggers.
Monitor runs do not overlap. If the next scheduled run starts while the previous one is still running, Exa cancels the previous run.

Receive webhook updates

Subscribe to monitor.run.completed when you only need finished runs. If you omit events, Exa sends monitor lifecycle events and run-created events as well. The completed-run payload includes the run status and output. Optional monitor metadata is echoed in webhook deliveries, which lets you route an update back to the correct customer, workspace, channel, or internal job.
The output and timestamps are shortened below.
Your webhook must use HTTPS and be the final destination because redirects are not followed. Verify Exa-Signature before processing the event.
Every delivery includes an Exa-Signature header in the form t=<timestamp>,v1=<signature>. Construct <timestamp>.<raw-request-body>, compute its HMAC-SHA256 digest with the one-time webhookSecret, and compare the result with v1 using a constant-time comparison.

Next steps

Create a monitor

See every search, schedule, output, metadata, and webhook field.

Monitor runs

Inspect a run’s status, output, grounding, and failure reason.

Search guide

Configure queries, filters, highlights, full text, and freshness.

Search best practices

Improve retrieval quality while keeping output focused.
Last modified on September 15, 2026