Skip to content
MrKeyword
Developers

SEO API: how to build your own keyword or domain tool

An SEO API is a paid web service that returns SEO data, such as domain authority, backlinks, keyword volume and difficulty, as JSON, so you can build a keyword tool, domain checker or backlink checker without running your own crawler or link graph. This guide shows what that data is, what building it yourself involves, two working examples with real requests, and what 10,000 lookups a month costs.

A keyword research table with search volume, difficulty and intent columns
The short version
  • 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 buildData it needsMrKeyword endpointCredits
Domain authority checkerAn authority score, referring-domain and backlink totalsGET|POST /domains/authority1 per domain
All-in-one domain reportAuthority, traffic estimate, top referring domains, backlinks and anchors, indexed pages, registration, hostingGET /domains/overview3
Website traffic checkerEstimated monthly organic clicks with a low–high bandGET|POST /domains/traffic1 per domain
Backlink checkerPage-level links with anchors and follow/nofollow; referring domainsGET /domains/backlinks, GET /domains/referring-domains2 each
Keyword research toolVolume, CPC range, competition, difficulty, intent, related ideasGET|POST /keywords/metrics, GET /keywords/ideas1 per keyword; 2 per ideas call
Keyword difficulty checkerA 0–100 difficulty per keywordPOST /keywords/difficulty1 per 10 keywords
Competitor keyword toolKeywords a domain is likely to rank forGET /domains/organic-keywords3
Domain age checkerRegistration date, registrar, expiryGET /domains/age1
Credits from MrKeyword's price list, which the API also publishes at 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

ComponentWhat you would have to runWhy it is hard
CrawlerA robots.txt-aware fetcher, URL queue, deduplication, page storage and a recrawl scheduleThe web is big and changes constantly; a small crawl gives thin answers for most domains.
Link graphEvery link extracted from every page, stored and joined by domain, refreshed as pages changeAuthority scores are only as good as the share of the web you have seen.
Authority and traffic modelsScoring over the graph; a traffic model calibrated against real dataWithout measured data to check against, a model is a guess with decimals.
Keyword databaseA licensed source of search volumes, plus difficulty and intent logicVolumes come from search engines' own tools; there is no free web-scale source.
Search results (SERPs)Rankings for each keywordGoogle's spam policies say scraping results for rank-checking without permission violates them and Google's Terms of Service.
Our summary. The SERP row is the reason most rank data on the market comes from licensed providers or, as in MrKeyword, from predictions and the site owner's own Search Console data.

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.

  1. 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.

  2. Call the endpoint from your server

    Send the key as Authorization: Bearer mkd_… (or x-api-key). Keep it on your backend; the API allows browser requests, but a key in front-end code can be copied by anyone.

  3. Read data, check meta

    Every success is HTTP 200 with { data, meta }. meta.creditsCharged and meta.creditsRemaining (also sent as x-mrkeyword-credits-* headers) let you track spend per user.

  4. 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"
1 credit. Replace mkd_your_key with your own 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": "…" }
}
Field names from the API; values shown as placeholders. When MrKeyword has no data for a domain, value is null and reason says why.

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"}'
Markets: US, CA, IN, GB, AU. Charged per 10 keywords, rounded up, so this two-keyword call costs 1 credit.

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": "…" }
}
basis says whether the score came from a stored keyword row or from the model. Values shown as placeholders.

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.

See the Data API

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 patternCredits per lookupCredits per monthCheapest fit
Authority checker, one domain per lookup110,000API Starter, $29 (20,000 credits)
Traffic checker, one domain per lookup110,000API Starter, $29
Backlink checker, one backlinks page per lookup220,000API Starter, $29 (uses all of it)
Full domain report (/domains/overview)330,000API Starter + one pack, $49; or API Growth, $99 (100,000)
Difficulty checker, one keyword per request1 (minimum per call)10,000API Starter, $29
Difficulty checker, users paste lists (10,000 keywords in batches)0.11,000Developer (500 free) + one $20 pack, or API Starter
Plans from MrKeyword's Data API price list: Developer free (500 credits, 60 calls a minute), API Starter $29 (20,000, 300 a minute), API Growth $99 (100,000, 600 a minute), API Scale $299 (400,000, 1,500 a minute). Packs: 10,000 credits for $20, valid 12 months, spent after the monthly allowance.

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

APIHow it chargesEntry pointStrengthsWatch for
DataForSEOPay 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 rowVery wide catalogue, including live SERP dataMany small prices to model; at the listed backlinks rate, 10,000 requests are about $240 before row charges
Semrush APIAPI units, bought in packages of 2, 5, 10 or 20 million; unused units expireThe 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 databasesNo dollar price for units on those pages; you need a top-tier subscription first
Ahrefs API v3API units; any billable request costs at least 50 unitsAPI 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 plansAhrefs' backlink index, keywords and top-100 SERPsA domain-rating lookup costs the 50-unit minimum, so 10,000 lookups are 500,000 units; 60 requests a minute by default
Moz APIRows per monthFree: 50 rows. Starter: $20 (3,000 rows) or $75 (15,000). Growth: $125 (50,000), $250 (120,000) or $500 (500,000). Enterprise: customMoz Domain Authority and link metricsStarter's 3,000-row tier has no overages
MrKeyword Data APICredits per call; batch keyword calls 1 per 10Developer free (500 credits). API Starter $29 (20,000), Growth $99 (100,000), Scale $299 (400,000). Pack: 10,000 credits for $20Simple price list (one table, also served by the API), labelled estimates, no subscription to another product neededSmaller, own index; no live SERPs; keyword volumes only for stored keywords
Checked on official pages, 30 October 2026. Per-lookup costs depend on the endpoint and the rows you request.

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/predicted are Predicted from MrKeyword's public page index; traffic is Estimated with a low–high band; difficulty is Estimated. 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: false and 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.

About this article

Written by the MrKeyword team, who build an SEO workspace on first-party Search Console and Bing data. Outside facts link to their original source below. We update this page when the product or the sources change.

Sources

  1. DataForSEO pricing — Pay-as-you-go model, $50 minimum top-up, $1 trial credit, SERP and Labs API prices
  2. DataForSEO Backlinks API — Per-request and per-row Backlinks API prices
  3. Semrush API (knowledge base) — Standard API as a Business-tier add-on, API unit packages and expiry
  4. Semrush pricing — Current plan tiers and API data integration on Advanced
  5. Ahrefs API introduction — Eligibility, 50-unit minimum per request, 60 requests per minute
  6. Ahrefs pricing — Plans with API and MCP access, Enterprise uncapped API access
  7. Moz API pricing — Free, Starter and Growth row allowances and prices
  8. Spam policies for Google web search — Google Search Central, on machine-generated traffic and scraping results for rank checking
Keep reading

Put this into practice.

Related guides and tools for the same job.

Build the tool, not the crawler.

Create a free MrKeyword workspace, mint an mkd_ key and use 500 credits a month to build your keyword or domain tool on MrKeyword's own index. Free plan for one website, no card; paid plans from $10 a month.