Without having access to a site's web analytics, all you're going to get from any tool at best is a ballpark estimate.
Most traffic estimation tools pay Internet Services Providers like Time Warner, Comcast, AT&T, Charter, etc. to watch the traffic from their customers going through their routers to the Internet. They can see which site, say AT&T's customers are visiting. So they end up with only a small sample of total Internet traffic (some fraction of 1% typically), and they use it to extrapolate out to 100%. Unfortunately, for sites with small to medium size traffic volume, this means the numbers will almost always be way underestimated because the sample size is too small. For sites with large amounts of traffic the numbers can be at least in the ball park. Most of the tools that use this method are VERY expensive.
Others like SEMRush will pull rankings for millions of keywords each month, see who is ranking for each of those high volume keywords and in what positions, and then based on the estimated search volume for each of the keywords (likely from Google Adwords API but not available much longer) they can estimate which portion of the volume for each keyword goes to which site. Again, an estimate and it's as only as good as the number of keywords they pull rankings for and the frequency at which they are checked.