Ubersuggest Scraper avatar

Ubersuggest Scraper

Pricing

from $1.99 / 1,000 results

Go to Apify Store
Ubersuggest Scraper

Ubersuggest Scraper

Ubersuggest Scraper pulls domain SEO metrics - Moz domain authority, backlinks, referring domains, follow and nofollow split, organic keywords and traffic, keyword position buckets, traffic history and top pages. πŸ“Š For competitive SEO.

Pricing

from $1.99 / 1,000 results

Rating

0.0

(0)

Developer

Scrapers Hub

Scrapers Hub

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Categories

Share

The Ubersuggest Scraper pulls domain-level SEO metrics for any list of websites and returns them as structured JSON, ready for a spreadsheet, a dashboard, or a competitive analysis pipeline. For each domain you supply, the actor collects the Moz domain authority, backlink and referring-domain counts split by follow and nofollow, organic keyword and organic traffic figures with their prior-month comparisons, SERP position distribution across the top 3, top 10, top 50 and top 100, historical traffic series, top-country traffic breakdown, top pages and referral authority distribution.

That combination is what makes the dataset useful. Most free SEO checkers hand you a single authority score and stop. This Ubersuggest scraper returns the authority score alongside the keyword portfolio, the traffic history and the position distribution that explain it β€” which is the difference between knowing a competitor is strong and knowing why.

It runs as a lightweight HTTP client built on curl_cffi, using browser-grade TLS impersonation to reach the Ubersuggest API rather than driving a headless browser. There is no proxy configuration to set up, and country and language targeting are both exposed as inputs so you can pull metrics for the market you actually compete in.


πŸ“Š What Data Can You Extract with This Ubersuggest Scraper?

Each dataset item is a domain-level SEO record. The fields group into six analytical categories.

CategoryFieldsWhat it gives you
Record contextdata_captured_at, type, domain, country, last_updatedThe capture timestamp, the record type, the domain analysed, the country code the metrics were localised to, and when the underlying data was last refreshed
Authority & backlinksmoz_domain_authority, backlinks_count, referral_domains, follow_backlinks, nofollow_backlinksThe Moz domain authority score plus the size and composition of the backlink profile, split by follow status
Organic keywordsorganic_keywords, organic_keywords_last_monthHow many keywords the domain ranks for now and last month, giving you a month-on-month delta for free
Organic trafficorganic_traffic, organic_traffic_last_month, traffic_historyEstimated organic sessions now and last month, plus the historical series behind them
SERP position distributionkeywords_in_top_1_3, keywords_in_top_4_10, keywords_in_top_11_50, keywords_in_top_51_100How the keyword portfolio spreads across ranking bands β€” the shape of a domain's visibility, not just its size
Geography & pagestop_country_traffic, top_pages, referral_authority_distributionWhich countries the traffic comes from, which pages earn it, and how backlink authority is distributed across referring sources

The most informative field group is the position distribution. Two domains can report an identical organic_keywords total while being in completely different competitive positions: one with most of its portfolio in keywords_in_top_1_3 is capturing real traffic, while one concentrated in keywords_in_top_51_100 has visibility on paper and almost none in practice. Any credible competitor assessment has to read the distribution, and the ratio of keywords_in_top_1_3 to total keywords is one of the fastest quality signals available.


🌟 Key Features of the Ubersuggest Scraper

FeatureDescription
🌐 Batch domain analysisPass an array of domains in urls and each is analysed in turn, producing one comparable record per site
πŸ”€ Country and language targetingcountry and language localise the metrics, so figures reflect the market you actually compete in rather than a global default
πŸ”— Backlink profile compositionTotal backlinks, referring domains, and the follow versus nofollow split are returned as separate fields for link-quality assessment
πŸ“Š Month-on-month comparisonsOrganic keywords and organic traffic each come with a last-month counterpart, so trend direction is available without a second run
πŸ… SERP position bandsKeyword counts across top 1–3, 4–10, 11–50 and 51–100 reveal the shape of a domain's visibility
πŸ“‰ Historical traffic seriestraffic_history returns the traffic trend rather than a single point, which is what you need to distinguish growth from a spike
πŸ—ΊοΈ Geographic traffic splittop_country_traffic shows which markets actually drive a domain's organic sessions
πŸŽ›οΈ Toggleable data sectionsOverview, backlinks, backlinks overview, keywords and top pages each have their own boolean input
⚑ No browser, no proxy setupBuilt on curl_cffi with browser-grade TLS impersonation and requiring no proxy configuration from you

πŸš€ Why Choose This Ubersuggest Scraper?

Distribution, not just totals. The four position-band fields turn an abstract keyword count into an interpretable competitive picture. A domain with 40,000 keywords and 200 in the top three is a very different opponent from one with 8,000 keywords and 1,500 in the top three, and only the distribution tells you which you are facing.

Trend data built into a single run. organic_keywords_last_month, organic_traffic_last_month and traffic_history mean one run yields a direction, not just a snapshot. You can identify a domain that is climbing or sliding without having waited a month to collect a second data point.

Backlink quality, not only quantity. Splitting follow_backlinks from nofollow_backlinks and pairing raw backlinks_count with referral_domains exposes the difference between a link profile built from thousands of links on a handful of sites and one built from a genuinely broad set of referrers. referral_authority_distribution adds the authority spread on top.

Batch-native and automation-ready. urls takes a list, every record carries data_captured_at and domain, and the actor is callable through the Apify API and schedulable on cron. That makes running your whole competitive set weekly and appending to a time series a matter of configuration rather than code.


πŸ“₯ Input

{
"urls": ["make.com"],
"keyword": "ai automation",
"country": "us",
"language": "en",
"include_overview": true,
"include_backlinks": true,
"include_backlinks_overview": true,
"include_keywords": true,
"include_top_pages": false
}

πŸ”§ Ubersuggest Scraper Input Fields

FieldTypeRequiredDefaultDescription
urlsarray of stringsβœ… Yes["make.com"]List of target URLs.
keywordstringNoai automationTarget keyword.
countrystringNousCountry code (e.g., us).
languagestringNoenLanguage code (e.g., en).
include_overviewbooleanNotrueFetch overview data.
include_backlinksbooleanNotrueFetch backlinks data.
include_backlinks_overviewbooleanNotrueFetch backlinks overview.
include_keywordsbooleanNotrueFetch keywords data.
include_top_pagesbooleanNofalseFetch top pages data.

πŸ’‘ Input Examples

Single-domain overview

{
"urls": ["example.com"],
"keyword": "project management software",
"country": "us",
"language": "en",
"include_overview": true
}

Competitive set in a non-US market

{
"urls": ["competitor-a.de", "competitor-b.de", "competitor-c.de"],
"keyword": "projektmanagement software",
"country": "de",
"language": "de",
"include_overview": true,
"include_backlinks": true
}

Full pull including top pages

{
"urls": ["example.co.uk"],
"keyword": "crm software",
"country": "gb",
"language": "en",
"include_overview": true,
"include_backlinks": true,
"include_backlinks_overview": true,
"include_keywords": true,
"include_top_pages": true
}

πŸ“€ Output

Each dataset item is one domain-level SEO record.

{
"data_captured_at": "2026-01-15T10:22:41.318204",
"type": "domain",
"domain": "make.com",
"country": "US",
"last_updated": "2025-12-01T00:00:00",
"moz_domain_authority": 71,
"referral_domains": 18420,
"backlinks_count": 2914503,
"follow_backlinks": 2103877,
"nofollow_backlinks": 810626,
"organic_keywords": 184320,
"organic_keywords_last_month": 179804,
"organic_traffic": 1420553,
"organic_traffic_last_month": 1388210,
"keywords_in_top_1_3": 6210,
"keywords_in_top_4_10": 14880,
"keywords_in_top_11_50": 62430,
"keywords_in_top_51_100": 100800
}

🧾 Ubersuggest Scraper Output Fields

FieldTypeDescription
data_captured_atstring | nullWhen the data captured happened.
typestring | nullType of the item.
domainstring | nullDomain name of the item.
countrystring | nullCountry.
last_updatedstring | nullLast updated of the item.
moz_domain_authoritynumber | nullMoz domain authority of the item.
referral_domainsnumber | nullReferral domains of the item.
backlinks_countinteger | nullNumber of backlinks.
follow_backlinksstring | nullFollow backlinks of the item.
nofollow_backlinksstring | nullNofollow backlinks of the item.
organic_keywordsnumber | nullOrganic keywords of the item.
organic_keywords_last_monthnumber | nullOrganic keywords last month of the item.
organic_trafficnumber | nullOrganic traffic of the item.
organic_traffic_last_monthnumber | nullOrganic traffic last month of the item.
keywords_in_top_1_3number | nullKeywords in top 1 3 of the item.
keywords_in_top_4_10number | nullKeywords in top 4 10 of the item.
keywords_in_top_11_50number | nullKeywords in top 11 50 of the item.
keywords_in_top_51_100number | nullKeywords in top 51 100 of the item.
traffic_historyarray | nullTraffic history of the item.
top_country_trafficarray | nullTop country traffic of the item.
top_pagesarray | nullTop pages of the item.
referral_authority_distributionobject | nullReferral authority distribution of the item.

traffic_history, top_country_traffic, top_pages and referral_authority_distribution are nested structures. If you export to CSV they will be flattened or serialised, so take JSON when you intend to work with them programmatically.


πŸ’» How to Use the Ubersuggest Scraper (Step by Step)

Step 1: Open the Ubersuggest Scraper on Apify

Sign in to Apify and open the actor page. Create a free account if you do not have one β€” an API token will also be needed if you intend to call the Ubersuggest scraper from a script or wire it into a reporting pipeline, which is how most SEO teams end up using it. Click Try for free or Start to open the input form. Every field arrives with a working default, so a demonstration run against make.com requires no configuration at all.

Step 2: Build your domain list

urls is the only required input and takes one domain per line in the string list editor. Bare domains such as example.com are the natural unit here, since the metrics returned are domain-level rather than page-level. Assemble a list that means something analytically: your own site plus four or five direct competitors gives you a comparable cohort, whereas a random assortment of domains produces numbers with nothing to compare them against. Keep the list stable across runs so your time series stays consistent.

Step 3: Set the target keyword

keyword defines the focus term for the analysis and defaults to ai automation. Choose the head term for the category you compete in β€” the phrase you would most want to rank for, not a long-tail variant. It is worth running the same domain list against two or three different head terms when your product spans several categories, since a domain's competitive position can look strong in one category and weak in an adjacent one.

Step 4: Choose country and language

country takes a two-letter code such as us, gb or de, and language takes a language code such as en or de. These localise the metrics, and getting them right matters more than it might appear. Organic traffic and keyword counts for a European competitor pulled with country set to us will understate their actual position substantially. Match both fields to the market you are analysing, and if you compete in several markets, run the same domain list once per market and keep the results separate.

Step 5: Select which data sections to fetch

Five boolean toggles control what the run collects: include_overview, include_backlinks, include_backlinks_overview, include_keywords and include_top_pages. The first four default to enabled and include_top_pages defaults to disabled. The overview section is what populates the core authority, backlink, keyword and traffic metrics, so leave it on unless you have a specific reason not to. Turning off sections you do not need keeps runs leaner.

Step 6: Run the Ubersuggest scraper and check the log

Click Start. The log reports which domain is being fetched as the run proceeds and records any domain it could not collect data for. Watching it on a first run is worthwhile: a domain that fails usually indicates a typo, a domain with too little search presence to have metrics, or a transient upstream issue that a retry will clear.

Step 7: Export and build your comparison

Open Storage β†’ Dataset when the run finishes. Export to JSON if you want the nested traffic_history, top_pages and top_country_traffic structures intact, or to CSV or Excel for a flat comparison table of the scalar metrics. The first derived column worth adding is the ratio of keywords_in_top_1_3 to organic_keywords β€” it normalises portfolio quality across domains of very different sizes and usually reorders a naive ranking by keyword count immediately.


πŸ”Œ API Access & Integrations

Call the Ubersuggest scraper from your own code or scheduler.

curl -X POST "https://api.apify.com/v2/acts/scrapers-hub~ubersuggest-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"urls": ["make.com", "zapier.com"],
"keyword": "ai automation",
"country": "us",
"language": "en",
"include_overview": true
}'

Python, using the official client:

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run_input = {
"urls": ["make.com", "zapier.com", "n8n.io"],
"keyword": "workflow automation",
"country": "us",
"language": "en",
"include_overview": True,
"include_backlinks": True,
}
run = client.actor("scrapers-hub/ubersuggest-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
total = item.get("organic_keywords") or 0
top3 = item.get("keywords_in_top_1_3") or 0
share = (top3 / total * 100) if total else 0
print(f"{item['domain']}: DA {item['moz_domain_authority']}, "
f"{total} keywords, {share:.1f}% in top 3")

The Ubersuggest scraper also connects to Zapier, Make, Google Sheets and Slack through Apify's integrations, and a webhook on run completion can push each refreshed SEO snapshot into your reporting stack automatically.


πŸ’‘ Best Use Cases for Ubersuggest SEO Data

πŸ† Competitor SEO benchmarking

Run your domain alongside your closest competitors with identical keyword, country and language settings, then compare moz_domain_authority, organic_keywords, organic_traffic and the four position bands side by side. Identical parameters are what make the comparison valid β€” mixing country codes across a cohort produces a table that looks comparable and is not.

referral_domains, follow_backlinks, nofollow_backlinks and referral_authority_distribution describe the shape of a link profile. A competitor with far more referring domains than you at similar authority indicates a breadth gap; one with similar domains but higher authority indicates a quality gap. The two call for completely different outreach strategies.

πŸ“‰ Organic traffic trend monitoring

Schedule weekly or monthly runs across a fixed domain list and accumulate organic_traffic, organic_keywords and data_captured_at into a time series. Pair that with traffic_history from each run and you can distinguish a genuine algorithmic hit from ordinary seasonal variation, which a single snapshot never reveals.

🎯 Content gap and keyword portfolio analysis

The position bands show where a competitor's opportunity lies. A domain with a large keywords_in_top_11_50 count has a substantial set of near-miss rankings, and those pages are where their next traffic gains will come from. Watching that band across scheduled runs is an early indicator of where a competitor is about to strengthen.

🌍 International SEO and market prioritisation

Run the same domains with different country and language combinations, and read top_country_traffic to see where organic sessions actually originate. This exposes markets where a competitor is dominant and markets where the category is still open, which is directly useful when deciding where to invest in localisation.

πŸ’Ό Agency reporting and client pitches

The combination of authority score, keyword portfolio, traffic estimate and position distribution is exactly the evidence base a client audit or a new-business pitch needs. Because every record carries data_captured_at and domain, reports remain reproducible and auditable months later.

πŸ” Acquisition and domain due diligence

When evaluating a site for purchase, moz_domain_authority, backlinks_count, the follow-to-nofollow ratio, organic_traffic and traffic_history together indicate whether organic performance is durable or declining. A domain with strong headline authority but a falling traffic history is a materially different proposition from one on an upward trend.


βš™οΈ Tips for Better Ubersuggest Scraping Results

  • Keep country and language identical across a comparison set. Mixing localisation parameters within a competitive cohort silently invalidates the comparison, because the underlying metrics are market-specific.
  • Use bare domains rather than deep URLs in urls. The metrics returned are domain-level, so supplying a full article URL adds no precision and can confuse the analysis.
  • Compute the top-3 share as a derived metric. keywords_in_top_1_3 divided by organic_keywords normalises portfolio quality across domains of different sizes and is far more informative than either number alone.
  • Schedule runs on a fixed cadence and keep the domain list stable. Consistency is what makes the resulting time series interpretable; adding and removing domains between runs makes trend comparison unreliable.
  • Export to JSON when you need the nested fields. traffic_history, top_pages, top_country_traffic and referral_authority_distribution are structured objects and arrays, and CSV export flattens or serialises them.
  • Treat traffic and keyword figures as estimates. These are modelled metrics derived from third-party data, not measurements from a site's own analytics. They are reliable for relative comparison between domains and much less so as absolute values.

πŸ› οΈ Troubleshooting

A domain returned no data. Check the spelling first, then whether the domain has enough search presence to have metrics at all β€” very new or very small sites frequently do not. The run log records which domains could not be collected. If a domain you know is established fails repeatedly, retry the run, since transient upstream failures do occur.

The nested fields are empty in my CSV export. traffic_history, top_pages, top_country_traffic and referral_authority_distribution are nested structures, and CSV cannot represent them natively. Export to JSON instead, or flatten the specific values you need in a post-processing step before writing CSV.

Traffic numbers do not match my Google Analytics. They are not supposed to. These are modelled estimates of organic search traffic derived from third-party keyword and ranking data, whereas Analytics measures actual sessions across all channels. Use the scraped figures for competitive comparison, and your own analytics for absolute measurement of your own site.

top_pages is null even though I enabled the toggle. include_top_pages defaults to false, so first confirm it was actually set to true in the run input. Beyond that, top-pages data is not available for every domain, and a null value legitimately means the upstream source had nothing to return for that site.

Metrics look stale compared with what I expect. Check last_updated, which reports when the underlying data was refreshed, separately from data_captured_at, which is when your run collected it. SEO datasets of this kind are refreshed on a periodic cycle rather than continuously, so a gap between the two timestamps is normal.


❓ Frequently Asked Questions About Ubersuggest SEO Scraping

What does the Ubersuggest Scraper do? It collects domain-level SEO metrics for a list of websites β€” domain authority, backlink counts and composition, referring domains, organic keyword and traffic figures with month-on-month comparisons, SERP position distribution, traffic history, top-country traffic, top pages and referral authority distribution β€” and returns them as structured JSON.

Do I need an Ubersuggest account or subscription? No. The actor does not require you to supply any Ubersuggest credentials.

How many domains can I analyse in one run? urls accepts a list and the actor processes each entry in turn. There is no fixed cap imposed by the actor, though larger lists naturally take longer to complete.

What does the keyword input actually affect? It sets the target keyword the analysis is focused on. It defaults to ai automation and should be set to the head term for the category you are analysing.

Which country codes does the Ubersuggest scraper accept? country takes a standard two-letter country code such as us, gb, de or au, and language takes a language code such as en or de. Match both to the market you are analysing.

Is the organic traffic figure accurate? It is an estimate derived from keyword rankings and modelled click-through rates, not a measurement of actual sessions. It is dependable for comparing domains against each other and should not be treated as a substitute for a site's own analytics.

What is the difference between backlinks_count and referral_domains? backlinks_count is the total number of individual links pointing at the domain, while referral_domains counts the distinct websites those links come from. A high backlink count with few referring domains indicates a narrow, repetitive link profile.

Why are follow and nofollow backlinks reported separately? Because they carry different weight. Follow links pass ranking signals; nofollow links generally do not. Splitting them lets you assess the genuinely useful portion of a link profile rather than a headline total.

What do the keyword position bands mean? keywords_in_top_1_3, keywords_in_top_4_10, keywords_in_top_11_50 and keywords_in_top_51_100 count how many of a domain's ranking keywords sit in each SERP position range. The distribution reveals whether visibility translates into traffic.

Do I need to configure proxies for this Ubersuggest scraper? No. The actor makes direct HTTP requests using curl_cffi with browser-grade TLS impersonation, and there is no proxy configuration in the input schema.

Can I schedule the Ubersuggest scraper to run automatically? Yes. Apify's scheduler runs the actor on any cron expression, which is the standard way to build an SEO time series. Attach a webhook if you want each completed run to feed a dashboard or reporting tool.

Can I export the results to Google Sheets? Yes. Apify's Google Sheets integration writes dataset contents directly into a spreadsheet, and CSV, Excel, JSON and XML exports are all available from the Storage tab.

What is the difference between data_captured_at and last_updated? data_captured_at is the timestamp of your run. last_updated reflects when the underlying SEO dataset was itself refreshed. The two will normally differ, since the source data is updated on a periodic cycle.

How often should I run the Ubersuggest scraper for trend tracking? Monthly suits most competitive monitoring, since the underlying metrics do not change meaningfully day to day. Weekly is reasonable during an active campaign when you want a finer-grained view of movement.

Is scraping SEO data legal? The actor collects publicly accessible aggregate metrics about websites rather than personal data. You remain responsible for compliance with applicable terms of service and law in your jurisdiction, particularly if you redistribute the collected metrics commercially.


πŸ†˜ Support & Feedback

If a run fails, a domain consistently returns nothing, or a field stops populating, open a ticket on the Issues tab of the actor page and include the run ID and the exact input you used.

Need something this Ubersuggest scraper does not currently cover, such as page-level metrics, a different data source, or delivery straight into your own warehouse? Email scraperhubapi@gmail.com and describe what you are building.

If the Ubersuggest Scraper is useful to your SEO work, please leave a review on its Apify page. Ratings and written feedback shape which improvements are prioritised next.


βš–οΈ Disclaimer

The Ubersuggest Scraper collects publicly available aggregate SEO metrics about websites. It does not access private accounts, analytics properties, or any authenticated data source, and the figures it returns are third-party estimates rather than measurements taken from the analysed sites themselves.

You are responsible for how you use the data this Ubersuggest scraper produces, including compliance with applicable terms of service and with any restrictions on the commercial redistribution of third-party SEO metrics. The metrics returned describe websites rather than people, so personal data is not normally involved; where a domain belongs to an individual, such as a personal site or a sole trader, handle the record in line with the GDPR, UK GDPR and equivalent privacy law in your jurisdiction. Traffic, keyword and authority values are estimates and should not be relied upon as the sole basis for financial or acquisition decisions.

This actor is an independent tool and is not affiliated with, endorsed by, or connected to Ubersuggest, Neil Patel Digital, or Moz. All trademarks referenced belong to their respective owners.

If you believe data collected through this actor relates to you and you would like it removed, contact scraperhubapi@gmail.com with the details and the request will be handled promptly.