← SEO Score API

SEO Monitor API

Re-audit any URL daily or weekly and get a webhook, Slack or email alert when its SEO score moves. One POST /monitors call. Paid plans from $5/mo.

An audit is a snapshot. Regressions happen between audits: a redesign drops the structured data, a migration breaks canonicals, a plugin update adds render-blocking scripts. The SEO Monitor API re-audits your URLs on a schedule and tells you when a score moves, by webhook, Slack message or email.

One call

curl -X POST "https://seoscoreapi.com/monitors" \
  -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \
  -d '{
        "url": "https://example.com/pricing",
        "frequency": "daily",
        "webhook_url": "https://hooks.slack.com/services/...",
        "alert_threshold": 5
      }'

Or from Python with requests:

import requests

r = requests.post(
    "https://seoscoreapi.com/monitors",
    json={"url": "https://example.com/pricing", "frequency": "weekly"},
    headers={"X-API-Key": "YOUR_KEY"},
)
print(r.json())

Monitor options

List monitors with GET /monitors, and remove one with DELETE /monitors and {"url": "..."}.

What your webhook receives

{
  "event": "seo_score_change",
  "url": "https://example.com/pricing",
  "old_score": 86, "new_score": 79,
  "old_grade": "A", "new_grade": "B",
  "change": -7,
  "direction": "dropped",
  "report_url": "https://seoscoreapi.com/report/example.com"
}
The values are an example; the fields are exactly what is sent. An email alert with the same numbers goes to the account address.

History you can chart

Pull a URL's score timeline with GET /history and graph it next to your deploy log to find the change that caused a drop. History is kept for 30 days on Starter, 90 days on Basic, a year on Pro and without limit on Ultra.

How many URLs

Score monitoring is on paid plans: 5 URLs on Starter ($5/mo), 10 on Basic ($15/mo), 25 on Pro ($39/mo) and 50 on Ultra ($99/mo). Audits themselves are free (20 a month), so you can test the API before you set up monitors.

Related reading

SEO Monitor API: Score Tracking with Webhooks and Slack Alerts

An SEO monitor API that catches score drops before they hurt rankings. Webhook alerts to Slack or any URL when scores move 5+ points across any monitored page.

Build a Live SEO Monitoring Dashboard in 100 Lines of Python

A self-hosted single-file Flask dashboard that polls the SEO Score API, renders score cards with sparklines for every URL and refreshes itself. Source included.

Historical SEO Score Tracking: See What Changed, When, and Why

Track every audit's score over time, get automatic deltas against the previous run, and pull a full timeseries for any URL in one call. On every paid plan.

How to Set Up SEO Monitoring for Agency Clients (with SLA Alerts)

Set up automated score monitoring for client sites, alert your team in Slack the moment a score drops, and ship quarterly SLA reports, all in under an hour.

Competitive SEO Audit: See Exactly Why Competitors Outrank You

Run a head-to-head SEO comparison against any competitor. Get a Competitive Gap score, per-check breakdown, and prioritized action items to close the gap.

Frequently asked

How does SEO monitoring work?

You register URLs with POST /monitors. Each one is re-audited daily or weekly, its score history is kept, and you're alerted when the score moves by your alert_threshold (default 5 points) since the last run.

Can I get email alerts on a score drop?

Yes. Every alert goes to your account email, and to your webhook or Slack channel if you set webhook_url. Alerts fire on drops and on improvements of at least the threshold.

Is monitoring available on the free tier?

Audits are free (20 a month). Score monitoring is a paid feature starting at $5/mo, which includes a monitor allowance that scales with the plan.

Can I chart score history?

Yes. GET /history returns each URL's score timeline to graph in your own dashboard.

Start Monitoring a URL

Get a Free API Key