Skip to content

New AI assistant answers: ChatGPT, Gemini, Copilot and AI Mode by API

SerpKite
Get API key

POST /v1/monitors

SERP Monitoring API

A Google Alerts you can program: save a search or news query, choose a schedule, and receive only the results you haven't seen before, signed, at your webhook. Or watch a page and hear when its content changes.

Get a free API key Read the reference
1 credit per run, priced like the search or page fetch it makes (1 per 10 results, num=100 is 7); empty and failed runs are free 2,500 free credits, no card Failed calls are free

Overview

What the SERP Monitoring API does

A monitor saves a /v1/search or /v1/news request and runs it hourly, daily, weekly or on any interval from 1 hour to 30 days. Each run reports only the results it hasn't reported before. With endpoint: "webpage" and a url, it watches a page and reports when its content changes, with the new Markdown.

New results are kept in the monitor's run history for 24 hours and, with a webhook_url, posted as a signed monitor.results event. Monitors keep search options such as country, language, time, domain filters and engine, so a monitor can watch Google, or fall back to other engines with engine: "auto".

Up to 100 monitors per account. A monitor pauses itself after 10 failed runs in a row.

What you get

id string
The monitor's ID, for GET, PATCH, DELETE /v1/monitors/{id}, POST /v1/monitors/{id}/run (run at the next poll, within about 30 seconds) and GET /v1/monitors/{id}/runs.
request object
The saved search (q and options), watched url, or AI prompt (with country, language, web_search, track).
interval_seconds / next_run_at / last_run_at mixed
The schedule.
last_status / last_error / last_new_results mixed
The last run: ok, error, webhook_failed or paused, and how many new results it found.
runs / consecutive_failures / credits_used number
Totals over all runs; the failure streak pauses the monitor at 10.

Request

curl https://api.serpkite.com/v1/monitors \
  -H "Authorization: Bearer $SERPKITE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q":"ai agents funding","endpoint":"news","interval":"daily","webhook_url":"https://example.com/hooks/serpkite"}'

Response (illustrative, placeholder domains)

201 Created · the saved monitor
{
  "id": "01926a3e-9d1f-7a2b-8c3d-4e5f6a7b8c9d",
  "name": "",
  "endpoint": "news",
  "request": {
    "q": "ai agents funding"
  },
  "metadata": null,
  "interval_seconds": 86400,
  "webhook_url": "https://example.com/hooks/serpkite",
  "active": true,
  "next_run_at": "2026-10-04T12:00:00Z",
  "last_run_at": "2026-10-03T12:00:05Z",
  "last_status": "ok",
  "last_error": null,
  "last_new_results": 10,
  "runs": 1,
  "consecutive_failures": 0,
  "credits_used": 1,
  "created_at": "2026-10-03T12:00:00Z"
}

Every response also carries X-Credits-Used, X-Credits-Remaining, X-Cache and X-Tokens-Estimate headers. Full endpoint reference

Reference

Parameters

The fields /v1/monitors accepts in its JSON body.

SERP Monitoring API parameters
Name Type Default Description
q string – The query, for search and news monitors.
url string – The page to watch, for endpoint: "webpage".
prompt string – The prompt asked every run, for AI assistant monitors (up to 4,000 characters).
endpoint string search What to run. Values: search, news, webpage, chatgpt, gemini, copilot, ai_mode, brave_ai.
interval string daily How often to run. Values: hourly, daily, weekly.
interval_seconds integer – Exact interval, 3,600–2,592,000 seconds. Overrides interval.
webhook_url string – Receives signed monitor.results events. Without one, read new results from the run history.
name string – Your label, up to 200 characters.
active boolean true false creates the monitor paused.
metadata object – Your own JSON object (up to 2 KB), echoed on the monitor and in its webhooks.
country string us Country to search from, as a two-letter ISO code (us, gb, de, in…). Defaults to the country a location ends in.
language string en Interface language, as a language code with an optional region (en, de, pt-BR, zh-TW…).
location string – Canonical location for local results, e.g. "Austin, Texas, United States". Ending in a country name also sets country.
time string – Restrict to recent results. Shorthand for tbs=qdr:*. Values: hour, day, week, month, year.
num integer – Watch only the top num results (1–100).
device string desktop Which SERP layout to fetch. Values: desktop, mobile.
safe string off SafeSearch filtering. Values: off, active.
include_domains string[] – Only results from these sources, up to 20: a domain (example.com, subdomains match), a path prefix (github.com/org) or a TLD (.gov). Compiled to site: operators and enforced on the results. Search, news, images, videos.
exclude_domains string[] – Drop results from these sources, up to 20, same formats as include_domains. Search, news, images, videos.
engine string or array google Which search providers may answer. google is Google only (SerpKite still retries Google internally); auto falls back to other providers when Google is blocked or times out; consensus (search only) asks several independent indexes in parallel, merges the results by URL, ranks them by agreement and lists each result's sources, at the sum of one page per provider that returned results; a provider name or a list (e.g. google,brave) restricts the request to those. meta.engine names the provider that answered. Values: google, auto, consensus, brave, bing, yahoo, duckduckgo, mojeek, wikipedia, yandex.
web_search boolean – endpoint: "chatgpt" only: make ChatGPT search the web (default true).
track string[] – AI assistant monitors: up to 20 brands or domains to check every answer for (mentions).

Full reference, error codes and headers are in the /v1/monitors reference.

Use cases

What people build with the SERP Monitoring API

01

Brand and competitor alerts

Get new news articles and pages that mention a brand, every hour or day.

02

Agent triggers

Wake an agent when new results appear, through a signed webhook.

03

Release and policy pages

Watch a changelog, pricing or terms page and get its new Markdown when it changes.

04

Research feeds

Follow a topic across Google and fallback engines without re-reading old results.

Pricing

SERP Monitoring API pricing

Cost per call

1 credit

per run, priced like the search or page fetch it makes (1 per 10 results, num=100 is 7); empty and failed runs are free

  • From $0.60 per 1,000 runs at volume.
  • Credits never expire. No subscription.
  • Failed, empty and blocked calls are refunded.
  • 2,500 free credits = 2,500 runs, then 1,000 credits a month.
See all pricing
SERP Monitoring API cost per pack
Pack Price Per 1k credits Per 1k runs Runs per pack
Starter $10 $1.00 $1.00 10,000
Growth $50 $0.80 $0.80 62,500
Pro $300 $0.60 $0.60 500,000

FAQ

SERP Monitoring API: common questions

Start building

Start with the SERP Monitoring API

2,500 free credits, then 1,000 every month. No credit card.