Ubersuggest Scraper
Pricing
from $0.80 / 1,000 seo data
Ubersuggest Scraper
Collect public Ubersuggest SEO data from domains, URLs, and keyword seeds. Export overviews, ranking keywords, top pages, backlinks, keyword metrics, suggestions, and SERP URLs.
Pricing
from $0.80 / 1,000 seo data
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
29
Total users
4
Monthly active users
10 days ago
Last modified
Categories
Share
🔎 Ubersuggest SEO research for domains and keywords
SEO teams, agencies, content planners, and developers can collect public SEO data from Ubersuggest for domains, full URLs, and keyword seeds. The Actor saves structured dataset rows for domain overviews, ranking keywords, top pages, backlinks, keyword metrics, keyword suggestions, and SERP results, so you can compare sites and plan content from one dataset.
Add one or more website targets, keyword seeds, or both. Choose the rows to save, set a country and language, and use optional per-surface limits. Source metrics that are not available stay null when the schema allows it.
- Check positions and URLs for a seed with SERP results.
- Compare submitted sites with Competitor SEO analysis.
- Review site measures with Domain authority checker.
- Review link data with Backlink analysis.
- Find pages with Top pages.
- Review domain rankings with Ranking keywords.
- Expand a seed with Keyword suggestions.
📊 Ubersuggest SEO rows
Each saved row has a rowType value that identifies its source surface. Website rows include matchedInput, domain, country, and language. Keyword rows include matchedInput, seedKeyword, country, and language. Optional source metrics can be null when Ubersuggest does not return them.
Available row types
| Row type | What it contains |
|---|---|
domain_overview | Authority, referring domains, backlinks, organic and paid traffic and keyword counts, ranking buckets, traffic history, and country traffic. |
domain_keyword | A keyword the submitted domain or URL ranks for, with position, landing URL, volume, CPC, currency, and SEO difficulty. |
top_page | A ranked page URL with title, estimated traffic, backlinks, referring domains, social shares, and rank. |
backlinks_overview | One backlink summary for the submitted domain or URL. |
backlink | One backlink source with linked URL, anchor, title, authority measures, spam score, dates, nofollow status, and rank. |
keyword_metric | Metrics for a submitted seed, including trend, global volume, device share, and source freshness when available. |
keyword_suggestion | One related keyword idea with volume, CPC, competition, difficulty, intent, and freshness when available. |
serp_result | One URL-backed SERP result for a submitted keyword seed. |
🚀 Run a public Ubersuggest SEO check
- Add one or more values to
Domains or URLs,Keyword seeds, or both. - Keep
CountryasusandLanguageasen, or choose the locale you need. - Choose the domain and keyword row types to save.
- Run the Actor and open the default dataset.
Limits are maximums for each submitted domain, URL, or keyword seed. Leave any limit empty to return all available rows until the source is exhausted. A source can still return fewer rows when it has fewer matching rows or does not expose a section.
⚙️ Input
Use domains or URLs for website rows, keyword seeds for keyword rows, or both. The country and language apply to each source request.
Input fields
| Field | Type | What it does |
|---|---|---|
domainsOrUrls | array of strings | Adds domains or full URLs for domain overview, ranking keyword, top page, backlink overview, and backlink rows. |
keywords | array of strings | Adds seed keywords for keyword metrics, keyword suggestions, and optional SERP rows. |
country | string | Sets the two-letter country code for locale-specific data. The default is us. |
language | string | Sets the two-letter language code for locale-specific data. The default is en. |
includeOverview | boolean | Saves domain overview rows with authority, backlink totals, traffic, ranking buckets, history, and country traffic when available. |
includeDomainKeywords | boolean | Saves ranking-keyword rows with position, landing URL, volume, CPC, currency, and SEO difficulty when available. |
maxDomainKeywords | integer | Sets an optional positive limit for ranking-keyword rows per domain or URL. Leave it empty to return all available rows until the source is exhausted. |
includeTopPages | boolean | Saves ranked page rows with URLs, titles, traffic, backlinks, referring domains, and social shares when available. |
maxTopPages | integer | Sets an optional positive limit for top-page rows per domain or URL. Leave it empty to return all available rows until the source is exhausted. |
includeBacklinksOverview | boolean | Saves one backlink overview row per domain with authority, referring domains, backlink totals, and follow or nofollow counts when available. |
includeBacklinks | boolean | Saves individual backlink rows with source and target URLs, anchors, authority, spam score, dates, and nofollow status when available. |
maxBacklinks | integer | Sets an optional positive limit for backlink rows per domain or URL. Leave it empty to return all available rows until the source is exhausted. |
includeKeywordSuggestions | boolean | Saves related keyword ideas with volume, CPC, competition, difficulty, and intent when available. |
maxKeywordSuggestions | integer | Sets an optional positive limit for suggestion rows per seed. Leave it empty to return all available rows until the source is exhausted. |
includeSerp | boolean | Saves URL-backed SERP rows with position, result type, estimated clicks, authority, and social shares when available. |
maxSerpResults | integer | Sets an optional positive limit for SERP rows per seed. Leave it empty to return all available rows until the source is exhausted. |
The include fields control which row types are saved. A limit is a maximum, not a promise that the source will return that many rows.
Example input
This is copied from the public input of a successful current-beta default-input run.
{"domainsOrUrls": [],"keywords": ["automation"],"country": "us","language": "en","includeOverview": true,"includeTopPages": true,"includeBacklinksOverview": true,"includeBacklinks": false,"includeKeywordSuggestions": true,"maxTopPages": 10,"maxBacklinks": 25,"maxKeywordSuggestions": 25}
🧾 Output
The results field links to the default dataset. Each saved row has a rowType value, and the tables below describe every row shape in the public dataset schema. A source metric can be null when Ubersuggest does not return it.
Dataset link
| Field | Type | What it does |
|---|---|---|
results | string | Links to the default dataset items for the run. |
Domain overview
| Field | Type | What it does |
|---|---|---|
rowType | string | Always domain_overview. |
matchedInput | string | Submitted domain or URL that produced the row. |
domain | string | Domain described by the metrics. |
country | string | Country code used for the request. |
language | string | Language code used for the request. |
mozDomainAuthority | number or null | MOZ domain authority when returned. |
referringDomains | integer or null | Number of referring domains. |
backlinks | integer or null | Total backlinks. |
followBacklinks | integer or null | Follow backlinks. |
nofollowBacklinks | integer or null | Nofollow backlinks. |
organicKeywords | integer or null | Organic keyword count. |
organicTraffic | integer or null | Estimated organic traffic. |
paidKeywords | integer or null | Paid keyword count. |
paidTraffic | integer or null | Estimated paid traffic. |
keywordsInTop1To3 | integer or null | Organic keywords in positions 1 through 3. |
keywordsInTop4To10 | integer or null | Organic keywords in positions 4 through 10. |
keywordsInTop11To50 | integer or null | Organic keywords in positions 11 through 50. |
keywordsInTop51To100 | integer or null | Organic keywords in positions 51 through 100. |
trafficHistory | array of objects | Monthly traffic and ranking-bucket history. |
trafficHistory[].date | string | Month for the history point. |
trafficHistory[].organicTraffic | integer or null | Estimated organic traffic for that month. |
trafficHistory[].organicKeywords | integer or null | Organic keyword count for that month. |
trafficHistory[].keywordsInTop1To3 | integer or null | Keywords in positions 1 through 3 for that month. |
trafficHistory[].keywordsInTop4To10 | integer or null | Keywords in positions 4 through 10 for that month. |
trafficHistory[].keywordsInTop11To50 | integer or null | Keywords in positions 11 through 50 for that month. |
trafficHistory[].keywordsInTop51To100 | integer or null | Keywords in positions 51 through 100 for that month. |
topCountryTraffic | array of objects | Country traffic breakdown. |
topCountryTraffic[].countryCode | string | Country code for the traffic entry. |
topCountryTraffic[].country | string or null | Country name when returned. |
topCountryTraffic[].traffic | integer or null | Estimated traffic from that country. |
topCountryTraffic[].trafficShare | number or null | Share of traffic from that country. |
This genuine row is from a successful current-beta domain run.
{"rowType": "domain_overview","matchedInput": "iwantjewels.com","domain": "iwantjewels.com","country": "us","language": "en","mozDomainAuthority": 28,"referringDomains": 67,"backlinks": 109,"followBacklinks": 103,"nofollowBacklinks": 6,"organicKeywords": 1,"organicTraffic": 0,"paidKeywords": 0,"paidTraffic": 0,"keywordsInTop1To3": 0,"keywordsInTop4To10": 0,"keywordsInTop11To50": 1,"keywordsInTop51To100": 0,"trafficHistory": [{"date": "2025-12-01","organicTraffic": 0,"organicKeywords": 1,"keywordsInTop1To3": 0,"keywordsInTop4To10": 0,"keywordsInTop11To50": 0,"keywordsInTop51To100": 1},{"date": "2026-04-01","organicTraffic": 0,"organicKeywords": 1,"keywordsInTop1To3": 0,"keywordsInTop4To10": 0,"keywordsInTop11To50": 1,"keywordsInTop51To100": 0},{"date": "2026-05-01","organicTraffic": 0,"organicKeywords": 1,"keywordsInTop1To3": 0,"keywordsInTop4To10": 0,"keywordsInTop11To50": 1,"keywordsInTop51To100": 0}],"topCountryTraffic": [{"countryCode": "US","country": "United States","traffic": 0,"trafficShare": null}]}
Domain ranking keyword
| Field | Type | What it does |
|---|---|---|
rowType | string | Always domain_keyword. |
matchedInput | string | Submitted domain or URL that produced the row. |
domain | string | Domain that ranks for the keyword. |
country | string | Country code used for the request. |
language | string | Language code used for the request. |
rank | integer | Row order in the collected ranking-keyword list. |
keyword | string | Keyword the domain ranks for. |
rankingType | string or null | Source ranking type, such as organic or paid. |
position | integer or null | Search result position for the keyword. |
url | string or null | Ranking landing URL when returned. |
volume | integer or null | Keyword search volume. |
cpc | number or null | Keyword cost per click. |
currency | string or null | Currency code for CPC values. |
seoDifficulty | number or null | SEO difficulty score. |
This genuine row is from the same successful current-beta domain run.
{"rowType": "domain_keyword","matchedInput": "iwantjewels.com","domain": "iwantjewels.com","country": "us","language": "en","rank": 1,"keyword": "studs or hoops","rankingType": "organic","position": 45,"url": "http://iwantjewels.com/resources/earring-style-guides/stud-vs-hoop-earrings","volume": 40,"cpc": 0,"currency": "USD","seoDifficulty": 12}
Top page
| Field | Type | What it does |
|---|---|---|
rowType | string | Always top_page. |
matchedInput | string | Submitted domain or URL that produced the row. |
domain | string | Domain the page belongs to. |
country | string | Country code used for the request. |
language | string | Language code used for the request. |
rank | integer | Page rank in the top-pages list. |
pageUrl | string | Top page URL. |
title | string or null | Page title when returned. |
traffic | integer or null | Estimated page traffic. |
backlinks | integer or null | Backlinks reported for the page. |
referringDomains | integer or null | Referring domains reported for the page. |
facebookShares | integer or null | Facebook share count when returned. |
pinterestShares | integer or null | Pinterest share count when returned. |
redditShares | integer or null | Reddit share count when returned. |
This genuine row is from the same successful current-beta domain run.
{"rowType": "top_page","matchedInput": "iwantjewels.com","domain": "iwantjewels.com","country": "us","language": "en","pageUrl": "http://www.iwantjewels.com/resources/earring-style-guides/stud-vs-hoop-earrings","title": "Stud vs Hoop Earrings: Which Is Better?","traffic": 1,"backlinks": 0,"referringDomains": 0,"facebookShares": 0,"pinterestShares": 0,"redditShares": 0,"rank": 1}
Backlink overview
| Field | Type | What it does |
|---|---|---|
rowType | string | Always backlinks_overview. |
matchedInput | string | Submitted domain or URL that produced the row. |
domain | string | Domain described by the backlink summary. |
country | string | Country code used for the request. |
language | string | Language code used for the request. |
mozDomainAuthority | number or null | MOZ domain authority when returned. |
referringDomains | integer or null | Number of referring domains. |
backlinks | integer or null | Total backlinks. |
followBacklinks | integer or null | Follow backlinks. |
nofollowBacklinks | integer or null | Nofollow backlinks. |
referringDomainsGovEdu | integer or null | Government or education referring-domain count when returned. |
This genuine row is from the same successful current-beta domain run.
{"rowType": "backlinks_overview","matchedInput": "iwantjewels.com","domain": "iwantjewels.com","country": "us","language": "en","mozDomainAuthority": 9,"referringDomains": 68,"backlinks": 339,"followBacklinks": 0,"nofollowBacklinks": 6,"referringDomainsGovEdu": 0}
Backlink
| Field | Type | What it does |
|---|---|---|
rowType | string | Always backlink. |
matchedInput | string | Submitted domain or URL that produced the row. |
domain | string | Domain whose backlink list contains the row. |
country | string | Country code used for the request. |
language | string | Language code used for the request. |
rank | integer | Row order in the collected backlink list. |
urlFrom | string | Page linking to the target URL. |
urlTo | string or null | Linked URL on the submitted domain. |
anchor | string or null | Anchor text shown for the backlink. |
title | string or null | Title of the linking page when returned. |
mozDomainAuthority | number or null | Authority value for the linking domain. |
mozPageAuthority | number or null | Authority value for the linking page. |
mozSpamScore | number or null | Spam score for the linking page or domain. |
firstSeen | string or null | Date Ubersuggest first saw the backlink. |
lastVisited | string or null | Date Ubersuggest last visited the backlink. |
dateLost | string or null | Date the backlink was lost, or null for an active link. |
noFollow | boolean or null | Whether the backlink is marked nofollow when returned. |
This genuine row is from the same successful current-beta domain run.
{"rowType": "backlink","matchedInput": "iwantjewels.com","domain": "iwantjewels.com","country": "us","language": "en","urlFrom": "https://cvillico.com/all/1490/1.html","urlTo": "https://iwantjewels.com/","anchor": "high quality dofollow backlinks da 50 pa 40 premium pbn network service iwantjewels.com rank first page google fast seo link building buy backlinks online cheap","title": "🏆🏆Boost your Google rankings with Premium PBN & Link Building🏆🏆","mozDomainAuthority": 63,"mozPageAuthority": 22,"mozSpamScore": 7,"noFollow": false,"firstSeen": "2026-09-02","lastVisited": "2026-09-02","dateLost": null,"rank": 1}
Keyword metric
| Field | Type | What it does |
|---|---|---|
rowType | string | Always keyword_metric. |
matchedInput | string | Submitted keyword seed that produced the row. |
seedKeyword | string | Submitted keyword seed. |
keyword | string | Keyword described by the metrics. |
country | string | Country code used for the request. |
language | string | Language code used for the request. |
volume | integer or null | Keyword search volume. |
cpc | number or null | Keyword cost per click. |
currency | string or null | Currency code for CPC values. |
competition | number or null | Paid search competition value. |
seoDifficulty | number or null | SEO difficulty score. |
paidDifficulty | number or null | Paid difficulty score. |
searchIntent | array of strings or null | Search intent labels from the source. |
searchIntent[] | string | One source-provided search intent label. |
monthlyTrend | object or null | Monthly search volume keyed by source month. |
monthlyTrend.<YYYYMM> | integer | Search volume for one source month. |
globalVolume | integer or null | Global keyword search volume. |
globalVolumeBreakdown | object or null | Global volume by source locale key plus other and total. |
globalVolumeBreakdown.<locale> | integer | Volume for one source locale key. |
globalVolumeBreakdown.other | integer | Volume grouped into other locales. |
globalVolumeBreakdown.total | integer | Total global volume in the breakdown. |
desktopShare | number or null | Desktop traffic share for the keyword. |
mobileShare | number or null | Mobile traffic share for the keyword. |
updatedAt | string or null | Source freshness timestamp. |
This genuine row is from a successful current-beta keyword run.
{"rowType": "keyword_metric","matchedInput": "seo","seedKeyword": "seo","country": "us","language": "en","keyword": "seo","volume": 110000,"cpc": 30.09,"currency": "USD","competition": 0.31,"seoDifficulty": 95,"paidDifficulty": 31,"searchIntent": ["1"],"monthlyTrend": {"202604": 74000,"202605": 60500,"202606": 60500,"202607": 110000},"globalVolume": 673000,"globalVolumeBreakdown": {"en:2076": 27100,"en:2586": 40500,"en:2392": 40500,"hi:2356": 90500,"en:2840": 110000,"other": 364400,"total": 673000},"desktopShare": 0.7687747035573123,"mobileShare": 0.23122529644268774,"updatedAt": "2026-09-29T10:49:20.000Z"}
Keyword suggestion
| Field | Type | What it does |
|---|---|---|
rowType | string | Always keyword_suggestion. |
matchedInput | string | Submitted keyword seed that produced the row. |
seedKeyword | string | Submitted keyword seed. |
keyword | string | Suggested keyword returned by Ubersuggest. |
country | string | Country code used for the request. |
language | string | Language code used for the request. |
rank | integer | Suggestion rank in the collected list. |
volume | integer or null | Keyword search volume. |
cpc | number or null | Keyword cost per click. |
currency | string or null | Currency code for CPC values. |
competition | number or null | Paid search competition value. |
seoDifficulty | number or null | SEO difficulty score. |
paidDifficulty | number or null | Paid difficulty score. |
searchIntent | array of strings or null | Search intent labels from the source. |
searchIntent[] | string | One source-provided search intent label. |
updatedAt | string or null | Source freshness timestamp. |
This genuine row is from the same successful current-beta keyword run.
{"rowType": "keyword_suggestion","matchedInput": "seo","seedKeyword": "seo","country": "us","language": "en","keyword": "seo","rank": 1,"volume": 110000,"cpc": 30.09,"currency": "USD","competition": 0.31,"seoDifficulty": 19,"paidDifficulty": 31,"searchIntent": ["1"],"updatedAt": "2026-09-27T00:13:55.000Z"}
SERP result
| Field | Type | What it does |
|---|---|---|
rowType | string | Always serp_result. |
matchedInput | string | Submitted keyword seed that produced the row. |
seedKeyword | string | Submitted keyword seed. |
country | string | Country code used for the request. |
language | string | Language code used for the request. |
position | integer | SERP position returned by Ubersuggest. |
resultType | string or null | SERP result type, such as organic or AI overview, when returned. |
url | string | Ranking result URL. |
title | string or null | SERP result title when returned. |
domain | string or null | Domain of the result URL. |
estimatedClicks | integer or null | Estimated monthly clicks for the result. |
domainAuthority | number or null | Domain authority value for the result. |
facebookShares | integer or null | Facebook share count when returned. |
pinterestShares | integer or null | Pinterest share count when returned. |
redditShares | integer or null | Reddit share count when returned. |
This genuine row is from the same successful current-beta keyword run.
{"rowType": "serp_result","matchedInput": "seo","seedKeyword": "seo","country": "us","language": "en","position": 2,"resultType": "organic","url": "http://developers.google.com/search/docs/fundamentals/seo-starter-guide","title": "Search Engine Optimization (SEO) Starter Guide","domain": "developers.google.com","estimatedClicks": 19394,"domainAuthority": 95,"facebookShares": 9,"pinterestShares": 4,"redditShares": null}
💳 Pricing
This Actor uses pay-per-event pricing. A charge applies to each saved SEO entry, including a domain overview, ranking keyword, top page, backlink overview, backlink, keyword metric, keyword suggestion, or SERP result.
Use the result toggles and limits to control which rows the run can save. Ubersuggest values can vary by country, language, collection time, and source availability. A source may return fewer rows than a limit, and optional metrics can be null when the source does not provide them. A mixed run can return partial sections if Ubersuggest temporarily limits a report.
Review high-risk SEO or business decisions against the source data and your own judgment.
🔌 Integrations
Use the default dataset in the Apify Console or read it through the Apify API. Filter the saved row types, export the dataset as JSON, CSV, Excel, XML, RSS, or HTML, and send selected data to your SEO workflow.
This workflow video shows an Apify integration path for using Actor data in a larger process. For repeat monitoring, schedule the same domain or keyword inputs and compare exported datasets over time. Values can change by market, language, source availability, and collection time.
❓ FAQ
Why can an output field be null?
Some source metrics are optional. When Ubersuggest does not return one, the Actor keeps the field as null when the output shape allows it instead of inventing a value.
Why did a target return fewer rows than my limit?
A limit is a maximum, not a promise that every target has that many available rows. Narrow keywords, low-visibility domains, source availability, or a temporarily limited section can produce fewer rows.
Which inputs produce keyword rows?
Add one or more keywords to get keyword metric rows. Turn on keyword suggestions for suggestion rows, and turn on includeSerp for URL-backed SERP rows.
Why are some SERP results missing?
The Actor saves SERP rows only when the source provides a real result URL. Source placeholders without a result page are skipped.
Can I submit domains and keyword seeds together?
Yes. Add values to both domainsOrUrls and keywords. The Actor can save the selected website and keyword row types in the same dataset.
Can I choose a country and language?
Yes. Use two-letter Country and Language values, such as us and en, to request locale-specific Ubersuggest data.
Does this Actor access private Ubersuggest projects or raw API responses?
No. It collects public Ubersuggest SEO data and returns structured rows. It does not access private projects, saved dashboards, rank tracking campaigns, site audit reports, logged-in reports, or raw upstream payloads.
Do I need a Ubersuggest account?
No. The Actor is designed to access public results without asking you for Ubersuggest credentials, cookies, an API key, or a paid Ubersuggest account.
Can I export the data?
Yes. You can export the Apify dataset as JSON, CSV, Excel, XML, RSS, or HTML, or read it through the Apify API.
📝 Changelog
v0.1
- Added ranking keywords, keyword metrics, SERP results, richer domain overview data, and lower pay-per-result pricing.
v0.0
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- MOZ Scraper ↗ - Compare public Moz authority, Page Authority, spam score, and linking-domain data with Ubersuggest SEO measures.
- SEMrush Free Website Stats Scraper ↗ - Check public SEMrush authority, visits, organic search traffic, referring domains, and backlinks for supported domains.
- Ahrefs Free Website Stats Scraper ↗ - Compare public Ahrefs Domain Rating, traffic, global rank, traffic value, and linking websites.
- Ubersuggest Scraper (Radeance) ↗ - Compare another public Ubersuggest workflow for domain and keyword SEO data.
- Ubersuggest Scraper (memo23) ↗ - Review keyword volume, CPC, difficulty, suggestions, SERP rows, and domain SEO data from another Ubersuggest Actor.
Made with ❤️ by Maxime Dupré