- An SEO API sells data you would otherwise need a crawler, a link graph and a keyword database to produce: authority scores, backlinks, traffic estimates, keyword volume, difficulty and intent.
- Building that yourself is a long project, and the one shortcut people reach for, scraping Google, is against Google's spam policies and Terms of Service.
- With MrKeyword's Data API a domain authority lookup costs 1 credit and keyword difficulty costs 1 credit per 10 keywords; every response is
{ data, meta }and tells you what it charged. - 10,000 authority lookups a month is 10,000 credits, which fits API Starter at $29 a month (20,000 credits). The free Developer plan gives 500 credits a month to build and test.
- DataForSEO, Semrush, Ahrefs and Moz have far larger datasets, and some also sell search-results data. MrKeyword's index is its own and smaller, and it never scrapes Google.
What is an SEO API?
An SEO API is an HTTP interface that returns search-marketing data, such as a domain's authority score, its backlinks, a keyword's monthly volume or its difficulty, as structured JSON that your own code can call. You send a domain or a keyword with an API key, and you get numbers back, usually metered per request, per row or in credits.
Founders use one to launch a product (a keyword research tool, a domain authority checker, a backlink checker) without spending a year on infrastructure. Agencies use one to fill dashboards and score prospects. Developers building AI assistants use one so the model works from real numbers; that use case has its own guide, SEO data for AI agents and LLM apps.
This guide uses MrKeyword's Data API for the worked examples because we make it and can show exact prices. The patterns, though, carry over to any SEO data API.
What data does an SEO data API provide?
Most SEO data APIs cover three groups of data: domains (authority, traffic estimates, indexed pages), links (backlinks and referring domains), and keywords (volume, cost per click, difficulty, intent and the pages that rank). The table maps each kind of tool to the data it needs and the MrKeyword endpoint that serves it.
What you can build, and the data behind it
| Tool you want to build | Data it needs | MrKeyword endpoint | Credits |
|---|---|---|---|
| Domain authority checker | An authority score, referring-domain and backlink totals | GET|POST /domains/authority | 1 per domain |
| All-in-one domain report | Authority, traffic estimate, top referring domains, backlinks and anchors, indexed pages, registration, hosting | GET /domains/overview | 3 |
| Website traffic checker | Estimated monthly organic clicks with a low–high band | GET|POST /domains/traffic | 1 per domain |
| Backlink checker | Page-level links with anchors and follow/nofollow; referring domains | GET /domains/backlinks, GET /domains/referring-domains | 2 each |
| Keyword research tool | Volume, CPC range, competition, difficulty, intent, related ideas | GET|POST /keywords/metrics, GET /keywords/ideas | 1 per keyword; 2 per ideas call |
| Keyword difficulty checker | A 0–100 difficulty per keyword | POST /keywords/difficulty | 1 per 10 keywords |
| Competitor keyword tool | Keywords a domain is likely to rank for | GET /domains/organic-keywords | 3 |
| Domain age checker | Registration date, registrar, expiry | GET /domains/age | 1 |
GET /api/v1/catalog without a key. Other endpoints cover intent, clustering and predicted results pages.Two details matter when you compare providers. First, where the numbers come from: a vendor's own crawler, Google's keyword tools, a clickstream panel or a model. Second, how each number is labelled. MrKeyword returns a label on its figures (Measured, Derived, Estimated, Predicted or Not available) plus confidence, asOf and source, and a domain it has not seen comes back with nulls and a reason rather than a guess. Pass those labels through to your users.
Should you build your own crawler or buy SEO data?
Buy the data unless the data itself is your product; owning a crawler, a link graph and a keyword database is several long-running systems, not a feature. Each one needs storage, refresh jobs and a way to measure its own accuracy before the first user sees a number.
What owning SEO data actually involves
| Component | What you would have to run | Why it is hard |
|---|---|---|
| Crawler | A robots.txt-aware fetcher, URL queue, deduplication, page storage and a recrawl schedule | The web is big and changes constantly; a small crawl gives thin answers for most domains. |
| Link graph | Every link extracted from every page, stored and joined by domain, refreshed as pages change | Authority scores are only as good as the share of the web you have seen. |
| Authority and traffic models | Scoring over the graph; a traffic model calibrated against real data | Without measured data to check against, a model is a guess with decimals. |
| Keyword database | A licensed source of search volumes, plus difficulty and intent logic | Volumes come from search engines' own tools; there is no free web-scale source. |
| Search results (SERPs) | Rankings for each keyword | Google's spam policies say scraping results for rank-checking without permission violates them and Google's Terms of Service. |
Building does make sense in a few cases: you need a niche index nobody sells (one industry, one language), you have a public dataset such as Common Crawl and the skills to process it, or the data is the moat. For a first version of a tool, an API lets you test whether anyone wants it in days instead of months.
How to build a domain authority checker with an SEO API
A domain authority checker is one API call per domain: send the domain, read the 0–100 score, the referring-domain count and the date, and show them with their label. With MrKeyword that call is GET /api/v1/domains/authority at 1 credit.
-
Create a key
Make a free MrKeyword account, open Data API in the menu and press Create API key. The key starts with
mkd_and is shown once. Every workspace starts on the free Developer plan: 500 credits a month and 60 calls a minute. -
Call the endpoint from your server
Send the key as
Authorization: Bearer mkd_…(orx-api-key). Keep it on your backend; the API allows browser requests, but a key in front-end code can be copied by anyone. -
Read
data, checkmetaEvery success is HTTP 200 with
{ data, meta }.meta.creditsChargedandmeta.creditsRemaining(also sent asx-mrkeyword-credits-*headers) let you track spend per user. -
Batch when you can
POST { "domains": [...] }checks up to 100 domains in one request at the same 1 credit per domain, which saves round trips and rate-limit headroom.
Look up one domain's authority
curl "https://app.mrkeyword.io/api/v1/domains/authority?domain=example.com" \
-H "Authorization: Bearer mkd_your_key"
The shape of the response
{
"data": {
"input": "example.com",
"domain": "example.com",
"authority": {
"value": <0–100 or null>, "label": "Derived", "confidence": "…", "asOf": "…",
"referringDomains": …, "reason": null, "source": "…", "model": "…",
"webGraph": { "position": …, "totalDomains": …, "linkingDomains": …, "release": "…" }
},
"referringDomains": { "value": …, "label": "…", "asOf": "…", "source": "…" },
"backlinks": { "value": …, "label": "…", "follow": …, "nofollow": …, "asOf": "…" }
},
"meta": { "endpoint": "domains.authority", "creditsCharged": 1, "creditsRemaining": …, "plan": "free", "generatedAt": "…" }
}
In your interface, show the score with its label and date ("Derived, as of …"), and show the reason when the value is null instead of printing zero. Handle the error codes: 402 means not enough credits, 429 means the plan's rate limit (respect Retry-After), and a 500 is not charged. GET /api/v1/usage costs nothing and returns your balance. Our own free domain authority checker is built on the same data, and What is domain authority? explains how MrKeyword Link Authority differs from Moz DA, Ahrefs DR and Semrush Authority Score.
How to build a keyword difficulty checker
A keyword difficulty checker sends a list of keywords and a market, and returns a 0–100 score per keyword; with MrKeyword that is one POST to /keywords/difficulty for up to 500 keywords at 1 credit per 10. A 25-keyword list costs 3 credits.
Difficulty for a list of keywords
curl -X POST "https://app.mrkeyword.io/api/v1/keywords/difficulty" \
-H "Authorization: Bearer mkd_your_key" \
-H "content-type: application/json" \
-d '{"keywords":["plumber near me","emergency plumber"],"market":"US"}'
The shape of the response
{
"data": {
"market": "US",
"results": [
{ "keyword": "plumber near me", "difficulty": <0–100>, "label": "Estimated", "confidence": "…", "basis": "stored" },
{ "keyword": "emergency plumber", "difficulty": <0–100>, "label": "Estimated", "confidence": "…", "basis": "model" }
],
"model": "MrKeyword keyword difficulty model (volume, competition, CPC, topic vertical, breadth, qualifiers)"
},
"meta": { "endpoint": "keywords.difficulty", "creditsCharged": 1, "creditsRemaining": …, "plan": "free", "generatedAt": "…" }
}
To turn that into a fuller keyword tool, add POST /keywords/intent (also 1 credit per 10) for informational, commercial, transactional or navigational labels, and POST /keywords/metrics (1 credit per keyword, up to 100 per call) for volume and CPC. Be honest in the interface about two things: difficulty is labelled Estimated, and /keywords/metrics answers from MrKeyword's keyword database first; a keyword it has not stored yet is looked up live in Google Keyword Planner, saved, and returned in the same call. You are charged only for keywords that come back with data, so a keyword Google has no volume for costs nothing. If you want a deeper explanation of search volume sources for your users, link them to how to find keyword search volume.
Try it with 500 free creditsCreate a workspace, mint an mkd_ key under Data API, and run the two requests above. No card needed for the Developer plan.
How much does an SEO API cost for 10,000 lookups a month?
On MrKeyword, 10,000 domain authority lookups a month is 10,000 credits, which fits API Starter at $29 a month; 10,000 full domain reports (3 credits each) is 30,000 credits, which fits Starter plus one $20 credit pack, or API Growth at $99. The arithmetic for common tools:
10,000 lookups a month, in MrKeyword credits
| Tool and call pattern | Credits per lookup | Credits per month | Cheapest fit |
|---|---|---|---|
| Authority checker, one domain per lookup | 1 | 10,000 | API Starter, $29 (20,000 credits) |
| Traffic checker, one domain per lookup | 1 | 10,000 | API Starter, $29 |
| Backlink checker, one backlinks page per lookup | 2 | 20,000 | API Starter, $29 (uses all of it) |
Full domain report (/domains/overview) | 3 | 30,000 | API Starter + one pack, $49; or API Growth, $99 (100,000) |
| Difficulty checker, one keyword per request | 1 (minimum per call) | 10,000 | API Starter, $29 |
| Difficulty checker, users paste lists (10,000 keywords in batches) | 0.1 | 1,000 | Developer (500 free) + one $20 pack, or API Starter |
Two habits keep the bill down. Batch keyword calls, because the per-10 pricing rewards it. And cache results on your side: a domain's authority does not change between two visitors on the same day, and every response carries an asOf date you can key a cache on. API plans are separate from MrKeyword's app plans on the pricing page; buying one never changes the other.
How does MrKeyword's Data API compare with DataForSEO, Semrush, Ahrefs and Moz?
The established SEO APIs have much larger datasets, and DataForSEO and Ahrefs also sell search-results data; MrKeyword's Data API is cheaper to start and simpler to price, but it serves only its own, smaller index and never live Google results. Prices below were read on each vendor's official page on 30 October 2026.
Disclosure: MrKeyword publishes this guide and sells one of the APIs below. We do not score the others, and every price links to the page we read it on. Pricing models differ (credits, units, rows, per-request), so check the vendor's own calculator for your exact calls.
SEO data APIs: how they charge and what they suit
| API | How it charges | Entry point | Strengths | Watch for |
|---|---|---|---|---|
| DataForSEO | Pay as you go per task/request and per row; balance does not expire | $50 minimum top-up; $1 trial credit. SERP API from $0.0006 per SERP; Labs $0.012 per task + $0.00012 per item; Backlinks API $0.024 per request + $0.000036 per row | Very wide catalogue, including live SERP data | Many small prices to model; at the listed backlinks rate, 10,000 requests are about $240 before row charges |
| Semrush API | API units, bought in packages of 2, 5, 10 or 20 million; unused units expire | The Standard API is an add-on to the Business tier, per Semrush's knowledge base; the current pricing page lists API data integration on its Advanced tier (custom price) | Semrush's full keyword and backlink databases | No dollar price for units on those pages; you need a top-tier subscription first |
| Ahrefs API v3 | API units; any billable request costs at least 50 units | API and MCP access listed on paid plans from Lite at $129 a month on the pricing page; Enterprise ($1,499 a month, annual) has uncapped API access; free test queries on other plans | Ahrefs' backlink index, keywords and top-100 SERPs | A domain-rating lookup costs the 50-unit minimum, so 10,000 lookups are 500,000 units; 60 requests a minute by default |
| Moz API | Rows per month | Free: 50 rows. Starter: $20 (3,000 rows) or $75 (15,000). Growth: $125 (50,000), $250 (120,000) or $500 (500,000). Enterprise: custom | Moz Domain Authority and link metrics | Starter's 3,000-row tier has no overages |
| MrKeyword Data API | Credits per call; batch keyword calls 1 per 10 | Developer free (500 credits). API Starter $29 (20,000), Growth $99 (100,000), Scale $299 (400,000). Pack: 10,000 credits for $20 | Simple price list (one table, also served by the API), labelled estimates, no subscription to another product needed | Smaller, own index; no live SERPs; keyword volumes only for stored keywords |
How to choose: if your tool must show real Google rankings for any keyword, or the deepest backlink counts, use one of the large providers and budget for it. If you want a domain checker, a keyword difficulty or intent tool, or an internal agency dashboard at a predictable monthly price, and you are comfortable showing labelled estimates, MrKeyword's API is a reasonable place to start. Many products end up using two providers for different jobs.
Limits: what MrKeyword's Data API does not do
MrKeyword's Data API serves only MrKeyword's own index and models, so it does not have the coverage of the largest SEO databases and it never returns live Google results. Specifically:
- Own index coverage. Authority, backlinks and referring domains come from MrKeyword's crawler and link index and the Common Crawl web graph. Backlinks are the links MrKeyword has discovered, not every link on the web, so counts are lower than the biggest indexes report.
- Predicted and Estimated, not measured. Organic keywords for any domain and
/serp/predictedarePredictedfrom MrKeyword's public page index; traffic isEstimatedwith a low–high band; difficulty isEstimated. None of them is a measured Google position or click count. - No live Google SERP scraping. Nothing is scraped from Google, so there is no endpoint that returns today's Google results page.
- Keyword volume in five markets. Volumes are Google Ads Keyword Planner figures for US, CA, IN, GB and AU. Keywords not yet stored are fetched live, within a daily allowance of live lookups per API plan; a keyword Google has no volume for answers
found: falseand is not charged. - No resale of a third-party index. The API does not pass through another vendor's data.
If what you need is a person's own site data, their Search Console clicks, positions and audits, that is the MCP server rather than the Data API.
Questions and answers
SEO API questions
What is an SEO API?
An SEO API is an HTTP interface that returns search-marketing data, such as a domain's authority, its backlinks, a keyword's volume or difficulty, as JSON your own code can call. It is usually metered per request, per row or in credits.
How do I build a domain authority checker?
Call an authority endpoint once per domain and show the score with its date and label. With MrKeyword's Data API that is GET https://app.mrkeyword.io/api/v1/domains/authority?domain=example.com with an mkd_ key, at 1 credit per domain, or a POST of up to 100 domains.
How much does a keyword difficulty API cost?
On MrKeyword's Data API, POST /keywords/difficulty costs 1 credit per 10 keywords, up to 500 keywords per call. The free Developer plan includes 500 credits a month, API Starter is $29 for 20,000 credits, and a pack of 10,000 credits is $20.
Is it cheaper to build my own SEO crawler?
Rarely for a first product. Owning the data means running a crawler, a link graph, authority and traffic models and a licensed keyword source, and Google's spam policies forbid scraping its results for rank checking without permission. Buying data lets you test demand first.
Does MrKeyword's Data API return live Google rankings?
No. Nothing is scraped from Google. Organic keywords and results pages are labelled Predicted from MrKeyword's own public page index, and traffic and difficulty are labelled Estimated.
Which is better: DataForSEO, Semrush API, Ahrefs API, Moz API or MrKeyword?
It depends on the job. The large providers have far bigger datasets, and DataForSEO and Ahrefs also sell search-results data. MrKeyword's Data API starts free with 500 credits a month and has a simple credit price list, but serves only its own smaller index.
Sources
- DataForSEO pricing — Pay-as-you-go model, $50 minimum top-up, $1 trial credit, SERP and Labs API prices
- DataForSEO Backlinks API — Per-request and per-row Backlinks API prices
- Semrush API (knowledge base) — Standard API as a Business-tier add-on, API unit packages and expiry
- Semrush pricing — Current plan tiers and API data integration on Advanced
- Ahrefs API introduction — Eligibility, 50-unit minimum per request, 60 requests per minute
- Ahrefs pricing — Plans with API and MCP access, Enterprise uncapped API access
- Moz API pricing — Free, Starter and Growth row allowances and prices
- Spam policies for Google web search — Google Search Central, on machine-generated traffic and scraping results for rank checking


