Skip to main content

Date: March 30, 2026 Monitors run Exa searches on a schedule and send results to a webhook. Each run deduplicates against previous runs, so you only get new content.
Read the full Monitors API guide for usage and examples.

What monitors do

  • Track topics over time: Competitor announcements, funding rounds, regulatory changes, research papers. Anything you’d otherwise search for by hand.
  • Return structured results: Use outputSchema to get results as plain text or typed JSON objects.
  • Run on an interval: Set "1d", "6h", etc. Minimum is 1 hour. Runs are anchored to when the monitor was created.
  • Trigger manually: You can also fire a run on demand without waiting for the next interval.

How it works

Create a monitor with a query, an interval, and a webhook URL:
monitor = exa.monitors.create(params={
    "name": "AI Funding Tracker",
    "search": {
        "query": "AI startups that raised Series A funding",
        "numResults": 10
    },
    "trigger": {
        "type": "interval",
        "period": "1d"
    },
    "webhook": {
        "url": "https://example.com/webhook"
    }
})

Structured output

Pass an outputSchema to define the shape of each run’s results:
{
  "outputSchema": {
    "type": "object",
    "properties": {
      "company": { "type": "string" },
      "fundingRound": { "type": "string" },
      "amount": { "type": "string" }
    }
  }
}
Or use "type": "text" for a plain text summary instead.

Need help?

Reach out to hello@exa.ai.