SEO API for your own stack
Your SEO and AI-visibility data, over a clean REST endpoint.
Pull Google Search Console, rank and AI Tracker data straight into your product, dashboard or data warehouse. Authenticate with a Bearer key from your dashboard, call REST `/v1`, and get back typed JSON โ the same canonical data layer that powers the SEOcrawl AI MCP. GA4, full site-audit export and multi-tenant partner OAuth are rolling out next.
Bearer auth ยท 60 req/min ยท Same data layer as the MCP ยท No scraping
$ curl https://api.seocrawl.ai/v1/gsc/top-keywords \
-H "Authorization: Bearer sca_live_โฆ"
{
"property": "seocrawl.ai",
"rows": [
{ "query": "seo api", "clicks": 1,204, "position": 4.2 }
{ "query": "seo mcp", "clicks": 744, "position": 2.1 }
{ "query": "seo integrations", "clicks": 421, "position": 6.8 }
]
}
Authenticate once. Call REST.
Mint a Bearer token from your dashboard and pass it in the Authorization header. The same key works on both the REST API and the MCP server.
Base URL
https://api.seocrawl.ai/v1Authorization header
Authorization: Bearer sca_live_your_token_here# cURL
curl https://api.seocrawl.ai/v1/gsc/summary?property=seocrawl.ai \
-H "Authorization: Bearer sca_live_โฆ"
// JavaScript
const res = await fetch(
"https://api.seocrawl.ai/v1/gsc/summary?property=seocrawl.ai",
{ headers: { Authorization: "Bearer sca_live_โฆ" } }
);
const data = await res.json();
# Python
import requests
r = requests.get(
"https://api.seocrawl.ai/v1/gsc/summary",
params={"property": "seocrawl.ai"},
headers={"Authorization": "Bearer sca_live_โฆ"},
)
print(r.json())One data layer, two surfaces
Every REST endpoint reads from the same canonical layer as the MCP tools โ so your dashboard and your AI agents always see identical numbers. These groups are live in v1; more coverage is landing continuously.
Properties
List the Search Console properties connected to your account and resolve them by host.
- GET
/v1/propertiesLive
Google Search Console
Clicks, impressions, CTR and average position โ by query, page, date range and period-over-period.
- GET
/v1/gsc/summaryLive - GET
/v1/gsc/compareLive - GET
/v1/gsc/top-keywordsLive - GET
/v1/gsc/top-pagesLive - GET
/v1/gsc/keyword-detailLive - GET
/v1/gsc/page-detailLive
AI Tracker
Read the prompts you monitor for brand mentions across ChatGPT, Claude, Gemini and Perplexity.
- GET
/v1/ai-tracker/promptsLive
Tasks
Read and write SEO tasks โ wire your task board into your own project management stack.
- GET
/v1/tasksLive - POST
/v1/tasksLive - PATCH
/v1/tasks/{id}Live
GA4 & Indexation
Traffic, AI referrers and indexation status. Seam is ready; REST endpoints are rolling out.
- GET
/v1/ga4/summarySoon - GET
/v1/indexation/summarySoon
Site Audit
Crawl health, on-page, technical and issue lists โ the full audit dataset, exposed over REST.
- GET
/v1/audit/summarySoon - GET
/v1/audit/issuesSoon
Built for products, not scrapers
A real REST API with Bearer auth, scopes and rate limits โ sharing one canonical data layer with the MCP so numbers never disagree.
Clean REST, typed JSON
Predictable resources, standard verbs, typed JSON responses and RFC-compliant errors (401 unauthenticated, 403 scope_required, 429 with Retry-After). No HTML scraping, no brittle exports.
One canonical data layer
REST endpoints and MCP tools are siblings over the same providers, with parity tested in CI. Your dashboard and your AI agents always see identical clicks, impressions and positions.
Self-service keys
Mint and revoke Bearer tokens from your dashboard in seconds. The same sca_live_ key authenticates both the REST API and the MCP server โ one credential, two surfaces.
Documented rate limits
60 requests per minute and 1,000 per hour per token, with clear 429 + Retry-After responses. REST limits are a separate pool from MCP usage โ one never starves the other.
Scoped access
Coarse read and write scopes gate every endpoint, enforced at the firewall with standard step-up responses. Grant a key only what it needs.
Multi-tenant, coming
A per-tenant Google OAuth flow so partners can connect each of their customers' GSC properties under one account โ with strict data isolation. In active development; ask us for early access.
Start in 3 steps
From zero to your first authenticated call in a couple of minutes.
Mint a key
Open API tokens in your dashboard and generate a Bearer token. Copy it once โ it starts with `sca_live_`.
Send the header
Pass `Authorization: Bearer sca_live_โฆ` on every request to `https://api.seocrawl.ai/v1`. The same key also works with the MCP server.
Pull data
Call the endpoints for properties, GSC performance, AI Tracker prompts or tasks โ and pipe the JSON straight into your product, dashboard or warehouse.
Three ways to reach your data
Same numbers, different surface โ pick the one that fits how you build.
REST API
For products, dashboards and data pipelines. Bearer auth, typed JSON, rate limits. You're on this page.
MCP server
For AI agents โ Claude, ChatGPT and any MCP client query your data in natural language.
Explore the MCPTerminal & CLI
For scripts and CI/CD โ drive your data from any MCP-capable terminal agent.
See the CLIWho builds on the API
Teams that want SEO and AI-visibility data inside their own systems.
SaaS & partners
Embed live SEO metrics into your own product UI. Give your users Search Console and AI-visibility data without building the pipelines yourself.
Agencies
Pipe every client's data into a custom portal, Looker Studio or your reporting layer โ one key, every property, no manual exports.
Data teams
Land GSC, rank and AI Tracker data in your warehouse on a schedule. Join it with revenue and build the models your dashboards need.
Developers
Automate checks and alerts, sync tasks with your PM tool, and wire AI-visibility monitoring into the apps you already ship.
Frequently asked questions
Is there really a public SEO API?
Yes โ a Bearer-authenticated REST `/v1` API is live in early access, covering Search Console performance, properties, AI Tracker prompts and tasks. Wider coverage (GA4, full site-audit export) and multi-tenant partner OAuth are rolling out, and the full public reference is on the way. Need something that isn't live yet? Ask us for early access.
How do I authenticate?
With a Bearer token. Mint an `sca_live_` key from your dashboard and send it as `Authorization: Bearer <key>` on every request. There's no OAuth dance for your own account โ just the header.
Is it the same key as the MCP?
Yes. The same token authenticates both the REST API and the MCP server, because both read from one canonical data layer. One credential, two surfaces โ and identical numbers across them.
What are the rate limits?
60 requests per minute and 1,000 per hour per token. Exceed them and you get a `429` with a `Retry-After` header. REST limits are tracked separately from MCP usage, so the two never compete for the same budget.
Can I connect my customers' Search Console properties?
That multi-tenant partner flow โ a per-tenant Google OAuth so you can connect each of your customers' GSC properties under your own account, with strict data isolation โ is in active development. If you're building a partner integration, get in touch for early access.
What data can I pull today?
Search Console summary and period comparisons, top keywords and pages, single keyword/page detail, your list of properties, AI Tracker prompts, and full read/write on tasks. It mirrors what the MCP exposes, over REST.
Ready to build on your SEO data?
Mint a Bearer key from your dashboard and make your first REST call in minutes โ or talk to us about partner and multi-tenant access.