An API (application programming interface) in SEO is a way for software to request search data directly from a service, such as Google Search Console, PageSpeed Insights, Ahrefs or a SERP data provider, instead of a person exporting it by hand. Your script, spreadsheet or dashboard sends a request (which site, which dates, which metrics) and gets structured data back, usually JSON. The most useful SEO API is free: Google's Search Console API returns clicks, impressions, CTR and average position by query and page, up to 25,000 rows per request.
Below: what an API is in practical SEO terms, a sortable comparison of 12 SEO APIs with the quotas and prices published as of October 2026, a first Search Console API call you can copy, what's worth automating, and the mistakes that leak keys or burn quotas.
Key takeaways
- An API in SEO lets software request search data (rankings, clicks, page speed, backlinks) directly from a service and get structured JSON back, instead of exporting CSVs by hand.
- Google's SEO APIs are free with quotas: the Search Console API allows 1,200 queries per minute per site and 25,000 rows per request; URL Inspection allows 2,000 checks per site per day.
- Google's Indexing API only supports job posting and livestream pages. Its default quota is 200 publish requests a day per project.
- Third-party data costs money: DataForSEO starts at $0.0006 per SERP with a $50 minimum top-up; Ahrefs' full API requires its Enterprise plan; Semrush sells API units as an add-on (October 2026).
- Google plans to stop including real-user (CrUX) data in the PageSpeed Insights API. Use the free CrUX API, limited to 150 queries per minute, for Core Web Vitals.
What an API is, in SEO terms
An API is a documented way for one program to ask another for data or to make it do something. A web API works over HTTP: you call a URL with parameters, often with a key or a login token, and get a response in a predictable format.
Here's a real one you can run right now in a terminal. It asks Google's PageSpeed Insights API to test a page on mobile, no key needed for occasional use:
curl "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=https://example.com&strategy=mobile&category=performance"The answer is a long JSON document. The performance score sits at lighthouseResult.categories.performance.score (a number from 0 to 1). The same data that the PageSpeed Insights website shows you, but in a form a script can store, compare and alert on.
Four terms you'll meet in every SEO API's documentation:
- Authentication. Either an API key (a long string identifying your project) or OAuth (a login on behalf of a user or a service account). Google's Search Console API uses OAuth because it returns private data about your site.
- Quota. How many requests you may make per minute or per day. Exceed it and you get an error until the window resets.
- Rows or units. Paid APIs usually charge per row returned or per "unit" consumed, not per request.
- Pagination. Big results come in pages. You request rows 0–25,000, then 25,000–50,000, and so on.
Why bother? An API turns a task you do by hand every week into one that runs on a schedule, at a scale no person would attempt: checking the index status of your 2,000 most important URLs every day, or storing 16 months of Search Console data before it expires.
The SEO APIs worth knowing (October 2026)
Prices and limits below come from each provider's documentation or pricing page in October 2026. Click a column header to sort, or filter by name.
SEO APIs compared, October 2026
| Search Console API: Search Analytics | Clicks, impressions, CTR, position by query, page, country, device, date, search appearance | ✓ | Free, OAuth | 25,000 rows per request; 1,200 queries/min per site and per user; 16 months of history |
| Search Console API: URL Inspection | Index status, Google-selected canonical, last crawl time, detected rich results | ✓ | Free, OAuth | 2,000 inspections per site per day, 600 per minute |
| PageSpeed Insights API | Lighthouse lab scores and audits for any URL | ✓ | Free; API key recommended for automated use | Real-user CrUX data is being removed from this API |
| CrUX API | Real-user Core Web Vitals by URL or origin | ✓ | Free, API key | 150 queries per minute per Google Cloud project |
| Google Analytics Data API (GA4) | Sessions, users, conversions, revenue by landing page and channel | ✓ | Free, OAuth | 200,000 core tokens per property per day on standard properties |
| Indexing API | Tells Google a page was updated or removed | ✓ | Free | Only JobPosting and livestream (BroadcastEvent) pages; 200 publish requests per day by default |
| IndexNow | Notifies search engines that URLs changed | ✓ | Free, key file on your domain | Used by Bing, Yandex, Seznam, Naver, Yep and others; Google does not use it |
| Bing Webmaster Tools API | Bing search performance, crawl data, URL submission | ✓ | Free, API key | Bing data only |
| Google Trends API | Consistently scaled search interest, up to 5 years, by region | ✕ | Alpha, very limited testers by application | Not generally available |
| DataForSEO | SERPs, keyword volumes, backlinks, on-page data | ✕ | Pay as you go: SERPs from $0.0006 each, keyword data from $0.0012 per task; $50 minimum top-up, $1 trial credit | Priced per request type and queue speed |
| Ahrefs API | Backlinks, referring domains, organic keywords, rankings, Domain Rating | ✕ | Enterprise plan; free test queries available | Consumes API units |
| Semrush API | Keyword, domain, backlink and position data | ✕ | Add-on to Semrush's top tier; units sold in packages from 2 million | Each call costs units (for example, 40 per line for backlinks) |
Click a column header to sort.
How to read it: everything about your own site (performance, indexing, speed, analytics) is free from Google and Bing. You pay for data about other sites: competitors' rankings, backlinks and live SERPs. If you're building your first automation, start with the free half.
Two details people often get wrong. The Indexing API is not a "fast indexing" button for blog posts: Google documents it only for pages with JobPosting or BroadcastEvent markup (Google). And the PageSpeed Insights API will stop including real-user Chrome UX Report data; Google recommends the CrUX API or CrUX History API for field data (Google).
Your first API call: Search Console in Python
This script pulls every query and page combination for a month from the Search Console API and handles pagination. It uses a service account, which is the simplest setup for scheduled jobs.
Setup, once (about 10 minutes):
- 1
Create a Google Cloud project
At console.cloud.google.com, create a project and enable the Google Search Console API under APIs & Services → Library. - 2
Create a service account and key
APIs & Services → Credentials → Create credentials → Service account. Open it, go to Keys → Add key → JSON, and save the file asservice-account.json. Treat it like a password. - 3
Give the service account access in Search Console
In Search Console, open Settings → Users and permissions → Add user, paste the service account's email address, and choose Restricted permission. Read-only is all the script needs. - 4
Install the client library
Runpip install google-api-python-client google-authin a virtual environment.
The script:
from google.oauth2 import service_account
from googleapiclient.discovery import build
creds = service_account.Credentials.from_service_account_file(
"service-account.json",
scopes=["https://www.googleapis.com/auth/webmasters.readonly"],
)
gsc = build("searchconsole", "v1", credentials=creds)
SITE = "sc-domain:example.com" # domain property; use "https://www.example.com/" for URL-prefix
body = {
"startDate": "2026-09-01",
"endDate": "2026-09-30",
"dimensions": ["query", "page"],
"rowLimit": 25000,
"startRow": 0,
}
rows = []
while True:
resp = gsc.searchanalytics().query(siteUrl=SITE, body=body).execute()
batch = resp.get("rows", [])
rows.extend(batch)
if len(batch) < body["rowLimit"]:
break
body["startRow"] += body["rowLimit"]
print(f"{len(rows)} rows")
for r in sorted(rows, key=lambda r: r["impressions"], reverse=True)[:10]:
query, page = r["keys"]
print(f'{r["impressions"]:>8.0f} impr {r["clicks"]:>6.0f} clicks pos {r["position"]:.1f} {query} -> {page}')Three things to know about the numbers. Queries Google considers rare are anonymized and left out when you group by query, so totals by query add up to less than the site total. Grouping by page and query together is the most expensive kind of request against the API's load quota, so pull long date ranges in smaller chunks (usage limits). And data older than 16 months disappears, so a scheduled monthly export is the cheapest way to keep history.
Prefer no code? The free Search Console connector in Looker Studio and Sheets add-ons such as Search Analytics for Sheets call the same API for you. Large sites can switch on Search Console's bulk data export to BigQuery, which delivers the data daily without API pagination. For a ranking-focused walkthrough, see how to check keyword positions with the Google API.
What to automate with SEO APIs
Start with the job that eats the most hours each week. These five are the usual winners:
| Job | API | How it works |
|---|---|---|
| Weekly performance report | Search Console + GA4 | Pull last week vs the week before, write to a sheet or dashboard, email a summary |
| Index monitoring | Search Console URL Inspection | Check your most important URLs daily (up to 2,000 per site) and alert when one drops out of the index |
| Core Web Vitals tracking | CrUX API | Log real-user LCP, INP and CLS for key templates every week |
| Rank tracking for a fixed list | A SERP API such as DataForSEO | 500 keywords checked daily is about 15,000 SERPs a month: roughly $9 at the $0.0006 entry rate, more for live requests or deeper pages |
| Backlink monitoring | Ahrefs or Semrush API | Alert when new referring domains appear or important links are lost |
Reporting is the most common first project; our guides to automated SEO reports and SEO keyword ranking reports show what to put in them. Once the data flows, the hard part becomes reading it well, which is what SEO intelligence is about. For NLP work on the data you pull, such as clustering queries by meaning, see Python for NLP and semantic SEO.
Publishing through APIs
APIs also work in the other direction: pushing content into a CMS. WordPress has a REST API, Webflow a CMS API, Shopify an Admin API and Ghost an Admin API, so finished articles can be published without anyone copying and pasting.
That's how Outrank delivers its articles. It publishes through native integrations for WordPress, Webflow, Shopify, Wix, Framer, Notion and Ghost, an npm package for Next.js blogs, and a custom webhook that delivers each finished article to your own endpoint, so any other stack can receive it. In the 90 days to October 2026, 1,009 sites received Outrank articles through a webhook or headless setup, second only to WordPress with 1,195 (Outrank platform data). The integrations page lists them all. Tools that automate other SEO tasks are compared in our roundup of SEO automation tools.
Common SEO API mistakes
- Leaking keys. API keys and service account JSON files committed to a public GitHub repo, or embedded in a website's front-end code, get found and abused. Keep them in environment variables or a secrets manager, and restrict API keys to the APIs and referrers that need them.
- Ignoring quotas. Loops that fire requests as fast as possible hit rate limits and fail halfway. Add a short pause between calls and retry with exponential backoff when you get a quota error.
- Using the Indexing API for ordinary pages. It's documented only for job postings and livestreams. For everything else, use an XML sitemap and internal links; for Bing and others, IndexNow.
- Comparing API numbers with the web interface. The Search Console interface shows only 1,000 rows per table and API totals by query omit anonymized queries, so the numbers rarely match exactly. Decide which source is your reference and stick to it.
- Automating before deciding. A dashboard nobody acts on is just a faster spreadsheet. Write down the decision each report should inform before you build it.
FAQ
What is an API in SEO?
An API in SEO is an interface that lets software request search data or perform actions automatically, for example pulling Search Console clicks and impressions, running PageSpeed tests, fetching competitor backlinks or publishing articles to a CMS. It replaces manual exports with scheduled, repeatable requests that return structured data such as JSON.
Is the Google Search Console API free?
Yes. The Search Console API is free to use. It has quotas instead of prices: 1,200 Search Analytics queries per minute per site and per user, up to 25,000 rows per request, and 2,000 URL Inspection requests per site per day. Very large requests can also hit load limits, so pull long date ranges in chunks.
What is the best SEO API?
For data about your own site, Google's Search Console API is the best and it's free. For competitor and backlink data, Ahrefs and Semrush offer APIs on their higher-tier plans, and DataForSEO is a pay-as-you-go option for SERPs, keyword volumes and backlinks. The best choice depends on whether you need your own data (free) or other sites' data (paid).
Can I use the Google Indexing API for blog posts?
Google documents the Indexing API only for pages with JobPosting or BroadcastEvent (livestream) structured data, with a default quota of 200 publish requests a day. For blog posts and other pages, submit an XML sitemap in Search Console, link new pages from existing ones, and use URL Inspection to request indexing for individual important URLs.
What can you automate with an SEO API?
Common uses are weekly performance reports, monitoring whether important pages stay indexed, tracking Core Web Vitals, daily rank tracking for a fixed keyword list, backlink monitoring and publishing content to a CMS. Start with the task that takes you the most time each week and automate that one first.
Do I need to know how to code to use SEO APIs?
No. Looker Studio's Search Console connector, Google Sheets add-ons and automation platforms like Zapier or n8n call the APIs for you. Writing a short Python or JavaScript script gives you more control, and the Search Console example in this guide is under 30 lines.



