ActorsComparePricingFAQAboutBrowse actors on Apify
Domain SEO Analyzer icon

Search and SEO

Domain SEO Analyzer: Keywords, Traffic and Gap

Domain SEO Analyzer is an Apify actor (API) by CheapAPI Labs. Organic traffic, ranked keywords, competitors and top pages for any domain, in bulk. It costs $2.00 per 1,000 rows on every Apify plan, plus $0.015 per report, billed through your Apify account with no API key.

Our prices updated 30 October 2026. 11 Apify users have run this actor (Apify Store count, 30 October 2026).

Free plan$2.00per 1,000 rows
Gold plan$2.00per 1,000 rows
API keyNot neededbilled by Apify

What does Domain SEO Analyzer return?

See how much Google traffic any website gets, which keywords it ranks for, who its competitors are and which keywords you are missing, 9 SEO reports in one Actor, from $2 per 1,000 rows, no SEO tool subscription and no login.

One example row from a real run, shortened:

{
  "id": "01a59e3bf8e1a0dcbc47",
  "report": "rankedKeywords",
  "domain": "example.com",
  "keyword": "1000 keywords",
  "searchVolume": 40,
  "cpc": null,
  "competition": 0.1,
  "competitionLevel": "LOW",
  "keywordDifficulty": 15,
  "searchIntent": "informational",
  "searchVolumeTrend": {
    "monthly": -91,
    "quarterly": -80,
    "yearly": -80
  },
  "monthlySearches": [
    {
      "year": 2026,
      "month": 8,
      "searchVolume": 10
    },
    {
      "year": 2026,
      "month": 7,
      "searchVolume": 110
    }
  ],
  "serpFeatures": [
    "ai_overview",
    "organic",
    "people_also_ask",
    "video"
  ],
  "totalResults": 132,
  "position": 1,
  "absolutePosition": 2,
  "previousPosition": 1,
  …
}

Which fields do you get?

Report One row per Main fields
Domain overview (default) domain (or market with "All countries") organic keywords, estimated monthly organic traffic, traffic value (USD), keywords at position 1, 2 to 3, 4 to 10 … 91 to 100, new / improved / declined / lost keywords, paid keywords & traffic
Ranked keywords keyword keyword, position, previous position, change (new/up/down/same), ranking URL, title, search volume, 12-month history, CPC, competition, difficulty, intent, estimated traffic, SERP features
Competitors competitor domain shared keywords, average position, competitor's total keywords & traffic, your vs their traffic on the shared keywords
Top pages page URL keywords and traffic per page, position distribution, paid data
Subdomains subdomain keywords and traffic per subdomain
Keyword gap keyword keywords a competitor ranks for and you don't (or shared / only yours), both positions and URLs, volume, CPC, difficulty, intent
SERP competitors domain who ranks for YOUR keyword list: average & median position, visibility, estimated traffic, positions per keyword
Rank history month keywords, traffic and position distribution month by month
Bulk traffic domain or URL organic, paid, featured snippet and local pack traffic and keyword counts

Main output fields:

Field Type Example
id string "01a59e3bf8e1a0dcbc47", stable hash of report + domain + row key (keyword, competitor, page, month …) + country + language
report string "rankedKeywords"
domain string "apify.com"
keyword string "1000 keywords"
position / previousPosition integer 1 / 1
positionChange string "down" (new, up, down, same)
url / title string "https://example.com/free-seo-stats/top-1000-keywords"
searchVolume integer 40
monthlySearches array [{ "year": 2026, "month": 8, "searchVolume": 10 }]
cpc number (USD) or null 30.87
competition / competitionLevel number / string 0.1 / "LOW"
keywordDifficulty integer 0 to 100 15
searchIntent string "informational"
estimatedTraffic / trafficValueUsd number 12.16
serpFeatures array ["ai_overview", "organic", "people_also_ask"]
competitorDomain string "dentaly.org"
sharedKeywords / avgPosition integer / number 152 / 57.43
gapType string "competitorOnly", "shared" or "yoursOnly"
yourPosition / competitorPosition integer 9 / 44
pageUrl / subdomain string "https://apify.com/store"
period string "2026-09" (Rank history)
organicKeywords / organicTraffic / organicTrafficValueUsd number 11625 / 32394.41 / 197346.88
organicPos1 … organicPos91to100 integer 42
organicNewKeywords / organicLostKeywords integer 9698 / 1948
paidKeywords / paidTraffic number 0
country / language string "US" / "en"
scrapedAt string (ISO time) "2026-09-29T05:05:42.761Z"

How much does Domain SEO Analyzer cost?

You pay per event, through your Apify account. Main price: $2.00 per 1,000 rows on every Apify plan, plus $0.015 per report. Every event and plan:

Price per event in USD by Apify plan. Platinum and Diamond pay the Gold price. Apify platform usage: billed separately by Apify.
EventFreeBronzeSilverGold
ReportCharged once for each report requested, even if nothing is found: per domain (Domain overview, Ranked keywords, Competitors, Top pages, Subdomains), per compared domain pair and gap view (Keyword gap), per group of up to 200 keywords (SERP competitors) or per group of up to 1,000 domains (Bulk traffic). Failed requests are free.$0.015$0.015$0.015$0.015
Result rowOne delivered row: a ranked keyword, competitor, page, subdomain, keyword gap keyword, SERP competitor, monthly history point or domain overview.$0.002$0.002$0.002$0.002
Bulk traffic domainOne domain (or URL) with traffic and keyword counts in the Bulk traffic report.$0.0009$0.0009$0.0009$0.0009
Rank history reportCharged once per domain for the Rank history report (monthly keywords and traffic over time), in addition to one result row per month. Charged per report requested, even if no history is found. Failed requests are free.$0.16$0.16$0.16$0.16
Report without resultsSmall extra fee added to the Report fee only when a requested report finds no rows (no data for the domain, or your filters removed everything), because the lookup was still made. Never charged when rows are returned, for Rank history or for failed requests.$0.0004$0.0004$0.0004$0.0004

How do I call Domain SEO Analyzer API from code?

Every run is one HTTP request to the Apify API with your Apify token; the input below is the actor's own example. The synchronous endpoint returns the rows in the response for runs up to 300 seconds; for longer runs start a run and fetch its dataset.

curl -X POST "https://api.apify.com/v2/acts/cheapapi~domain-seo-analyzer/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
  -d '{"report":"domainOverview","domains":["apify.com"],"country":"US"}'

With the JavaScript client:

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('cheapapi/domain-seo-analyzer').call({
  "report": "domainOverview",
  "domains": [
    "apify.com"
  ],
  "country": "US"
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

How does Domain SEO Analyzer compare with alternatives?

Typical runs, priced from each Actor's pay per event list (Apify Free plan price, then Bronze to Gold price where the Actor has tiers; Platinum and Diamond pay the Gold price for all of them). The other Actors' prices are their listed fees. For this Actor, Apify platform usage is billed separately by Apify on top of the event fees (at the default 256 MB a small run typically uses about $0.001 to $0.005), shown as "+ usage" in our row:

Actor 1 domain overview Traffic of 100 domains 1,000 ranked keywords of 1 domain Backlink / authority data Same price on every plan
All in one SEO toolkit Actor (~2,100 users; one flat fee per result row; its Store page says it does not run on the Apify Free plan) not on Free (paid plans $0.004 to 0.005) not on Free (paid plans $0.40 to 0.50) top keywords summary only (its Store page) ✓ ✗
Most used website traffic Actor (~4,100 users) $0.014 ($0.013 per result + $0.001 start) $1.30 not offered ✗ ✓
Low cost website traffic Actor (~3,000 users) $0.004 (paid plans $0.0011) $0.30 (paid plans $0.10) not offered ✗ ✗
Website traffic Actor (~1,500 users) $0.005 (paid plans $0.0015 to 0.002) $0.50 (paid plans $0.15 to 0.20) not offered ✗ ✗
Per keyword competitor keywords Actor (~270 users) not offered not offered $2.00 (+ $0.00005 start fee) ✗ ✓
Domain SEO Analyzer $0.017 + usage $0.105 + usage (Bulk traffic) $2.015 + usage page level counts only ✓

Prices from public Apify Store listings, checked September 2026.

Where others are cheaper, honestly:

  • A single domain summary on a paid Apify plan: the all in one Actor charges $0.004 to 0.005 per result vs our $0.017 (about 3 to 4× cheaper), and its summary also includes domain rating and backlink counts. If you only need a quick authority + traffic snapshot of a few domains on a paid plan, it is the cheaper choice.
  • Traffic checks on a paid plan: the low cost website traffic Actor (~3,000 users) charges $0.001 per domain plus a $0.0001 start fee on Bronze and above, so 100 domains cost about $0.10 there vs $0.105 (+ usage) with our Bulk traffic, about equal. On paid plans it stays cheaper up to about 150 domains per run (our $0.015 report fee is spread over more domains above that, e.g. 1,000 domains: $1.00 there vs $0.915 here). At 100 domains our Bulk traffic is cheaper than it only on the Apify Free plan ($0.30 there). The ~1,500-user website traffic Actor charges $0.0015 to 0.002 per domain on paid plans, so against it we become cheaper from about 14 to 25 domains per run; the most used ~4,100-user traffic Actor ($0.013 per domain + $0.001 start) is slightly cheaper for a single domain ($0.014 vs our $0.0159 Bulk traffic) and costs more from 2 domains per run.
  • Full ranked keyword lists: the per keyword Actor is about $0.015 cheaper per 1,000 keywords (no per report fee), plus our platform usage on top.

What you get here in exchange: traffic checks for 100 domains at $0.105, the full ranked keyword list (up to 10,000 rows per domain), keyword gap, SERP competitors, top pages, subdomains and monthly rank history back to October 2020 in the same Actor and output format, a small monthly allowance on the Apify Free plan, a stable id for comparing scheduled runs, and filters that run before rows are charged.

What is it used for?

  • Competitor research, find who competes with you in Google and how much traffic they get.
  • Keyword gap / content gap, list keywords competitors rank for and you don't, filtered to easy (low difficulty) keywords.
  • SEO monitoring, schedule a weekly Domain overview or Ranked keywords run and compare rows by id to spot new, lost and moved keywords.
  • Agency prospecting & reporting, check the traffic of hundreds of prospects at once with Bulk traffic, or add rank history charts to client reports.
  • Market sizing & due diligence, estimate the organic traffic of a list of companies and what it would cost as ads.
  • SERP landscape, see which domains dominate a keyword cluster with SERP competitors.

What are the limits?

  • Traffic and traffic value are estimates based on rankings, search volumes and click through rates.
  • Google only (no Bing/Yandex). Full backlink profiles (Backlink Checker) and on page audits (SEO Site Audit) are not part of this Actor.
  • Rank history is monthly and starts in October 2020.
  • The keyword gap compares your domain with each competitor separately (one report per competitor and view).
  • "All countries" works only for Domain overview, Top pages, Subdomains and Bulk traffic.
  • Options that do not apply to the chosen report are ignored with a warning in the log.

Questions about Domain SEO Analyzer

Is there a limit on the Apify Free plan, and is platform usage included?

Up to $0.25 of this Actor's results per calendar month, enough to try it. Apify pays developers nothing for Free plan usage while our data costs are real, so this keeps the Actor sustainable. Runs that reach the allowance stop cleanly and keep everything collected so far; the allowance resets on the 1st of the month. Any paid Apify plan has no limit. Apify platform usage (compute) is not included: Apify bills it separately (about $0.001 to $0.005 for a small run at the default 256 MB; shown per run in Apify Console).

Is it legal?

The Actor returns aggregated SEO metrics (rankings, search volumes, traffic estimates) about public websites and public Google results. It does not log in anywhere and collects no personal data. You are responsible for how you use the results.

How fresh is the data?

Search volumes are monthly averages with 12 months of history. Rankings are rechecked continuously, popular keywords more often than long tail ones. Each Ranked keywords row has serpUpdatedAt showing when the result page was last checked, and every row has scrapedAt.

How accurate is the traffic?

Traffic is an estimate: position × search volume × typical click through rate, summed over all keywords. It is great for comparing domains and spotting trends; it will not match your own analytics exactly.

Why did I get fewer results than maxResults?

The domain ranks for fewer keywords in that country, your filters removed rows, or your maximum cost per run was reached (see the log and RUN_SUMMARY). Small or new sites may have no data at all.

Why was I charged $0.0154 for a report with no rows?

Every report is a paid lookup on our side, even when the domain has no data or your filters remove every row. An empty report costs the $0.015 Report fee plus a $0.0004 "Report without results" fee (twice with Audience insights). Failed requests (errors) are free, but a request that times out after being sent is still charged as if the full page was returned, because it may already have been processed (unansweredRequests in RUN_SUMMARY). Check the domain spelling and loosen filters before running large lists.

How do I control my budget?

Set Maximum cost per run in the run options, lower maxResults and use filters (they run before rows are counted). The Actor never charges past your limit.

Can I schedule and monitor domains?

Yes. Create an Apify Schedule (e.g. weekly Domain overview or Ranked keywords) and compare runs by the stable id field. Rank history gives you monthly figures back to October 2020 in one run.

Which countries and languages are supported? Can I analyze a single page?

249 countries. Leave language empty to use the main language of the country, or set a 2-letter code (e.g. en for English results in Germany). Ranked keywords and Bulk traffic also accept full page URLs (e.g. https://example.com/blog/post).

Do you store the domains I analyze?

No. Domains, keywords and results are kept only in your own run's dataset and key value store in your Apify account, under your Apify data retention settings. We do not keep a copy, share your target lists or use them for anything else.

Where do I get help?

Open an issue on the Actor's Issues tab in Apify Console with your run link, and we will look into it.

Run Domain SEO Analyzer on Apify

The form opens with a working example. Free Apify accounts get a small monthly allowance.

Open on Apify