SpyFu Scraper | SEO, PPC and Competitor Data
Pricing
from $5.91 / 1,000 domains
SpyFu Scraper | SEO, PPC and Competitor Data
SpyFu scraper for SEO and PPC competitor research: 20 domains in 20 seconds, 44 fields each. Get organic keywords, clicks and traffic value, Google Ads budget, paid keywords, domain strength, top competitors, best and new keywords and monthly history. Start from a domain, keyword or link. No login.
Pricing
from $5.91 / 1,000 domains
Rating
0.0
(0)
Developer
SilentFlow
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
SpyFu Scraper | SEO, PPC and Competitor Data (2026)
From SilentFlow. Creators of Facebook Search Scraper and Pinterest Scraper, with 570,000+ combined lifetime runs.
Every number SpyFu shows for a domain, one flat row each: organic traffic and its value, ad budget, paid keywords, top competitors, best keywords and up to 20 years of monthly history. 20 domains in about 20 seconds.
Why choose this actor?
Opening SpyFu one domain at a time to fill a competitor report? Wondering who else bids on the keyword that costs you the most? Cleaning up exports where every number is text and every competitor list is one long string?
- 42 fields on every domain, as real numbers. On our default test run, 42 data fields were filled on every one of the 20 domains: organic keywords, organic clicks and their monthly value, paid keywords, paid clicks, ad budget, average positions, domain strength, the traffic split, month-over-month and year-over-year changes, newly ranked, gained and lost keywords, the top 5 SEO and PPC competitors with the keywords they share, the top and newest organic and paid keywords with their search volume and cost per click, keywords per country and 12 months of history. The most used SpyFu actor lists 27 fields in its sample output, with numbers written as text and its lists as comma-separated strings.
- Start from a keyword, not only a domain. Type a domain, a keyword or paste a link (a SpyFu page or any web page): three ways in, where the most used SpyFu actor takes domains only. A keyword brings up the domain ranked first on Google and every domain SpyFu saw bidding on it, the steadiest bidders first:
crm softwarebrought up 294 domains, led by salesforce.com, zoho.com, monday.com, hubspot.com and pipedrive.com, each delivered as a full row. - Nothing to fill before the first run. No field is required. The prefilled form ran as is and delivered 20 domains in 21 seconds: the 3 domains it lists, then 17 domains that compete on
running shoes. The most used SpyFu actor will not start until its domain field is filled.
Try your first domains
Paste this input in the actor's Input tab, or keep the prefilled one, and press Start:
{"domains": ["nike.com", "hubspot.com", "shopify.com"],"keywords": ["running shoes"],"country": "us","maxItems": 20,"historyMonths": 12}
You get 20 domains in about 20 seconds: nike.com, hubspot.com and shopify.com, then the domains that compete on running shoes (ebay.com, ranked first on Google, then on.com, hoka.com, newbalance.com, brooksrunning.com and more). Each one is a row with its traffic, ad budget, competitors, keywords and a year of monthly history. The Apify Free plan covers runs like this one every month, so you can check the data before you point it at your whole market.

Copy to your AI assistant
Paste this block into Claude, ChatGPT or Cursor to give it full context about this scraper:
You have access to the SpyFu Scraper on Apify: silentflow/spyfu-scraperIt reads SpyFu (spyfu.com) competitor data. One dataset row per domain, for one SpyFu country database per run.Input (no field is required, give at least one of the first three):- domains (array of strings): domains or web addresses. Examples: "nike.com", "hubspot.com", "https://www.shopify.com/pricing" (read as shopify.com)- keywords (array of strings): search terms. Each one brings up the domain ranked first on Google plus every domain SpyFu saw bidding on it in Google Ads, steadiest bidders first, and each becomes a full domain row. Examples: "running shoes", "crm software"- startUrls (array of {url}): SpyFu pages (https://www.spyfu.com/overview/domain?query=nike.com, any /seo/ or /ppc/ domain page, https://www.spyfu.com/keyword/overview?query=running+shoes) or any web page, read as its domain- country (string, default "us"): SpyFu database. One of us, gb, ar, au, at, be, br, ca, cl, cz, dk, fi, fr, de, in, ie, it, jp, mx, nl, nz, no, pl, pt, sg, za, es, se, ch, tr, ua, ve. Also accepts 3-letter codes (gbr) and English names (United Kingdom); "uk" works.- maxItems (integer, default 100): domains to deliver for the whole run. Typed domains come first, then keyword domains.- historyMonths (integer, default 12, 0 to 300): months of history in monthlyHistory, latest first. 300 keeps everything (back to 2006 for old domains), 0 leaves it out.Output per domain (42 data fields, flat, camelCase, numbers as numbers, null when SpyFu has no value, dates RFC 3339):- identity: id (the domain, stable), domain, url (SpyFu overview page), websiteUrl, countryCode (ISO, GB for the UK)- SEO, latest month: organicKeywords, monthlyOrganicClicks, monthlyOrganicValue, averageOrganicRank, organicKeywordsMoMPercent, organicClicksMoMPercent, organicClicksYoYPercent, newlyRankedKeywords, gainedRankKeywords, lostRankKeywords- PPC, latest month: paidKeywords, monthlyPaidClicks, monthlyAdBudget, averageAdPosition, paidClicksMoMPercent, adBudgetMoMPercent, adBudgetYoYPercent- whole domain: domainStrength (0 to 100), organicTrafficShare, paidTrafficShare (percent of clicks), latestMonth, trackedSince, monthsTracked- competitors: topOrganicCompetitor, topPaidCompetitor, organicCompetitors[] and paidCompetitors[] ({domain, commonKeywords}, 5 each)- keywords: topOrganicKeyword, topPaidKeyword, topOrganicKeywords[] and newOrganicKeywords[] ({keyword, position, positionChange, searchVolume, monthlyClicks, costPerClick, rankingDifficulty, url}, 5 each), topPaidKeywords[] and newPaidKeywords[] ({keyword, searchVolume, costPerClick, monthlyCost, rankingDifficulty, paidCompetitors, lastSeenAt}, 5 each)- countries: primaryCountry, countriesTracked, keywordsByCountry[] ({countryCode, organicKeywords})- history: monthlyHistory[] ({month, organicKeywords, monthlyOrganicClicks, monthlyOrganicValue, averageOrganicRank, paidKeywords, monthlyPaidClicks, monthlyAdBudget, averageAdPosition, domainStrength})- meta: searchKeyword (on rows found through a keyword), scrapedAtUse apify-client for Python or JavaScript: client.actor("silentflow/spyfu-scraper").call(run_input=...), then read the default dataset.
How to scrape SpyFu competitor data
Get the SEO and PPC numbers of your competitors
List the domains you want side by side. Each one comes back as a row you can sort by organic clicks, ad budget or domain strength.
{"domains": ["hubspot.com", "salesforce.com", "pipedrive.com", "zoho.com"]}
Find every domain bidding on a keyword
One keyword gives the domain ranked first on Google, then every domain SpyFu saw bidding on it, the ones seen in the most months first. Our run on crm software delivered salesforce.com, zoho.com, monday.com, hubspot.com, getjobber.com, pipedrive.com and attio.com among the first 15.
{"keywords": ["crm software"],"maxItems": 15}
Compare UK retailers over two years
Pick another SpyFu country and keep more history. Our run on these four UK sites took 5 seconds and returned 24 months each, from October 2024 to September 2026.
{"domains": ["bbc.co.uk", "theguardian.com", "asos.com", "tesco.com"],"country": "gb","historyMonths": 24,"maxItems": 10}
Input parameters
| Field | Type | Default | What it does |
|---|---|---|---|
domains | array of strings | prefilled with 3 domains | Domains or web addresses to analyze. Each one becomes a row. |
keywords | array of strings | prefilled with running shoes | Search terms. Each brings up the domain ranked first and the domains bidding on it, each as a full row. |
startUrls | array of links | none | SpyFu domain or keyword pages, or any web page read as its domain. |
country | string | us | The SpyFu country database to read, 32 countries. |
maxItems | integer | 100 (prefill 20) | Domains to deliver for the whole run. |
historyMonths | integer | 12 | Months of history per row, 0 to 300. |
No field is required. Give at least a domain, a keyword or a link.
Formats accepted
- Domains:
nike.com,www.nike.com,NIKE.com,https://www.nike.com/shoes?color=redall read asnike.com. Subdomains are kept as typed (shop.example.co.uk). A line that is not a domain (not a domain) is skipped and named in the log, the others still run. - SpyFu links:
https://www.spyfu.com/overview/domain?query=nike.com,https://www.spyfu.com/seo/overview/domain?query=nike.com,https://www.spyfu.com/ppc/keywords/domain?query=nike.com,https://www.spyfu.com/overview/url?query=https://www.nike.com/shoesread the domain;https://www.spyfu.com/keyword/overview?query=running+shoesreads the keyword. - Keywords: any search term, as you would type it on Google, dotted terms included (
node.js,asp.net). A link typed in the keyword box (starting withhttps://orwww.) is read as a domain. - Country: a code (
us,gb,de), a 3-letter code (gbr,deu) or an English name (United Kingdom,Germany).ukreads the United Kingdom. A country SpyFu does not cover stops the run with a message naming the choices. - Duplicates: a domain typed twice, or found by both a domain and a keyword, is delivered once.
What data can you extract from SpyFu?
Each row is one domain in one SpyFu country database. 42 data fields per row, grouped like this:
| Group | Fields |
|---|---|
| Identity | id, domain, url, websiteUrl, countryCode |
| SEO, latest month | organicKeywords, monthlyOrganicClicks, monthlyOrganicValue, averageOrganicRank, organicKeywordsMoMPercent, organicClicksMoMPercent, organicClicksYoYPercent, newlyRankedKeywords, gainedRankKeywords, lostRankKeywords |
| PPC, latest month | paidKeywords, monthlyPaidClicks, monthlyAdBudget, averageAdPosition, paidClicksMoMPercent, adBudgetMoMPercent, adBudgetYoYPercent |
| Whole domain | domainStrength, organicTrafficShare, paidTrafficShare, latestMonth, trackedSince, monthsTracked |
| Competitors | topOrganicCompetitor, topPaidCompetitor, organicCompetitors, paidCompetitors |
| Keywords | topOrganicKeyword, topPaidKeyword, topOrganicKeywords, newOrganicKeywords, topPaidKeywords, newPaidKeywords |
| Countries | primaryCountry, countriesTracked, keywordsByCountry |
| History | monthlyHistory |
| Meta | searchKeyword (rows found through a keyword), scrapedAt |
Inside the lists:
- each competitor has 2 fields:
domainandcommonKeywords, the number of keywords it shares with the row's domain; - each organic keyword has 8:
keyword,position,positionChange,searchVolume,monthlyClicks(the clicks this domain gets from it),costPerClick,rankingDifficulty(0 to 100) andurl, the page that ranks; - each paid keyword has 7:
keyword,searchVolume,costPerClick,monthlyCost,rankingDifficulty,paidCompetitors(how many domains bid on it) andlastSeenAt, the latest month SpyFu saw this domain's ad on it; - each country has 2:
countryCodeandorganicKeywords; - each month of history has 10:
month,organicKeywords,monthlyOrganicClicks,monthlyOrganicValue,averageOrganicRank,paidKeywords,monthlyPaidClicks,monthlyAdBudget,averageAdPositionanddomainStrength.
Good to know when you use the data:
idis the domain itself, so a row joins onidfrom one month to the next.urlis the domain's permanent SpyFu overview page.- Dates are RFC 3339 in UTC. Monthly figures are dated on the first day of their month:
latestMonthwas2026-09-01T00:00:00Zon our run of 21 October 2026, since SpyFu refreshes its numbers once a month. - Percent changes compare the latest month with the month before (
MoM) and the same month a year earlier (YoY). They arenullwhen the earlier month had no data or was zero. organicTrafficShareandpaidTrafficSharesplit the domain's estimated clicks between Google results and Google Ads, in percent.- Values are SpyFu's estimates, the same numbers its site shows for the domain.
- Keyword lists hold the top 5 rows SpyFu shows for each list. The totals (
organicKeywords,paidKeywords,newlyRankedKeywordsand the others) count every keyword.
Output example
One complete row from our default run, hubspot.com in the United States database:
{"id": "hubspot.com","domain": "hubspot.com","url": "https://www.spyfu.com/overview/domain?query=hubspot.com","websiteUrl": "https://hubspot.com","countryCode": "US","organicKeywords": 885500,"monthlyOrganicClicks": 911100,"monthlyOrganicValue": 13920000,"averageOrganicRank": 40.3,"organicKeywordsMoMPercent": -2.7,"organicClicksMoMPercent": -3,"organicClicksYoYPercent": -45.9,"newlyRankedKeywords": 283458,"gainedRankKeywords": 214245,"lostRankKeywords": 179718,"paidKeywords": 65860,"monthlyPaidClicks": 451100,"monthlyAdBudget": 1918000,"averageAdPosition": 2.4,"paidClicksMoMPercent": 2.5,"adBudgetMoMPercent": -4.9,"adBudgetYoYPercent": -29.5,"domainStrength": 72,"organicTrafficShare": 66.9,"paidTrafficShare": 33.1,"latestMonth": "2026-09-01T00:00:00Z","trackedSince": "2006-11-01T00:00:00Z","monthsTracked": 229,"topOrganicCompetitor": "mailchimp.com","topPaidCompetitor": "attio.com","organicCompetitors": [{"domain": "mailchimp.com","commonKeywords": 26096},{"domain": "salesforce.com","commonKeywords": 33288},{"domain": "shopify.com","commonKeywords": 32939},{"domain": "neilpatel.com","commonKeywords": 13228},{"domain": "wix.com","commonKeywords": 21195}],"paidCompetitors": [{"domain": "attio.com","commonKeywords": 13054},{"domain": "monday.com","commonKeywords": 18133},{"domain": "pipedrive.com","commonKeywords": 11919},{"domain": "kintone.com","commonKeywords": 8996},{"domain": "top5-crm.com","commonKeywords": 2119}],"topOrganicKeyword": "hubspot","topPaidKeyword": "slack","topOrganicKeywords": [{"keyword": "hubspot","position": 1,"positionChange": 0,"searchVolume": 231000,"monthlyClicks": 37900,"costPerClick": 2.75,"rankingDifficulty": 8,"url": "https://www.hubspot.com/"},{"keyword": "crm","position": 2,"positionChange": 1,"searchVolume": 247000,"monthlyClicks": 20700,"costPerClick": 25.2,"rankingDifficulty": 49,"url": "https://www.hubspot.com/products/crm"},{"keyword": "wordpress","position": 6,"positionChange": null,"searchVolume": 554000,"monthlyClicks": 16000,"costPerClick": 2.32,"rankingDifficulty": 13,"url": "https://blog.hubspot.com/website/what-is-wordpress"},{"keyword": "github","position": 13,"positionChange": 1,"searchVolume": 993000,"monthlyClicks": 13500,"costPerClick": 2.27,"rankingDifficulty": 10,"url": "https://blog.hubspot.com/website/what-is-github-used-for"},{"keyword": "google contacts","position": 8,"positionChange": null,"searchVolume": 262000,"monthlyClicks": 5700,"costPerClick": 0.95,"rankingDifficulty": 9,"url": "https://blog.hubspot.com/marketing/the-ultimate-guide-to-google-contacts"}],"newOrganicKeywords": [{"keyword": "wordpress","position": 6,"positionChange": null,"searchVolume": 554000,"monthlyClicks": 16000,"costPerClick": 2.32,"rankingDifficulty": 13,"url": "https://blog.hubspot.com/website/what-is-wordpress"},{"keyword": "google contacts","position": 8,"positionChange": null,"searchVolume": 262000,"monthlyClicks": 5700,"costPerClick": 0.95,"rankingDifficulty": 9,"url": "https://blog.hubspot.com/marketing/the-ultimate-guide-to-google-contacts"},{"keyword": "smart goals","position": 15,"positionChange": null,"searchVolume": 199000,"monthlyClicks": 2400,"costPerClick": 1.25,"rankingDifficulty": 59,"url": "https://blog.hubspot.com/marketing/smart-goal-examples"},{"keyword": "google logo","position": 9,"positionChange": null,"searchVolume": 105000,"monthlyClicks": 2000,"costPerClick": 1.18,"rankingDifficulty": 44,"url": "https://blog.hubspot.com/marketing/google-logo-history"},{"keyword": "new gmail account","position": 7,"positionChange": null,"searchVolume": 74000,"monthlyClicks": 1800,"costPerClick": 0.54,"rankingDifficulty": 5,"url": "https://www.hubspot.com/email-signature-generator/set-up-gmail-account"}],"topPaidKeywords": [{"keyword": "slack","searchVolume": 1260000,"costPerClick": 0.55,"monthlyCost": 43571.7,"rankingDifficulty": 7,"paidCompetitors": 63,"lastSeenAt": "2026-05-01T00:00:00Z"},{"keyword": "shopify","searchVolume": 870000,"costPerClick": 5.16,"monthlyCost": 229188.9,"rankingDifficulty": 9,"paidCompetitors": 127,"lastSeenAt": "2026-09-01T00:00:00Z"},{"keyword": "squarespace","searchVolume": 603000,"costPerClick": 1.05,"monthlyCost": 41988,"rankingDifficulty": 7,"paidCompetitors": 127,"lastSeenAt": "2026-07-01T00:00:00Z"},{"keyword": "salesforce","searchVolume": 420000,"costPerClick": 2.85,"monthlyCost": 98170.5,"rankingDifficulty": 6,"paidCompetitors": 127,"lastSeenAt": "2026-10-01T00:00:00Z"},{"keyword": "notion","searchVolume": 412000,"costPerClick": 0.35,"monthlyCost": 981.6,"rankingDifficulty": 6,"paidCompetitors": 73,"lastSeenAt": "2026-04-01T00:00:00Z"}],"newPaidKeywords": [{"keyword": "affiliate marketing","searchVolume": 63500,"costPerClick": 6.32,"monthlyCost": 12449.1,"rankingDifficulty": 42,"paidCompetitors": 127,"lastSeenAt": "2026-10-01T00:00:00Z"},{"keyword": "chatgpt alternative","searchVolume": 25000,"costPerClick": null,"monthlyCost": null,"rankingDifficulty": 28,"paidCompetitors": 95,"lastSeenAt": "2026-10-01T00:00:00Z"},{"keyword": "profit and loss template","searchVolume": 3900,"costPerClick": 0.28,"monthlyCost": 16.2,"rankingDifficulty": 41,"paidCompetitors": 54,"lastSeenAt": "2026-10-01T00:00:00Z"},{"keyword": "free gantt chart software","searchVolume": 1900,"costPerClick": null,"monthlyCost": null,"rankingDifficulty": 23,"paidCompetitors": 27,"lastSeenAt": "2026-09-01T00:00:00Z"},{"keyword": "chimamanda","searchVolume": 1700,"costPerClick": 0.33,"monthlyCost": 0.3,"rankingDifficulty": 16,"paidCompetitors": 2,"lastSeenAt": "2026-08-01T00:00:00Z"}],"primaryCountry": "US","countriesTracked": 32,"keywordsByCountry": [{"countryCode": "US","organicKeywords": 885500},{"countryCode": "GB","organicKeywords": 423200},{"countryCode": "IN","organicKeywords": 50530},{"countryCode": "AU","organicKeywords": 38950},{"countryCode": "CA","organicKeywords": 35600},{"countryCode": "DE","organicKeywords": 20440},{"countryCode": "BR","organicKeywords": 15650},{"countryCode": "FR","organicKeywords": 11330},{"countryCode": "NL","organicKeywords": 10050},{"countryCode": "SG","organicKeywords": 8213},{"countryCode": "ZA","organicKeywords": 7355},{"countryCode": "IE","organicKeywords": 5595},{"countryCode": "IT","organicKeywords": 4933},{"countryCode": "ES","organicKeywords": 4269},{"countryCode": "UA","organicKeywords": 3157},{"countryCode": "NO","organicKeywords": 3037},{"countryCode": "BE","organicKeywords": 2736},{"countryCode": "MX","organicKeywords": 2652},{"countryCode": "DK","organicKeywords": 2646},{"countryCode": "SE","organicKeywords": 2354},{"countryCode": "PT","organicKeywords": 2315},{"countryCode": "CH","organicKeywords": 2253},{"countryCode": "NZ","organicKeywords": 1939},{"countryCode": "AT","organicKeywords": 1656},{"countryCode": "FI","organicKeywords": 1620},{"countryCode": "JP","organicKeywords": 1597},{"countryCode": "VE","organicKeywords": 998},{"countryCode": "AR","organicKeywords": 954},{"countryCode": "CZ","organicKeywords": 917},{"countryCode": "PL","organicKeywords": 900},{"countryCode": "CL","organicKeywords": 769},{"countryCode": "TR","organicKeywords": 556}],"monthlyHistory": [{"month": "2026-09-01T00:00:00Z","organicKeywords": 885500,"monthlyOrganicClicks": 911100,"monthlyOrganicValue": 13920000,"averageOrganicRank": 40.3,"paidKeywords": 65860,"monthlyPaidClicks": 451100,"monthlyAdBudget": 1918000,"averageAdPosition": 2.4,"domainStrength": 72},{"month": "2026-08-01T00:00:00Z","organicKeywords": 910300,"monthlyOrganicClicks": 938900,"monthlyOrganicValue": 14500000,"averageOrganicRank": 40.8,"paidKeywords": 62160,"monthlyPaidClicks": 440000,"monthlyAdBudget": 2017000,"averageAdPosition": 2.4,"domainStrength": 72},{"month": "2026-07-01T00:00:00Z","organicKeywords": 911700,"monthlyOrganicClicks": 903200,"monthlyOrganicValue": 14270000,"averageOrganicRank": 41.3,"paidKeywords": 60080,"monthlyPaidClicks": 435900,"monthlyAdBudget": 2165000,"averageAdPosition": 2.4,"domainStrength": 72},{"month": "2026-06-01T00:00:00Z","organicKeywords": 1063000,"monthlyOrganicClicks": 964800,"monthlyOrganicValue": 17390000,"averageOrganicRank": 42.8,"paidKeywords": 57390,"monthlyPaidClicks": 415600,"monthlyAdBudget": 2164000,"averageAdPosition": 2.4,"domainStrength": 73},{"month": "2026-05-01T00:00:00Z","organicKeywords": 1119000,"monthlyOrganicClicks": 977800,"monthlyOrganicValue": 18780000,"averageOrganicRank": 43.7,"paidKeywords": 47580,"monthlyPaidClicks": 328500,"monthlyAdBudget": 2175000,"averageAdPosition": 2.5,"domainStrength": 73},{"month": "2026-04-01T00:00:00Z","organicKeywords": 1148000,"monthlyOrganicClicks": 1014000,"monthlyOrganicValue": 18970000,"averageOrganicRank": 44.3,"paidKeywords": 34660,"monthlyPaidClicks": 182600,"monthlyAdBudget": 2408000,"averageAdPosition": 2.7,"domainStrength": 73},{"month": "2026-03-01T00:00:00Z","organicKeywords": 917500,"monthlyOrganicClicks": 1040000,"monthlyOrganicValue": 18480000,"averageOrganicRank": 44.7,"paidKeywords": 29099,"monthlyPaidClicks": 166900,"monthlyAdBudget": 2806000,"averageAdPosition": 2.8,"domainStrength": 66},{"month": "2026-02-01T00:00:00Z","organicKeywords": 883800,"monthlyOrganicClicks": 970400,"monthlyOrganicValue": 11890000,"averageOrganicRank": 47.9,"paidKeywords": 25130,"monthlyPaidClicks": 151000,"monthlyAdBudget": 3188000,"averageAdPosition": 2.8,"domainStrength": 64},{"month": "2026-01-01T00:00:00Z","organicKeywords": 945400,"monthlyOrganicClicks": 994100,"monthlyOrganicValue": 5653000,"averageOrganicRank": 47.8,"paidKeywords": 21900,"monthlyPaidClicks": 139100,"monthlyAdBudget": 3393000,"averageAdPosition": 2.8,"domainStrength": 61},{"month": "2025-12-01T00:00:00Z","organicKeywords": 990700,"monthlyOrganicClicks": 1122000,"monthlyOrganicValue": 5901000,"averageOrganicRank": 47.1,"paidKeywords": 19520,"monthlyPaidClicks": 125400,"monthlyAdBudget": 5276000,"averageAdPosition": 2.8,"domainStrength": 62},{"month": "2025-11-01T00:00:00Z","organicKeywords": 1361000,"monthlyOrganicClicks": 1412000,"monthlyOrganicValue": 8312000,"averageOrganicRank": 45.9,"paidKeywords": 6843,"monthlyPaidClicks": 5249,"monthlyAdBudget": 3396000,"averageAdPosition": 2.5,"domainStrength": 64},{"month": "2025-10-01T00:00:00Z","organicKeywords": 1395000,"monthlyOrganicClicks": 1552000,"monthlyOrganicValue": 8382000,"averageOrganicRank": 45.9,"paidKeywords": 6914,"monthlyPaidClicks": 8376,"monthlyAdBudget": 3352000,"averageAdPosition": 2.6,"domainStrength": 64}],"scrapedAt": "2026-10-21T15:31:24Z"}
Advanced usage
Follow a client and its competitors every month
Save this input as a task and schedule it monthly, after SpyFu's refresh. Each run gives one row per domain with its month-over-month and year-over-year changes already computed, so the report is a filter away.
{"domains": ["hubspot.com", "salesforce.com", "pipedrive.com"],"historyMonths": 1}
Keep a domain's whole history
Set historyMonths to 300 to keep every month SpyFu has. nike.com came back with 230 months, from June 2006 to September 2026, in 3 seconds: enough to chart two decades of organic and paid search.
{"domains": ["nike.com"],"historyMonths": 300}
Map who competes on a keyword in another country
Keywords run in the country you pick. laufschuhe in the German database brought up 31 domains; the first five of our run were 21run.com, lauf-bar.de, shop4runners.com, adidas.de and nike.com.
{"keywords": ["laufschuhe"],"country": "de","maxItems": 30}
Paste the SpyFu pages you already have open
Copy the addresses of SpyFu domain or keyword pages, or any page of a website, and run them together. Our run on a semrush.com SpyFu page, an ahrefs.com blog page and the SpyFu keyword page for seo tools delivered 10 domains in 10 seconds: semrush.com, ahrefs.com, then techradar.com, seranking.com, similarweb.com, moz.com and others competing on the keyword.
{"startUrls": [{ "url": "https://www.spyfu.com/overview/domain?query=semrush.com" },{ "url": "https://www.ahrefs.com/blog/" },{ "url": "https://www.spyfu.com/keyword/overview?query=seo%20tools" }],"maxItems": 10,"historyMonths": 6}
Rank a prospect list by ad budget in Python
Agencies qualify leads by how much they spend on Google Ads. Run your list, then sort it:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("silentflow/spyfu-scraper").call(run_input={"domains": ["getjobber.com", "housecallpro.com", "servicetitan.com", "workiz.com"],"historyMonths": 0,})rows = client.dataset(run["defaultDatasetId"]).list_items().itemsfor r in sorted(rows, key=lambda r: r["monthlyAdBudget"] or 0, reverse=True):print(f'{r["domain"]:<22} ads {r["monthlyAdBudget"] or 0:>12,.0f}/month 'f'organic clicks {r["monthlyOrganicClicks"] or 0:>10,} 'f'YoY {r["organicClicksYoYPercent"]}% top rival {r["topPaidCompetitor"]}')
The same dataset downloads as CSV, Excel or JSON from the run's Storage tab, or through the dataset API. Nested lists such as organicCompetitors become numbered columns in CSV and Excel.
FAQ
What is SpyFu? SpyFu is a competitor research tool for search marketing. For millions of domains it estimates the keywords they rank for on Google, the clicks those rankings bring, the keywords they buy ads on and their monthly ad budget, with history back to 2006. This actor reads those public numbers and hands them to you as rows.
What does one row contain? One domain in one SpyFu country: 42 data fields covering its organic and paid search for the latest month, the changes against last month and last year, its 5 top SEO and PPC competitors, 5 top and 5 new organic and paid keywords with their metrics, its keywords per country and its monthly history.
Do I need a SpyFu account or an API key? No. The actor reads what SpyFu shows to any visitor. No login, no API key, nothing to connect.
How fresh is the data?
SpyFu updates its estimates once a month. Every run reads SpyFu live, and latestMonth on each row tells you which month the numbers describe (September 2026 on our runs of 21 October 2026).
Why do keyword lists stop at 5?
SpyFu shows the first 5 rows of each keyword list to visitors without an account, and that is what each row carries. The totals are complete: organicKeywords counts every keyword the domain ranks for, paidKeywords every keyword it buys, newlyRankedKeywords, gainedRankKeywords and lostRankKeywords every movement of the month.
What happens with a domain SpyFu does not track?
It gives no row, so you never get an empty line for it. The log names it and the run's status says that SpyFu has no data for it in that country. Small sites often have data in one country only: keywordsByCountry on a known domain shows where SpyFu tracks it.
Which countries can I read? The 32 countries SpyFu covers: the United States, the United Kingdom, Argentina, Australia, Austria, Belgium, Brazil, Canada, Chile, Czechia, Denmark, Finland, France, Germany, India, Ireland, Italy, Japan, Mexico, the Netherlands, New Zealand, Norway, Poland, Portugal, Singapore, South Africa, Spain, Sweden, Switzerland, Turkey, Ukraine and Venezuela. One country per run; run again for another one.
How does a keyword turn into domains?
The actor takes the domain ranked first on Google for the keyword, then every domain SpyFu saw bidding on it over the past months, ordered by the number of months it bid: a steady advertiser comes before a one-off. Each of them is then read as a full domain row, and searchKeyword says which keyword brought it in.
How many domains can I run at once?
As many as you like: maxItems sets the stop. A domain takes about a second; our default run delivered 20 in 21 seconds. Domains you type are always read before the domains of your keywords.
Are the numbers exact? They are SpyFu's estimates, the same ones its website displays. Use them to compare domains with each other and over time, the way SpyFu users do.
Can I get the data in Google Sheets or my own database? Yes. Every run's dataset downloads as CSV, Excel, JSON or XML, and the Apify API, the Python and JavaScript clients, webhooks and integrations such as Google Sheets, Make or Zapier read it directly.
More SilentFlow scrapers
🛒 E-commerce
- Pinterest - Pinterest Scraper | Pins, Boards and Profiles
- JD - JD Products Scraper | JD.com Prices, Brands and Barcodes
- Leboncoin - Leboncoin Scraper | Classified Ads, Prices and Sellers
- Leboncoin - Leboncoin Ad Details Scraper
- TikTok Shop - TikTok Shop Scraper | Products, Sellers and Creator Videos
- ImportYeti - US Customs Records, Suppliers & Trade Data - ImportYeti Scraper - US Customs Records, Suppliers & Trade Data
- Back Market - Back Market Scraper | Refurbished Prices
- Naver - Naver Scraper | Shopping Products, Prices and Reviews
- Udemy Course - Udemy Course Scraper
- Naver - Naver Products Scraper | Shopping Prices, Sellers and Ratings
- 1688 - 1688 Scraper | Products, Details, Wholesale Prices, Suppliers
- Amazon Seller - Amazon Seller Scraper | Emails, Phones and Ratings
- Naver - Naver Reviews Scraper | Shopping Product Reviews
- Store Leads Ecommerce - Store Leads Ecommerce Scraper
- Store Leads - Store Leads Scraper | Shopify Data
- Allegro - Allegro Scraper | Products, Prices and Sellers
- Leboncoin - Leboncoin Scraper
- Lowes - Lowes Products Scraper | Prices, Stock and Specs
- Mobile.de - Mobile.de Scraper
- Taobao - Taobao Scraper | Products, Details, Prices and Sellers
- Agoda - Agoda Scraper | Hotel Prices and Guest Ratings
- Alibaba - Alibaba Products Scraper | Wholesale Prices and MOQ
- Avito - Avito Scraper | Listings, Prices and Sellers
- Bring a Trailer - Bring a Trailer Scraper
- Pinterest - Pinterest Scraper
- Udemy - Udemy Scraper
- Alibaba - Alibaba Scraper | Products, Supplier Companies and Prices
- AliExpress - AliExpress Reviews Scraper | Feedback, Ratings and Photos
- AliExpress - AliExpress Scraper | Products, Prices and Sales
- Avito - Avito Profiles Scraper | Sellers, Ratings and Reviews
- Back Market - Back Market Scraper | Refurbished Electronics Prices
- BAUHAUS - BAUHAUS Scraper | Product Prices, EAN and Specs
- CARFAX - CARFAX Scraper | Used Cars, Prices and History
- Coupang - Coupang Detail Scraper | Product Prices and Options
- eBay Marketplace - eBay Marketplace Scraper
- Europages - Europages Scraper | Suppliers and B2B Companies
- Eventim - Eventim Scraper | Events, Ticket Prices and Venues
- Google Hotels - Google Hotels Scraper | Prices, Offers and Ratings
- Homedepot - Homedepot Reviews Scraper | Customer Reviews and Ratings
- Leboncoin - Leboncoin Details Scraper | Full Ad Data and Sellers
- Mafengwo - Mafengwo Scraper | Attractions, Ratings and Tickets
- Mercari - Mercari Scraper | Listings, Sold Prices and Sellers
- Vinted Marketplace - Vinted Marketplace Scraper
- Webmotors - Webmotors Scraper | Car Listings, Prices and FIPE
- Amazon - Amazon Product Scraper
- Amazon Marketplace - Amazon Marketplace Scraper
- AutoScout24 - AutoScout24 Scraper
- eBay Listings - eBay Listings Scraper
- Europages Deep Dive Extractor - Europages Deep Dive Extractor | VAT, Decision Makers, ISO Certs
- GasBuddy - GasBuddy Scraper | Gas Prices by Station
- Goofish - Goofish Detail Scraper | Listings, Prices and Sellers
- Trip - Trip Scraper | Hotels, Prices and Reviews
- Vinted - Vinted Scraper
- Walmart - Walmart Scraper | Prices, Reviews, Sellers, Availability
- Walmart - Walmart Product Scraper
💼 Jobs
- ZipRecruiter - ZipRecruiter Jobs Scraper | Salary, Company & Location Filters
- Indeed - Indeed Company Reviews Scraper
- Multi Board - Multi Board Job Scraper
- Glassdoor Job Listings - Glassdoor Job Listings Scraper
- Malt - Malt Scraper | Freelance Profiles
- 🔥 Glassdoor - 🔥 Glassdoor Scraper
- Jobright - Jobright Scraper | Jobs, Salaries and H1B Sponsors
- Jora - Jora Jobs Scraper
- LinkedIn Job Search - LinkedIn Job Search Scraper | Salaries & Seniority
- Malt Freelancer - Malt Freelancer Scraper
- ATS - ATS Jobs Scraper | Greenhouse, Lever and Ashby
- Glassdoor - Glassdoor Jobs Scraper
- Arbeitsagentur - Arbeitsagentur Jobs Scraper
- Cutshort - Cutshort Jobs Scraper | Salaries, Skills and Companies
- Dice - Dice Jobs Scraper | US Tech Jobs, Salaries, Skills
- Dice Tech - Dice Tech Jobs Scraper
- iimjobs - iimjobs Jobs Scraper | MBA, Finance and Hirist Tech Jobs
- Indeed - Indeed Jobs Scraper | Job Listings in 73 Countries
- Instahyre - Instahyre Jobs Scraper | Companies, Recruiters and Ratings
- Jora - Jora Scraper | Jobs in Australia, New Zealand, Singapore
- StepStone - StepStone Scraper
- Welcome to the Jungle - Welcome to the Jungle Job Scraper
- YCombinator - YCombinator Jobs Scraper | Startup Jobs, Salaries and Founders
- All - All Jobs Scraper
- Arbeitsagentur - Arbeitsagentur Scraper | German and Austrian Job Board
- iimjobs - iimjobs Scraper | Jobs, Companies and Recruiters
- Indeed - Indeed Companies Scraper | Reviews, Salaries, Interviews
- Indeed - Indeed Jobs Scraper | NLP Skills
- LinkedIn - LinkedIn Jobs Scraper
- Naukri & NaukriGulf - Naukri & NaukriGulf Jobs Scraper
- Seek - Seek Job Scraper
- Welcome to the Jungle - Welcome to the Jungle Scraper | Jobs and Company Data
- Ziprecruiter - Ziprecruiter Scraper
🏠 Real estate
- SeLoger - SeLoger Scraper | Real Estate Listings
- Realtor Rental Listings - Realtor Rental Listings Scraper
- Airbnb Pro Host Contact & - Airbnb Pro Host Contact & Email Scraper
- Airbnb Professional Host - Airbnb Professional Host Scraper | Emails, Phones, SIRET
- Trulia Rental Listings - Trulia Rental Listings Scraper
- Bien'ici - Bien'ici Scraper | Property Listings
- Rightmove - Rightmove Scraper
- Bienici - Bienici Scraper
- SeLoger - SeLoger Scraper | French Property Listings and Agencies
- Airbnb Search - Airbnb Search Scraper
- Idealista - Idealista Scraper
- Realestate.com.au - Realestate.com.au Scraper
- Airbnb Search - Airbnb Search Scraper | Prices, Fees, Amenities, Hosts
- Anjuke - Anjuke Scraper | Rental Listings, Prices and Agents
- Idealista - Idealista Scraper
- Realtor Rental - Realtor Rental Scraper
- Trulia Rental - Trulia Rental Scraper | US Rentals, Prices, Pet Policy
- Zillow - Zillow Scraper
📣 Social media
- LinkedIn Post Search - LinkedIn Post Search Scraper | Keywords, Hashtags & Profiles
- Facebook Search - Facebook Search Scraper
- Instagram - Instagram Story Scraper | Stories & Highlights
- LinkedIn Leads - LinkedIn Leads Scraper | Sales Navigator Export
- Facebook Search - Facebook Search Profiles Scraper | People by Name or Keyword
- YouTube - YouTube Channel Scraper | Videos, Shorts and Views
- TikTok - TikTok Scraper
- Instagram Engagement - Instagram Engagement Scraper
- OnlyFans - OnlyFans Profile Scraper
- TikTok Trend - TikTok Trend Scraper | Trending Hashtags and Videos
- Discord - Discord Scraper | Servers, Member Counts and Invites
- Meta Ad Library - Meta Ad Library Scraper
- OnlyFans - OnlyFans Creator Scraper
- Skool Community - Skool Community Scraper
- TikTok Creative - TikTok Creative Ads Scraper | Top Ads, Landing Pages & Metrics
- Douyin - Douyin Comments Scraper | Comments, Likes and IP Regions
- Facebook Thread - Facebook Thread Profiles Scraper | Followers, Bios & Engagement
- Kuaishou - Kuaishou Scraper | Videos, Comments and Creator Stats
- Likee - Likee Scraper | Videos, Hashtags and Creators
- LinkedIn Ads Library - No Cookies - LinkedIn Ads Library Scraper - No Cookies
- LinkedIn Event - LinkedIn Event Scraper
- LinkedIn Hashtag & - LinkedIn Hashtag & Post Scraper | No Cookies
- Pinterest - Pinterest Ads Scraper | Ad Library, Reach & Targeting
- Pinterest - Pinterest Profiles Scraper | Followers, Emails and Bios
- Pinterest - Pinterest Videos Scraper | Video Downloader, MP4 Links, Stats
- Reddit - Reddit Comments Scraper | Search, Threads and Replies
- Reddit - Reddit Profiles Scraper | User Karma, Activity and Communities
- Reddit - Reddit Scraper | Posts, Comments and Subreddits
- Reddit - Reddit Scraper | Comments, Posts and Users
- RedNote - RedNote Detail Scraper | Xiaohongshu Details, Images, Videos
- RedNote - RedNote Videos Scraper | Downloader, Transcripts and Stats
- Snapchat - Snapchat Contacts Scraper | Phones, Emails and Websites
- Snapchat - Snapchat Videos Scraper | Spotlight Videos, MP4 and Stats
- TikTok Lookalike - TikTok Lookalike Scraper | Influencers, Emails and Engagement
- Weibo - Weibo Scraper | Posts, Profiles and Engagement
- Xigua - Xigua Scraper | Videos, Creators and Downloads
- YouTube Autocomplete - YouTube Autocomplete Scraper | Keyword Suggestions
- Facebook - Facebook Company Scraper | Emails, Phones, Ratings
- Facebook Business Page - Facebook Business Page Scraper
- Kwai - Kwai Scraper | Videos, Creators and Hashtags
- Skool Group - Skool Group Scraper
- Snapchat - Snapchat Ads Scraper | Ad Library, Impressions & Targeting
- TwitchTracker - TwitchTracker Scraper | Twitch Streamer Stats and Rankings
- YouTube - YouTube Transcript Scraper
🏢 Business data
- Tencent - Tencent Scraper | Maps Places, Phones and Ratings
- LinkedIn Company Search - LinkedIn Company Search Scraper | Profiles & Firmographics
- LinkedIn People Search - LinkedIn People Search Scraper | Profiles & Companies
- ForexFactory - ForexFactory Scraper | Economic Calendar and Forecasts
- Bilibili - Bilibili Scraper | Videos, Profiles, Comments, Danmaku
- Ctrip - Ctrip Scraper | Attractions, Tickets and Reviews
- LinkedIn Sales Navigator - LinkedIn Sales Navigator Scraper
- OpenTable - OpenTable Reviews Scraper | Restaurant Reviews and Ratings
- SoftwareAdvice - SoftwareAdvice Scraper | Reviews, Ratings and Pros & Cons
- Teachable Course - Teachable Course Scraper
- Website Tech Stack - Website Tech Stack Scraper
- Zomato - Zomato Reviews Scraper | Restaurant Ratings and Replies
- 2GIS - 2GIS Reviews Scraper | Ratings, Photos and Owner Replies
- Teachable - Courses, Prices & Instructors - Teachable Scraper - Courses, Prices & Instructors
- Trustpilot - Trustpilot Scraper | Reviews, Ratings and Company Contacts
✈️ Travel
- Google Maps - Google Maps Scraper
- Flight Price - Flight Price Scraper
- Booking.com Hotel - Booking.com Hotel Scraper
- Kakao - Kakao Scraper | Map Places, Reviews and Phones
- TheFork - TheFork Scraper | Restaurants, Menus and Ratings
- Trip - Trip Reviews Scraper | Hotel Reviews and Ratings
- Booking - Booking Scraper | Hotel Prices, Photos, Availability
🎯 Lead generation
- Northdata - Northdata Company Scraper
- ZocDoc - ZocDoc Scraper | Doctors, Reviews and Availability
- Dealroom - Dealroom Scraper | Companies and Investors
- UK Companies House - UK Companies House Enricher
- CNPJ Brazilian - CNPJ Brazilian Company Enricher
- Google Ads Transparency - Google Ads Transparency Scraper
- BuiltWith - BuiltWith Scraper | Tech Stacks and Top Sites
- Company Data - Company Data Scraper | Emails, Phones and Tech Stack
- Dealroom Startup Data - Dealroom Startup Data Scraper
- Domain - Domain Enricher
- French Company Prospector - French Company Prospector
- Justdial - Justdial Companies Scraper | Business Leads, Phones and Emails
- PagesJaunes - PagesJaunes Scraper | French Business Emails and SIRET
- SEC - SEC Scraper | EDGAR Filings and Company Data
- SIRET - SIRET Company Enricher
- USPTO - USPTO Scraper | Trademark Search and Status
- Clutch - Clutch Scraper | Agencies, Reviews, Ratings, Services
- Clutch Agency - Clutch Agency Scraper
- G2 - G2 Reviews Scraper
- PagesJaunes - PagesJaunes Business Scraper
- SIRET French - SIRET French Company Enricher
- ThomasNet Suppliers - ThomasNet Suppliers Scraper
- ZocDoc - ZocDoc Scraper
🔎 SEO
- Similarweb - Similarweb Scraper | Website Traffic, Rankings and Competitors
- Apple - Apple Reviews Scraper | App Store Reviews and Ratings
- Apple - Apple Scraper | App Store Apps, Ratings and Charts
- Bing - Bing Enricher Scraper | Mobile Friendly Test and Indexing
- Google News - Google News Scraper
📈 Marketing
- Pexels - Pexels Scraper | Photos, Videos and Download Stats
- Douyin - Douyin Transcript Scraper | Subtitles and Speech to Text
🧰 More tools
- FanDuel - FanDuel Scraper | Odds, Spreads and Player Props
- PrizePicks - PrizePicks Scraper | Player Props, Lines and Projections
Support
Need something this scraper doesn't do yet? We ship features fast.
- Feature requests go straight to our backlog
- Enterprise needs? We do custom integrations and high-volume plans
- Pricing questions? Check the Monetization tab on the actor page
Response time: usually under 24 hours.
Legal compliance
This Actor extracts publicly available competitor research data from SpyFu: domain-level estimates of search traffic, keywords, ad budgets and competitors. It does not bypass any login, paywall or CAPTCHA, and never uses a SpyFu account. The rows describe websites and companies, not people. Users are responsible for complying with SpyFu's terms of service and applicable data protection laws (GDPR, CCPA, and PIPL where relevant). SpyFu is a trademark of its owner; this Actor is not affiliated with or endorsed by SpyFu. The data returned is informational and made of estimates; verify accuracy before using it for regulated or financial decisions.
SpyFu Scraper by SilentFlow: the traffic, ad budget, competitors and keywords of any domain, ready for your spreadsheet.
