Similarweb Scraper avatar

Similarweb Scraper

Pricing

$1.00 / 1,000 results

Go to Apify Store
Similarweb Scraper

Similarweb Scraper

Extract public top website rankings, engagement metrics, category, and monthly snapshot for worldwide, country, or category lists. Filter a ranking list by domain.

Pricing

$1.00 / 1,000 results

Rating

0.0

(0)

Developer

MLG Data

MLG Data

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

10 days ago

Last modified

Categories

Share

Scrape Similarweb's public top website rankings to compare domain position, category, bounce rate, pages per visit, and average visit duration. Export Similarweb ranking data to JSON, CSV, or Excel from a repeatable workflow without manually copying rows from ranking pages.

This actor reads one public ranking list per run: worldwide or a selected country, across all categories or a selected category. You can return the entire list or provide domains to keep only matching entries. Each list currently contains at most 50 websites. The actor reports only data present in that public list; traffic volume, channel shares, and keyword details are unavailable from this source.

What data can you extract from Similarweb?

Each result represents one website in the selected ranking for a particular monthly snapshot. Rates are numeric shares between 0 and 1, not formatted percentages. Rank values depend on the selected list: global rank applies to the worldwide, all-category list; country rank applies to an all-category country list; category rank applies when a category is selected.

FieldDescriptionExample
domainDomain shown in the ranking.wikipedia.org
urlPublic profile address for the domain.https://www.similarweb.com/website/wikipedia.org/
snapshotDateMonth represented by the ranking.2026-08-01T00:00:00+00:00
titleReserved profile title; null with the ranking source.null
descriptionReserved profile description; null with the ranking source.null
categorySource category identifier.reference_materials/dictionaries_and_encyclopedias
screenshotReserved website image; null with the ranking source.null
faviconSmall site icon URL, when supplied.A site image URL
globalRankPosition in the worldwide all-category list; otherwise null.11
countryRankCountry slug and position in a country-wide list; otherwise null.{"country":"united-states","rank":12}
categoryRankPosition in the chosen category list; otherwise null.8
rankChangeSource-provided change in ranking position.0
estimatedMonthlyVisitsReserved monthly visit series; null with this source.null
bounceRateShare of visits recorded as bounces.0.5340224346966369
pagesPerVisitAverage pages viewed per visit.3.3378367070283574
visitsReserved monthly visit estimate; null with this source.null
timeOnSiteAverage visit duration in seconds.194
visitDurationThe same duration as hours:minutes:seconds.00:03:14
topCountrySharesReserved geographic distribution; null with this source.null
trafficSourcesReserved acquisition breakdown; null with this source.null
competitorsReserved competitor list; null with this source.null
isDataFromGAReserved connection indicator; null with this source.null
topKeywordsReserved keyword list; null with this source.null
rankingCountryCountry slug used for the request.worldwide
rankingCategoryCategory slug used for the request.all-categories
rankingPositionPosition within the specific selected list.11
sourceScopeIdentifies the public ranking source.top-websites

The reserved fields preserve a stable shape for downstream data pipelines. Their null values are intentional. Do not interpret a null visit estimate as zero visits or a null keyword list as an empty set of search queries. A missing value means the public ranking response did not supply that measurement.

How to scrape Similarweb

  1. Choose a ranking scope. Keep country as worldwide and category as all-categories for the global list, or enter URL slugs from the public top websites pages.
  2. Leave domains empty to collect the selected top 50. To inspect specific domains, enter their domains or ordinary website URLs. The actor keeps matches from the chosen list.
  3. Set maxItems to the number of matching rows you need. The source itself limits each selected list to 50 entries.
  4. Run the actor and open the dataset. Download the rows as JSON, CSV, or Excel, or use the dataset URL in a scheduled workflow.

The global all-category list is a useful first run because it requires no filters and shows how fields behave. For a country or category, open that ranking page and copy its URL slug into the corresponding input. A category URL slug is not the same as the category identifier in a result row: the input uses readable, hyphenated URL text, while the row uses the site's internal category identifier.

Input

ParameterTypeDefaultDescription
domainsArray of stringsEmptyOptional domains or website URLs to match against the selected public ranking. Unlisted domains produce no row.
countryStringworldwideCountry URL slug, such as united-states.
categoryStringall-categoriesCategory URL slug, such as computers-electronics-and-technology.
maxItemsInteger50Maximum rows to save, from 0 to 50. Zero means the source list limit applies.
proxyConfigurationObjectBuilt-in proxyConnection settings for the public ranking request.

For a targeted check of a domain known to appear in the global list:

{
"domains": ["wikipedia.org"],
"country": "worldwide",
"category": "all-categories",
"maxItems": 50
}

The domains filter does not expand the source's coverage. For example, a domain ranked outside the selected top 50 will not appear, even if its public profile URL exists. For a set of unrelated domains, use several ranking scopes only if each domain is known to appear in one of them. The actor makes one ranking request per run and does not search every country and category automatically.

Domains are matched by normalized host name. An ordinary URL such as https://www.wikipedia.org/ can be entered instead of wikipedia.org; the scheme, path, and leading www. are removed before matching. The resulting domain field keeps the spelling returned by the ranking source. Invalid domain values fail the run early so a mistyped host does not silently create a misleading result.

Output example

This record came from a successful run of the worldwide all-category list with an August 2026 snapshot. The displayed dataset item includes null fields because the public ranking response does not provide profile-only measurements.

{
"domain": "wikipedia.org",
"url": "https://www.similarweb.com/website/wikipedia.org/",
"snapshotDate": "2026-08-01T00:00:00+00:00",
"title": null,
"description": null,
"category": "reference_materials/dictionaries_and_encyclopedias",
"screenshot": null,
"favicon": "https://site-images.similarcdn.com/image?url=wikipedia.org&t=2&s=1&h=460eb7e23fbc3666abf9d8b5497c3ca33d1de8ff9c66dd5d182c7633fe475c61",
"globalRank": 11,
"countryRank": null,
"categoryRank": null,
"rankChange": 0,
"estimatedMonthlyVisits": null,
"bounceRate": 0.5340224346966369,
"pagesPerVisit": 3.3378367070283574,
"visits": null,
"timeOnSite": 194,
"visitDuration": "00:03:14",
"topCountryShares": null,
"trafficSources": null,
"competitors": null,
"isDataFromGA": null,
"topKeywords": null,
"rankingCountry": "worldwide",
"rankingCategory": "all-categories",
"rankingPosition": 11,
"sourceScope": "top-websites"
}

The run used 32 domains drawn from the public global list and produced 32 rows. Every row had a domain, snapshot date, category, global rank, bounce rate, pages per visit, average duration, and ranking position. The monthly snapshot can change when the source publishes a newer list, so compare snapshotDate before combining exports from different runs.

Use cases

  • Competitive benchmarking: Keep a monthly record of where prominent sites sit in a global, country, or category list. Compare rankingPosition and rankChange over time for an initial signal of movement.
  • Audience engagement screening: Compare bounce rates, pages per visit, and visit durations among sites that appear in the same scope. A shared ranking scope makes the position values directly comparable.
  • Category research: Collect a category's leading domains and its category identifiers before deeper manual research. Export a stable list for a research worksheet.
  • Regional monitoring: Run country lists on a schedule to see which websites occupy the top positions in each region. Keep rankingCountry with every record so merged datasets retain their context.
  • Data quality checks: Use explicit nulls to distinguish metrics available in the ranking from fields that require a richer data source. This helps prevent missing traffic estimates from being treated as zeros.
  • Recurring reports: Save monthly snapshots and compare the same scope across runs. Use the snapshot month, scope, and domain together as a practical key for joins.

These uses depend on public rank and engagement data. They do not imply access to the site's paid analytics products or to visit estimates for arbitrary domains. For ranking changes, retain previous dataset exports; this actor returns the current public list rather than a historical series.

How much does it cost to scrape Similarweb?

The result event price is $0.001 per saved row, equivalent to $1 per 1,000 results. One selected ranking produces at most 50 rows, so reaching 1,000 results requires multiple runs across relevant scopes. Ordinary platform usage is covered by the event price shown for this actor; the actual number of charged events depends on how many rows are saved.

ScenarioResults savedResult-event charge
One filtered list with 10 matching domains10$0.01
One full top website list50$0.05
Twenty full lists across scopes1,000$1.00

The 32-row validation run corresponds to $0.032 in result events. A request for domains absent from the selected list saves no rows; it does not invent placeholder records. When comparing cost between runs, count dataset items rather than the number of domains entered. The public list's 50-row cap also means setting maxItems above the available matches cannot increase output.

Tips for best results

Select the scope before choosing a domain filter. The same site may be present in a global list but absent from a country or category list, and positions from different scopes are not interchangeable. When you need the highest-ranking domains in a category, leave domains empty and save the full selected list. When you already know the domains of interest, use the filter to keep the dataset small.

Use the country and category slugs visible in public ranking URLs. The inputs accept lowercase letters, digits, and hyphens. A short country code such as us is not the URL slug for the country ranking; a full slug such as united-states is required. Likewise, choose a readable category slug rather than the underscore-separated category identifier found in result rows.

For trend work, record the input scope and the snapshotDate with each export. The date describes the source's measurement month, not the exact time you ran the actor. Two runs on different days can contain the same snapshot. A new snapshot can reorder domains or change engagement measures, so compare only like scopes and identify the month before drawing conclusions.

Rates are raw fractions. Multiply bounceRate by 100 only when displaying it as a percentage. timeOnSite is in seconds, while visitDuration is already formatted. Neither field should be read as total time spent across all users. If a category is selected, use categoryRank or rankingPosition; globalRank is intentionally null outside the worldwide all-category list.

Keep the default connection settings unless a run encounters a temporary access problem. The actor uses the shared fetch layer's retry and proxy rotation behavior. Repeated runs of the same scope will normally return the same monthly data until the source updates its list, so schedule at a cadence that matches the reporting month rather than repeatedly collecting identical rows.

Limits

The ranking endpoint returns up to 50 sites for one selected scope. This is a source limit, not a pagination setting. A domain outside that list cannot be enriched through this actor. The actor may therefore return fewer rows than the number of domains submitted, including zero. Check the run log for the count of unmatched domains.

Individual website profile pages and the separate snapshot endpoint presented access challenges during development, including through a residential connection. This actor does not use those sources. As a result, estimatedMonthlyVisits, visits, trafficSources, topCountryShares, topKeywords, and competitors remain null. The same applies to profile title, description, screenshot, and connection indicator. These fields are kept in the output shape so their absence is explicit and predictable.

Ranking values are scoped. globalRank is populated only for the worldwide all-category list. For a country all-category list, countryRank contains the selected slug and position. For category lists, categoryRank gives the position in that selection. rankingPosition is always the position within the exact requested list. A country slug is not a numeric country code, and the actor does not claim otherwise.

Public data may change without notice. Categories can be renamed, lists can be updated, and some site rows may lack individual engagement fields. The validation run filled its required engagement fields for 32 global entries, but that observation does not guarantee equal coverage in every country or category. Review null rates when moving to a new scope.

FAQ

Can I enter any domain?

You can enter any syntactically valid domain, but a result is returned only if that domain occurs in the selected public top 50 list. Choose a scope where the site is listed. The actor does not search every available list and does not fetch a blocked individual profile.

Why are visit estimates and channel shares null?

Those values are absent from the reachable ranking response. Null communicates missing source data, not a value of zero. The actor does not infer visits from rank or substitute data from unrelated sites.

The actor reads public ranking information. Review the site's terms and applicable law for your use, respect privacy requirements, and avoid using outputs to make unsupported claims about people or businesses.

Do I need to configure a proxy?

The default connection configuration is designed for the public ranking request. Change it only if your environment or access needs require it. Some site routes are access-challenged regardless of connection choice, which is why this actor limits itself to the ranking endpoint.

How fast is a run?

The actor makes one ranking request and then writes up to 50 rows. Duration varies with build startup, network conditions, and dataset writes. The 32-row validation run completed successfully; use your own run history for timing in a recurring workflow.

Can I schedule runs and export results?

Yes. Schedule the actor at a useful reporting cadence and export its dataset as JSON, CSV, or Excel. Retain the selected country and category with each export so historical comparisons use the same scope.

What if a field is empty?

First check whether the field is reserved and always null for this source. For engagement fields, inspect the source row and rerun after a monthly update if the value is absent. Do not replace null with zero unless your analysis explicitly defines that rule.

Integrations

The default dataset can be read through the platform API or connected to webhooks and automation flows. Export rows to a spreadsheet for review, or send them to a database for monthly comparisons. Use domain, snapshotDate, rankingCountry, and rankingCategory to keep records from different scopes distinct. If you schedule multiple country or category runs, store each run's input alongside its dataset so the scope can be audited later.

Support

Open an issue on the Issues tab; we reply within 24h and add fields on request.