Website Traffic Rank Estimator avatar

Website Traffic Rank Estimator

Pricing

from $1.75 / 1,000 company checkeds

Go to Apify Store
Website Traffic Rank Estimator

Website Traffic Rank Estimator

Returns a research grade popularity rank for any company domain from the public Tranco list, with a 40 day trend, plus a modeled monthly visits band with its method and measured confidence. Optional Cloudflare Radar and Chrome UX Report with your own keys. One flat row per company.

Pricing

from $1.75 / 1,000 company checkeds

Rating

0.0

(0)

Developer

Mamba Labs

Mamba Labs

Maintained by Community

Actor stats

0

Bookmarked

12

Total users

2

Monthly active users

a day ago

Last modified

Share

What's new (October 2026)

  • A modeled monthly visits band. Every ranked row now carries visits_band_modeled (under_10k, 10k_100k, 100k_1m, 1m_10m, 10m_100m, or over_100m), visits_modeled_method, and visits_modeled_confidence. The band is a model fit from the Tranco rank on 186 sites with published visit estimates, and the confidence is its measured hit rate: the band was exactly right for 51 to 68 percent of held out sites and within one band for 92 to 98 percent. On by default, null without a Tranco rank. It is labeled as a model on every row; the rank fields are unchanged.

No price change. Existing fields and saved inputs work as before.

๐Ÿ”Ž What can Website Traffic Rank Estimator do?

Give it a company domain. It returns that domain's position on the Tranco list, the date of that position, an honest band, and whether it has been rising or falling over the last 40 days. One flat row per company.

A popularity rank plus a modeled monthly visits band. Each row carries the Tranco popularity rank and visits_band_modeled, a monthly visits band with its method (visits_modeled_method) and measured confidence (visits_modeled_confidence). The band is a model, not measured traffic: Tranco rank 238 does not convert to an exact visit count.

๐Ÿ“ฆ What you getโš™๏ธ Features and integrations
๐Ÿ“Š Tranco popularity rank for any company domain
๐Ÿ“ˆ 40 day trend and direction of travel
๐ŸŽš๏ธ Honest band, such as top_1k, rather than a false precision
๐Ÿงพ 26 flat fields, snake_case, one row per company
๐Ÿ”ฌ Research grade list, Tranco is built to resist manipulation
๐Ÿ”‘ Optional Cloudflare Radar and Chrome UX Report with your own keys
๐Ÿšซ Never invents a visit count: the only traffic figure is a labeled, modeled band with its hit rate
โฌ‡๏ธ Export to JSON, CSV, Excel, HTML or XML

Bought by teams sizing accounts before outreach, marketplace and partnership analysts, and anyone who needs a defensible popularity signal rather than a vendor's modeled estimate.

๐Ÿšซ A rank is not a visit count, and this actor will never sell you one. Tools that quote monthly visits are modeling them from panel data. This returns a rank position from a published research list, plus a band and a trend. If you need visit estimates, buy a tool that models them and know that is what you bought.

๐Ÿ’ก Why use Website Traffic Rank Estimator?

The provenance is defensible. Tranco is a research list built by combining several crawler rankings specifically to be harder to manipulate than any single one of them. If you have to justify a number to somebody, that is the property you want behind it.

The band is the honest unit. Rank 238 and rank 244 are the same fact about a company. Sorting a list on raw rank makes noise look like signal, so rank_band gives you the precision the data actually supports.

The trend is free. Tranco returns 40 days of history in the same response as the current rank, so rank_trend costs no extra request and no extra money.

A skipped source says skipped. If you did not give a Cloudflare key, the Radar column says skipped, not not_found. You will never mistake "we did not look" for "there is nothing there".

๐Ÿงญ Three sources, one free and two bring your own key

  1. Tranco, the default and the primary. Free, public, no key, and it is the one with research grade provenance.
  2. Cloudflare Radar, optional, with your own free Cloudflare token. It measures a different population from Tranco, so the numbers differ and neither is wrong.
  3. Chrome UX Report, optional, with your own free Google API key. It reports real user performance rather than rank, and its most useful output is whether Chrome has enough real user data on the origin at all.

๐Ÿ“‹ What data can Website Traffic Rank Estimator extract?

Every row carries 26 flat fields. These are the ones a buyer actually filters and sorts on.

FieldTypeMeaning
degradedbooleanTrue when this row could not be produced normally, for example the company site was unreachable and no discovery could run. A degraded row is never charged.
degradation_reasonstring | nullWhy the row is degraded, in plain words. Null on a normal row.
company_domainstring | nullThe company domain this row is about, normalized. Null when only a handle or a name was supplied. This is the join key across the whole Mamba Labs fleet.
company_namestring | nullThe company name as supplied or derived. Improves search accuracy and is what the identity gate matches against.
tranco_rankinteger | nullPosition on the Tranco list, where 1 is the most popular domain on the internet. This is a RANK and not a visit count: rank 238 does not convert to any number of visitors. Null when the domain is not on the list, which is true of most company domains and is a real answer.
tranco_rank_datestring | nullThe date of the rank above. Tranco publishes daily, so a rank without a date is a number with no shelf life.
rank_bandstring | nulltop_1k, top_10k, top_100k, top_1m or beyond_1m. This is the field to sort and filter on: rank 238 and rank 244 are the same fact about a company and look like different numbers, and the band is honest at the precision the data supports.
rank_trendstring | nullrising, falling or stable over the observation window. A LOWER rank is BETTER, so a domain whose rank number falls is rising in popularity. The field is a word rather than a signed number precisely because that inversion is easy to read backwards.
rank_changeinteger | nullNewest rank minus oldest rank across the window. NEGATIVE means the domain became more popular. Read rank_trend if you do not want to hold that inversion in your head.
rank_observationsinteger | nullHow many daily observations the trend was computed over. Tranco returns roughly 40. A trend computed over two points is not a trend, and this column is how you tell.
rank_meets_thresholdboolean | nullTrue when the rank is at or above the minRank threshold you set. FALSE means checked and below it. Null when you set no threshold or when the domain has no rank.
radar_rankinteger | nullCloudflare Radar rank, when you supplied a Cloudflare token and asked for that source. Radar measures a different population from Tranco, so the two numbers will differ and neither is wrong.
radar_bucketstring | nullRadar publishes a bucket rather than an exact position for most domains. It is passed through as published rather than converted into a precise looking rank it is not.
radar_statusstring | nullok, not_found, auth_failed, blocked or skipped. SKIPPED means you did not ask for this source or supplied no key, and it must never be read as "there is nothing there".
crux_has_databoolean | nullTrue when Chrome has enough real user data on this origin to report at all. FALSE is the interesting one: it means the site is visited too little for Chrome to publish a record, which is a stronger statement about real usage than any rank. Null when the source was skipped.
crux_lcp_p75_msinteger | nullThe 75th percentile largest contentful paint in milliseconds, from real Chrome users. This is a PERFORMANCE measurement, not traffic.
visits_band_modeledstring | nullA MODELED monthly visits band, never a measurement: under_10k, 10k_100k, 100k_1m, 1m_10m, 10m_100m or over_100m. Fit from the Tranco rank (log visits against log rank) on 186 sites whose Ahrefs organic visit estimates are published in the CC0 awesome-submitlist. Organic search visits undercount total visits, so read it as a floor. Null without a rank.
visits_modeled_methodstring | nullThe model and its version, for example tranco_rank_loglinear_v1. +crux_floor when CrUX data lifted a band under 10K.
visits_modeled_confidencenumber | nullMeasured, not judged: the share of held out calibration sites in the same Tranco range whose modeled band matched their published band (0.51 to 0.68 at the 2026-10-28 fit).
crux_statusstring | nullok, not_found, auth_failed, blocked or skipped. Skipped means you did not ask for this source or supplied no key.
coveragenumber | nullHow much of what this actor can return actually came back on this row, from 0 to 1. Computed over this actor value fields only, never over the identity or status columns. Null on a degraded row, where nothing was attempted. This is a reporting field: nothing is dropped for low coverage and no event fires on it.
fetch_statusstringok, not_found, not_extractable, blocked, identity_mismatch, auth_failed or skipped. Read this before reading any value on the row. not_found means we looked and there is nothing there; blocked and not_extractable mean we could not look, and they must never be read as an absence.
row_statusstring | nullok when the lookup ran and found what it looked for, no_match when it ran and there is nothing to find, incomplete when the platform withheld or refused part of it (the reason is in error_reason), error when the row could not be produced. Read from fetch_status and degraded.
error_reasonstring | nullWhy the row is incomplete or an error, in plain words. Null on an ok or no_match row.
billable_events_jsonstringThe pay per event charges this row caused, as a JSON array of {"event","count"}. [] when the row charged nothing. The once per run apify-actor-start event is not on any row.
run_datestringISO 8601 timestamp of this run. Social counts move, so a row without a date is a number with no shelf life.

โš ๏ธ How to read these values. rank_change is negative when a domain became MORE popular, because a lower rank is better. If you would rather not hold that in your head, read rank_trend, which says rising or falling in plain words.

  1. Put a company domain in company_domain. That is the whole setup for the free source.
  2. Set minRank if you want a ready made filter column, for example 10000 to mark everything in the top ten thousand.
  3. Add your own Cloudflare or Google keys only if you want the optional sources.
  4. For a list, put the domains in company_domains, one per line, or pass an array of objects with the same fields.

๐Ÿงช Using it in Clay

Add an Enrichment > Apify column, pick this actor, and map company_domain to your domain column.

The single most useful pattern: filter on rank_band, not on tranco_rank. Most B2B company domains are not on the Tranco list at all, and tranco_rank: null on a good prospect is normal rather than disqualifying. A rank is evidence of consumer scale reach, which is not the same as company quality.

๐Ÿ’ต How much does it cost?

Pay per event. Every run is also charged Apify's platform start event, apify-actor-start, at $0.00005 per GB of run memory, one event and $0.00005 at this actor's default of 256 MB. Everything else is charged per row of output. Prices shown are the free plan price; paid Apify plans pay 10 to 30 percent less per event, depending on the plan.

Free Apify plan: up to 1,200 results per calendar month, reset on the 1st. Any paid Apify plan removes the cap.

Spend limits. Set max_charge_usd and the run stops before its charges pass that amount. The maximum cost per run you set in Apify is honored the same way. Either way every row already charged is kept, and each row lists its own charges in billable_events_json.

EventFires whenPrice
company-checkedOnce per company for which the rank lookup completed and a non degraded row was produced, whether or not anything was found. A not_found row fires this event, because looking and finding nothing is a real answer and it is the work you asked for. A degraded row, where the lookup could not run at all, fires nothing.$0.0025
rank-resolvedOnce per company where a numeric rank was returned by at least one source and banded. Does not fire when the domain is absent from every source queried, which is a real answer and is covered by the check event.$0.0020

๐Ÿ’ณ What you are billed for. rank-resolved fires only when a numeric rank came back. A domain absent from every source queried charges the check event and nothing else.

The trend costs nothing: the history arrives in the same response as the rank.

What the same coverage costs bought a la carte: The obvious comparison is Similarweb, which the work order excludes and which is a paid subscription rather than a per lookup product. On the Apify Store the nearest actors are Similarweb scrapers, which are priced per result and are scraping a vendor that forbids it. Tranco is a published research list, so this actor charges for the lookup, the banding and the trend rather than for access to something that is free.

โŒจ๏ธ Input

FieldTypeRequiredMeaning
company_domainstringnoBare company domain, for example stripe.com. This is the only required input and it is the join key for every other actor in the fleet.
company_namestringnoOptional. Carried through to the output row for joining. Rank lookup is keyed on the domain alone, so the name does not change the answer.
sourcesstringnoWhich rank sources to query. Tranco is free and needs no key. Cloudflare Radar and Chrome UX Report each need your own free key, and a source you did not supply a key for reports "skipped" rather than "not found", because we did not look. Default tranco; options tranco_radar, tranco_crux, all. Sent as a string for Clay compatibility.
includeTrendstringnoWhen "true" (default) the rank history Tranco already returns is used to say whether the domain is rising, falling or stable. It costs nothing extra: the history arrives in the same response. Sent as a string for Clay compatibility.
minRankstringnoSets rank_meets_threshold on the row, so you can filter a list to established sites without writing the comparison yourself. It never drops a row and never changes the rank returned. Default none (no threshold); options 1000, 10000, 100000, 1000000. Sent as a string for Clay compatibility.
cloudflareApiTokenstringnoYOUR OWN Cloudflare API token, free to create at dash.cloudflare.com. OPTIONAL and only used when sources includes Radar. Marked secret, so the value never renders on this page. Without it Radar is skipped and the run says so. This actor never uses a key of its own.
cruxApiKeystringnoYOUR OWN Google API key with the Chrome UX Report API enabled, free at console.cloud.google.com. OPTIONAL and only used when sources includes CrUX. Marked secret, so the value never renders on this page. Without it CrUX is skipped and the run says so. This actor never uses a key of its own.
skipCachestringnoWhen "false" (default) a successful lookup is cached for seven days and reused, which costs you nothing on a repeated run. Set "true" to force a fresh fetch. Sent as a string for Clay compatibility.
company_domainsarraynoOptional. A list of bare company domains, one per line, for example stripe.com. Each domain becomes its own row, so a list of 500 is one run and one start charge instead of 500. Per company fields above (name, handle, ids) apply only to the single Company Domain row, never to the list.
max_charge_usdnumbernoOptional. The run stops before its event charges pass this amount, for example 2.50. Every row already charged is kept. Leave empty for no cap beyond the maximum cost per run you set in Apify, which is also honored.
{
"company_domain": "stripe.com",
"company_name": "Stripe",
"sources": "tranco",
"includeTrend": "true"
}

๐Ÿ“ค Output

Exports to JSON, CSV, Excel, HTML or XML. One flat, snake_case row per company. No nested objects, so it drops straight into Clay, a spreadsheet or a warehouse table without a flattening step.

{
"degraded": false,
"degradation_reason": null,
"company_domain": "stripe.com",
"company_name": "Stripe",
"tranco_rank": 238,
"tranco_rank_date": "2026-08-21",
"rank_band": "top_1k",
"visits_band_modeled": "10m_100m",
"visits_modeled_method": "tranco_rank_loglinear_v1",
"visits_modeled_confidence": 0.54,
"rank_trend": "stable",
"rank_change": 1,
"rank_observations": 40,
"rank_meets_threshold": null,
"radar_rank": null,
"radar_bucket": null,
"radar_status": "skipped",
"crux_has_data": null,
"crux_lcp_p75_ms": null,
"crux_status": "skipped",
"coverage": 0.67,
"fetch_status": "ok",
"row_status": "ok",
"error_reason": null,
"billable_events_json": "[{\"event\":\"company-checked\",\"count\":1}]",
"run_date": "2026-08-22T19:23:52.998Z"
}

false versus null, and why the difference matters

false means we looked and the answer is no. null means we could not look, or the platform withheld it. They are never interchangeable in this output. If you filter for companies with no presence on this platform, filter on false, because null rows are unknown rather than absent and including them will overstate your list.

๐Ÿ’ก Tips

  • Do not disqualify on a null rank. Most B2B companies are nowhere near the top million, and that says nothing about whether they can buy from you.
  • Use rank_band for filtering and tranco_rank for display.
  • crux_has_data: false is the strongest real usage signal here, stronger than any rank: it means Chrome sees too few real visitors to publish anything.
  • A falling trend on a top 10k domain is worth a look. It is one of the few signals here that suggests a change in a company's situation rather than its size.

โš ๏ธ Known limits

  • Ranks are not traffic. visits_band_modeled is the closest this actor comes, and it is a one decade wide band from a fitted model: right on about half of held out sites and within one band on more than nine in ten. Its calibration uses Ahrefs organic search estimates, which undercount sites with heavy direct or app traffic. Use the band to sort, never as a number to report.
  • Most company domains are not ranked. Tranco covers the top million or so; the great majority of B2B companies fall outside it and return not_found, correctly.
  • A rank measures consumer scale reach, which correlates poorly with company revenue, headcount or buying power. A regional manufacturer with real money can rank nowhere.
  • Radar and CrUX need your own keys. Without them those columns say skipped.
  • Tranco updates daily and ranks move, which is why every row carries tranco_rank_date.

โ“ FAQ

How many visitors does rank 238 mean? There is no answer to that question and this actor will not invent one. Rank is a position, not a volume.

Why is the rank null for my prospect? Because the domain is not on the Tranco list. That is normal for the large majority of B2B companies and is not a data quality problem.

Do I need any API key? Not for Tranco, which is the default. Cloudflare Radar and Chrome UX Report need your own free keys.

Why does rank_change go negative when things improve? Because rank 1 is the top. A number going down means moving up the list. rank_trend says it in words.

Is Similarweb used? No. Never. The sources are Tranco, Cloudflare Radar and the Chrome UX Report, all of which publish for reuse.

๐Ÿงฉ Want other GTM data?

Mamba Labs builds a fleet of GTM enrichment actors that share one flat, Clay-ready output convention, so their rows join on company_domain with no cleaning step:

๐Ÿ”” Account Hiring Watch๐Ÿ•ต๏ธ Agent Accessibility Auditor
๐Ÿ  Agent to Brokerage Resolver๐Ÿค– AI Tooling Detector
๐Ÿ“ก GTM Signals Aggregator๐Ÿš€ Prospect Engine
๐Ÿ—จ๏ธ B2B Reddit Conversation Monitor๐Ÿ“ Publishing Frequency Tracker
๐Ÿฆ‹ Bluesky Brand Presence Mapper๐Ÿ”€ Career Change Signal Engine
โฉ Sequencer Lead Push๐Ÿ”„ Company Change Event Feed
๐Ÿ“‡ Company Contact Details Extractor๐Ÿงญ Company Discovery List Builder
๐Ÿข Company Firmographic Enricher๐Ÿงฎ Company Headcount Estimator
๐Ÿชช Company Identity Resolver๐ŸŒ Company Social Presence Mapper
๐Ÿ“‰ Competitor Price, Stock, and Changelog Monitor๐Ÿท๏ธ Contact Classifier
๐Ÿงฐ Contractor License Lookup๐Ÿช Cookie Consent Audit
๐Ÿ“ˆ Influencer Change Monitor๐Ÿ”Ž Influencer Finder
๐Ÿงพ Influencer Lead List Builder๐Ÿ‘ค Influencer Profile Scraper
๐Ÿ“ฌ Domain Deliverability Checker๐Ÿ”— Domain to LinkedIn URL Resolver
๐Ÿ›’ Ecommerce Platform Profiler๐Ÿฌ Ecommerce Store Discovery
โœ‰๏ธ Work Email Waterfall๐ŸŽช Event Presence Index
โš–๏ธ Expert Witness Directory๐Ÿ’ต Company Funding Record
๐Ÿ’ฐ Funding and Press Signal Scanner๐Ÿ™ GitHub Organization Signal Scanner
๐Ÿชง Google Ads Transparency Monitor๐Ÿง‘โ€๐Ÿ’ผ GTM Hiring Signal Scraper
๐Ÿ“‹ Job Posting Monitor๐Ÿงฑ Tech Stack Signal Detector
๐ŸŽฏ ICP Fit Scorer๐Ÿ›๏ธ Integration and Marketplace Presence Mapper
๐Ÿ”‘ Job Board Keyword Signal Scanner๐Ÿงณ Job Change Tracker
๐Ÿ›๏ธ Legal Entity Resolver๐Ÿ“ฐ Link in Bio Scraper and Newsletter Detector
๐Ÿ’ผ LinkedIn Company Page Mapper๐Ÿ’ฌ LinkedIn Post Tracker
๐Ÿช Local Business Lead Builder๐Ÿ“ Local Rank and Map Pack Tracker
๐Ÿ‘ฏ Lookalike Company Finder๐Ÿญ Manufacturer and Supplier Finder
๐Ÿ“ข Meta Ad Library Monitor๐Ÿ“ธ Instagram Facebook Brand Presence Mapper
๐Ÿ“ฑ Mobile Phone Waterfall๐Ÿ—‚๏ธ New Company Registrations Feed
๐Ÿ†• New Hire Finder๐Ÿ—ž๏ธ Newsletter Sponsor Tracker
๐Ÿ“œ Open Tender and RFP Finder๐Ÿ“ฎ Outbound Stack Detector
๐Ÿ“„ Page Finder and Extractor๐Ÿ“’ Partner and Member Directory Extractor
๐Ÿง‘ People Finder & Email Verifier๐Ÿ†” Person LinkedIn URL Resolver
๐Ÿ‘ฃ Person Social Footprint Mapper๐Ÿ“ง Personal Email to Company Resolver
๐Ÿ“Œ Pinterest Brand Presence Mapper๐ŸŽ™๏ธ Podcast Guest and Host Finder
๐Ÿ† Government Contract Award Monitor๐Ÿ“… Reporting Window Finder
๐Ÿ—ณ๏ธ Public Feature Board and Roadmap Monitor๐Ÿ‘ฝ Reddit Brand Presence Mapper
โญ Trustpilot Reputation Enricher๐Ÿ“จ Sequencer Event Poller
๐Ÿค Influencer Talent Agency Lookup๐Ÿ‘ฅ Team Page People Extractor
๐ŸŽต TikTok Brand Presence Mapper๐Ÿฆ„ VC and Accelerator Portfolio List Builder
โ™ฟ WCAG Accessibility Audit๐Ÿงช Website Phrase and Business Model Classifier
๐Ÿ… Workplace Program Detectorโœ–๏ธ X Brand Presence Mapper
โ–ถ๏ธ YouTube Channel Stats Extractor

Every actor in the suite takes a domain or a company and returns one flat row, so they stack in the same Clay table without reshaping anything.

๐Ÿ†˜ Support

Issues, field requests and bug reports: open an issue on the actor's Issues tab. Mamba Labs reads every one.

โ„น๏ธ Sourcing and legal. Ranks come from the public Tranco research list, which publishes its methodology and its daily files. Optional Cloudflare Radar and Chrome UX Report fields require your own keys and are governed by your agreements with those providers. A rank measures relative popularity, not traffic, revenue or quality.

Built by Mamba Labs.