Python client for SEO Score API — audit any URL for SEO issues with one function call
Project description
seoscoreapi
Python client for SEO Score API — audit any URL for SEO issues with one function call.
Install
pip install seoscoreapi
Quick Start
from seoscoreapi import audit, signup
# Get a free API key (5 audits/day)
key = signup("you@example.com")
# Run an audit
result = audit("https://example.com", api_key=key)
print(f"Score: {result['score']}/100 ({result['grade']})")
Functions
| Function | Description |
|---|---|
signup(email) |
Get a free API key |
audit(url, api_key) |
Run SEO audit on a URL |
batch_audit(urls, api_key) |
Audit up to 10 URLs in one call (paid) |
compare(urls, api_key) |
Compare 2–5 URLs with a structured diff (Basic+) |
competitive_audit(url, competitor_url, keyword, api_key) |
Head-to-head audit with gap score (Pro+) |
history(url, api_key, limit=100, since=None) |
Full audit timeseries + summary for a URL (Starter+) |
history_domains(api_key) |
Every domain audited by this key with latest score and 30-day trend (Starter+) |
usage(api_key) |
Check usage and limits |
add_monitor(url, api_key, frequency="daily", webhook_url=None, alert_threshold=5) |
Set up score monitoring with optional Slack/webhook alerts (paid) |
list_monitors(api_key) |
List active monitors |
scoreboard_opt_out(api_key, opt_out=True) |
Opt in or out of the public scoreboard |
report_url(domain) |
Get shareable report URL |
Historical tracking
Every audit on a paid plan returns a history block on the /audit response:
result = audit("https://example.com", api_key=key)
delta = result["history"].get("delta")
if delta:
print(f"Score change: {delta['score']:+.1f} ({delta.get('grade_change') or 'no grade change'})")
Pull the full timeseries with history() or a one-shot per-domain summary with history_domains(). Retention windows: Starter 30 days, Basic 90 days, Pro 1 year, Ultra unlimited.
Webhook alerts on score drops
add_monitor(
"https://example.com",
api_key=key,
frequency="daily",
webhook_url="https://hooks.slack.com/services/T0/B0/xxxx",
alert_threshold=5,
)
Slack incoming-webhook URLs are auto-formatted as Block Kit messages; any other https endpoint receives the raw event JSON.
Full Documentation
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file seoscoreapi-1.3.0.tar.gz.
File metadata
- Download URL: seoscoreapi-1.3.0.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1a9aa2c97fe7b1e8d4b5a71101b86252aef1f68e444baca1efea25c2dd4055d
|
|
| MD5 |
8b9188c3161fe7b52148e38ceb991bd9
|
|
| BLAKE2b-256 |
d5f3515eb91b819833556276cd916f36bc757b9a0d8dab9c347806f94b98b48b
|
File details
Details for the file seoscoreapi-1.3.0-py3-none-any.whl.
File metadata
- Download URL: seoscoreapi-1.3.0-py3-none-any.whl
- Upload date:
- Size: 4.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be5726a0d36de4b331cc821277bfb708d31f727993ab12b3b23fa9513fc77508
|
|
| MD5 |
21f4155a58b959945c52ab2a4152b401
|
|
| BLAKE2b-256 |
34716628f24e6a5292eaa1c09bbee06e027c013f86a99f64875a28c5db3b389b
|