Website Traffic Rank Estimator - Tranco Rank by Domain
Pricing
from $1.75 / 1,000 company checkeds
Website Traffic Rank Estimator - Tranco Rank by Domain
Returns a research grade popularity RANK for any company domain from the public Tranco list, with a 40 day trend and an honest band. Ranks are not visit counts and this actor never invents one. 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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
๐ 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.
These are RANKS, not traffic. Tranco rank 238 does not convert to visits, sessions or a monthly number, and this actor will never hand you one that pretends otherwise.
| ๐ฆ 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๐งพ 20 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, which is the whole point โฌ๏ธ 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
- Tranco, the default and the primary. Free, public, no key, and it is the one with research grade provenance.
- Cloudflare Radar, optional, with your own free Cloudflare token. It measures a different population from Tranco, so the numbers differ and neither is wrong.
- 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 20 flat fields. These are the ones a buyer actually filters and sorts on.
| Field | Type | Meaning |
|---|---|---|
degraded | boolean | True 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_reason | string | null | Why the row is degraded, in plain words. Null on a normal row. |
company_domain | string | null | The 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_name | string | null | The company name as supplied or derived. Improves search accuracy and is what the identity gate matches against. |
tranco_rank | integer | null | Position 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_date | string | null | The date of the rank above. Tranco publishes daily, so a rank without a date is a number with no shelf life. |
rank_band | string | null | top_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_trend | string | null | rising, 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_change | integer | null | Newest 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_observations | integer | null | How 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_threshold | boolean | null | True 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_rank | integer | null | Cloudflare 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_bucket | string | null | Radar 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_status | string | null | ok, 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_data | boolean | null | True 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_ms | integer | null | The 75th percentile largest contentful paint in milliseconds, from real Chrome users. This is a PERFORMANCE measurement, not traffic. |
crux_status | string | null | ok, not_found, auth_failed, blocked or skipped. Skipped means you did not ask for this source or supplied no key. |
coverage | number | null | How 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_status | string | ok, 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. |
run_date | string | ISO 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_changeis negative when a domain became MORE popular, because a lower rank is better. If you would rather not hold that in your head, readrank_trend, which saysrisingorfallingin plain words.
๐ ๏ธ How to check how popular a company website is
- Put a company domain in
company_domain. That is the whole setup for the free source. - Set
minRankif you want a ready made filter column, for example10000to mark everything in the top ten thousand. - Add your own Cloudflare or Google keys only if you want the optional sources.
- For a list, 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. You are charged for output, never for input.
| Event | Fires when | Price |
|---|---|---|
company-checked | Once 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-resolved | Once 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-resolvedfires 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
| Field | Type | Required | Meaning |
|---|---|---|---|
company_domain | string | no | Bare 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_name | string | no | Optional. Carried through to the output row for joining. Rank lookup is keyed on the domain alone, so the name does not change the answer. |
sources | string | no | Which 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. Sent as a string for Clay compatibility. |
includeTrend | string | no | When "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. |
minRank | string | no | Sets 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. Sent as a string for Clay compatibility. |
cloudflareApiToken | string | no | YOUR 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. |
cruxApiKey | string | no | YOUR 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. |
skipCache | string | no | When "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_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","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","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_bandfor filtering andtranco_rankfor display. crux_has_data: falseis the strongest real usage signal here, stronger than any rank: it means Chrome sees too few real visitors to publish anything.- A
fallingtrend 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 and cannot be converted into traffic. There is no multiplier. Anyone offering one is guessing.
- 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:
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.
๐ ๏ธ Need something custom built for you or your team? Tell us what you are trying to find and we will build it. Talk to Mamba Labs.
๐ 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.
