Similarweb logo

Search & SEO · Live on Apify

Website Traffic Estimator: Similarweb Visits and Rank

Add a list of websites and get public Similarweb estimates for each domain. Each row has monthly visits, global and country rank, engagement and traffic sources. You also get top countries and keywords.

About $2.00 for 1,000 domains$0.002 per domain + $0.002 per run. Apify bills you, not us.Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Run it on Apify Opens apify.com, the website where our tools run. Sign up free with Google or email, no card needed.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure

What you get, for example

domainapify.com
snapshotDate2026-09-01
visits3990936

How to use it: 3 steps

  1. Make a free Apify accountApify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: apify.com in Websites. Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

Website Traffic Estimator checks a list of websites and returns public Similarweb traffic estimates for each domain: monthly visits, global and country rank, engagement, traffic sources, top countries and keywords.

  • Traffic: monthly visits, change from the previous month and up to 3 months of visit history.
  • Ranks: global rank, rank in the main country and rank in the site category.
  • Engagement: bounce rate, pages per visit and average visit time.
  • Traffic sources: shares of direct, search, paid, referral, social, email, display ads and AI chatbot traffic.
  • Audience: top countries, top keywords with search volume, similar sites and public company facts.

Good for

  • Compare the traffic of competitors or partners in one table.
  • Score a lead list by monthly visits or global rank, and drop small sites with a filter.
  • Watch a list of domains every week or month and see which sites grew or fell.

Who uses it

Marketers

Compare the traffic of competitors in one table.

Sales teams

Score a lead list by monthly visits or rank.

Partnership teams

Watch a list of domains and see which sites grow.

Price

Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.

What you pay forPriceWhen
Domain checked$0.002 (from $0.0014 on paid Apify plans)One domain check with public traffic, channels and keywords, including unavailable, filtered, unchanged and failed profiles. Run start is charged separately.
AI referral check$0.0078 (from $0.00546 on paid Apify plans)Additional public AI referral report check when enabled, including unavailable reports.
Start fee$0.002Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more.

Examples

  • One domain: about $0.004.
  • 1,000 domains: about $2.00.
  • Every day 100 domains, for 30 days: about $6.06 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. That is enough for about 2,400 domains.

Prices checked on 8 November 2026. See the current price on Apify.

Questions

Do I need a Similarweb account?

No. The tool reads public website profiles. No login, cookies or API key.

How exact are the visits?

They are estimates for one month. Use them to compare sites, not as exact counts.

Why does a domain return not_found?

Small sites often have no estimate. Every checked domain is charged, also not_found.

How accurate are the visits?

They are Similarweb estimates for one month. Use them to compare sites with each other, not as exact counts. For big sites they are usually close; for small sites they are rough or missing.

Why do the shares not add up to 100%?

Shares are fractions from 0 to 1, and the source can hide some channels. Hidden shares are null. If channelDataStatus is unavailable, all shares are null for that row.

Do I pay for domains with no data?

Yes. Every checked domain is charged the same, also not_found and filtered rows. Skipped broken entries and domains left after a charge limit stop are free.

How fresh is the data?

Each row has snapshotDate, the month of the estimate. The source updates it about once a month.

Details

Step by step on Apify
  1. Open the Input tab. The Websites list already has apify.com (box 1; the picture shows only this field).
  2. Add your own domains or URLs, one per line. You can keep the other settings as they are.
  3. Click Start at the bottom of the page (below the picture's frame).
  4. When the run finishes, open the Output tab and choose the Traffic comparison view (box 4).
  5. Check status, visits and globalRank for each domain (box 5).
Use cases
TaskInputYou getKey fieldsNext step
Compare competitorsdomainsOne row per domainvisits, globalRank, organicShare, paidShareExport CSV or Excel; COMPARISON record
Score or filter a lead listdomains, minMonthlyVisits, maxGlobalRank, countriesRows that match the filtersvisits, globalRank, countryCode, categoryAPI or Make / Zapier into your CRM
Track traffic over timemode: monitor, stateName, onlyChangesNew or changed profileschangeStatus, visitsChangePercent, monthlyVisitsApify schedule + Slack or Notion summary
Research SEO and channelsdomains, includeSources, includeDetailsFull traffic profiletopKeywords, organicShare, topReferrers, similarSitesSpreadsheet with outputFormat: flat
Tips for better results
  • Start with one domain such as apify.com to see the columns.
  • For more than about 50 domains, set the timeout to 600 seconds or split the list.
  • Set a minimum of monthly visits to drop small sites.
Limits and good to know
  • All numbers are public Similarweb estimates. They are not exact and can differ from the site's own analytics
  • The source publishes one month at a time and up to 3 months of history. The Actor does not make older history
  • Small sites often have no estimate. They return not_found
  • Some shares and names are hidden by the source. They stay null
  • Channel shares come from a second public source. If it does not answer, the row keeps visits and rank, channelDataStatus is unavailable, and RUN_SUMMARY.channelDataUnavailable counts these rows. The domain check is charged the same
  • Fallback rows from SimilarSites have no known month. Tranco gives a popularity rank, not visits
  • The source can block or slow requests. The Actor then retries on other connection routes. 100% coverage is not promised
  • The default timeout is 300 seconds. That fits about 50 domains with a safe margin. With 100 domains, five of seven test runs finished in 151 to 226 seconds and two stopped at the timeout after 88 and 96 domains. For lists above about 50 domains, set the timeout to 600 seconds in the run options or split the list into batches

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one result · JSON
{
  "domain": "apify.com",
  "status": "complete",
  "source": "similarweb",
  "snapshotDate": "2026-09-01",
  "visits": 3990936,
  "changePercent": -5.01,
  "globalRank": 9800,
  "countryRank": 9730,
  "countryCode": "US",
  "categoryRank": 272,
  "bounceRate": 0.3595,
  "pagesPerVisit": 7.61,
  "avgVisitSec": 317,
  "directShare": 0.44,
  "organicShare": 0.34,
  "paidShare": 0.056,
  "referralsShare": 0.058,
  "social_organicShare": 0.048,
  "gen_aiShare": 0.034,
  "channelDataStatus": "available",
  "topCountries": [{ "countryCode": "US", "share": 0.2211 }],
  "topKeywords": [{ "keyword": "apify", "volume": 798490, "cpc": 1.56 }],
  "similarSites": [{ "domain": "brightdata.com" }],
  "company": { "name": "Apify", "yearFounded": 2016, "city": "Vancouver" },
  "changeStatus": "not_monitored",
  "reason": null
}

Use it from code

Actor ID: cliqtomedia/website-traffic-estimator. You need your Apify API token from Apify Console → Settings → API & Integrations.

Python · apify-client
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/website-traffic-estimator").call(run_input={
    "domains": [
        "apify.com"
    ],
    "mode": "lookup"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
cURL
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~website-traffic-estimator/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domains": ["apify.com"], "mode": "lookup"}'
LangChain · langchain-apify
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/website-traffic-estimator")
result = tool.invoke({"run_input": {"domains": ["apify.com"], "mode": "lookup"}})
print(result)

The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.

Data fields (40)
FieldTypeMeaning
domainstringNormalized input domain.
statusstringcomplete, partial, not_found or error.
sourcestringData provider. SimilarSites fallback has no known measurement month.
sourceUrlstringPublic page for this profile.
fetchedAtstringUTC time this profile was collected.
changeStatusstringMonitor result: new, unchanged, increased, decreased, changed or not_monitored.
reasonstringReason for partial, missing or failed data.
snapshotDatestringMeasurement month published by Similarweb. Null for undated fallback.
sourceDomainstringDomain reported by the source. It may be a parent domain.
countryCodestringMain audience country, as a two-letter code.
categorystringSource category path.
titlestringPublic company name, when available.
trancoDatestringDate of the Tranco rank.
visitsnumberEstimated visits in the snapshot month. Fallback visits have no known month.
globalRanknumberSimilarweb global rank. 1 is the highest rank.
countryRanknumberSimilarweb rank in the main audience country.
categoryRanknumberSource category rank. Check source before comparing.
bounceRatenumberBounce rate as a fraction from 0 to 1.
pagesPerVisitnumberAverage pages per visit.
avgVisitSecnumberAverage visit duration in seconds.
changePercentnumberMonthly visit change in percent.
visitsChangePercentnumberVisit change since the previous monitor observation, in percent.
trancoRanknumberTranco popularity rank, separate from Similarweb rank.
organicSearchSharenumberOrganic share of search traffic only, from 0 to 1.
paidSearchSharenumberPaid share of search traffic only, from 0 to 1.
directSharenumberAvailable direct share of traffic, from 0 to 1. Hidden shares are null.
organicSharenumberAvailable organic share of traffic, from 0 to 1. Hidden shares are null.
paidSharenumberAvailable paid share of traffic, from 0 to 1. Hidden shares are null.
referralsSharenumberAvailable referrals share of traffic, from 0 to 1. Hidden shares are null.
social_organicSharenumberAvailable social organic share of traffic, from 0 to 1. Hidden shares are null.
social_paidSharenumberAvailable social paid share of traffic, from 0 to 1. Hidden shares are null.
mailSharenumberAvailable mail share of traffic, from 0 to 1. Hidden shares are null.
adsSharenumberAvailable ads share of traffic, from 0 to 1. Hidden shares are null.
gen_aiSharenumberAvailable gen ai share of traffic, from 0 to 1. Hidden shares are null.
affiliateSharenumberAvailable affiliate share of traffic, from 0 to 1. Hidden shares are null.
isEstimatebooleanTrue: traffic metrics are estimates, not private analytics.
monthlyVisitsarrayMonthly estimates. Older visits are calculated from the latest count and published month changes. Each item states its method.
monthlyVisitsJsonstringMonthly estimates. Older visits are calculated from the latest count and published month changes. Each item states its method. JSON text in flat mode.
trafficSourcesarrayChannel names, available shares and channel ranks. Hidden shares stay null.
trafficSourcesJsonstringChannel names, available shares and channel ranks. Hidden shares stay null. JSON text in flat mode.
Input settings (20)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
Websitesdomainsarray["apify.com"]
Paste a listdomainsTextstring
Run modemodestring"lookup"
Monitor store namestateNamestring
Traffic sourcesincludeSourcesbooleantrue
Top countriesincludeCountriesbooleantrue
More public dataincludeDetailsbooleantrue
Only changed profilesonlyChangesbooleanfalse
Use fallback datafallbackToOpenDatabooleanfalse
Row formatoutputFormatstring"full"
Minimum monthly visitsminMonthlyVisitsinteger0
Largest global rank numbermaxGlobalRankinteger0
Main audience countriescountriesarray[]
Category containscategoryFilterstring""
AI referral reportincludeAiTrafficbooleanfalse
Connection routeproxyModestring"auto"
Parallel domain checksmaxConcurrencyinteger4
Additional websiteswebsitesarray
Send results to (optional)deliveryConnectorstring
Notion page or channel (optional)deliveryTargetstring

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure