Casino bonus checker
Pricing
from $6.40 / 1,000 pages
Casino bonus checker
See the casino bonus each affiliate and review site shows for your brands: offer, wagering, promo code, 18+ and safer-gambling notices, and the affiliate ID behind the link. Choose from eight countries. No login. $8 per 1,000 pages. Maintained by CleanScrape.
Pricing
from $6.40 / 1,000 pages
Rating
0.0
(0)
Developer
CleanScrape
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 hours ago
Last modified
Share
See which bonus each affiliate and review site shows for your casino brands. The Actor searches Google in the United States, the United Kingdom and Canada (or the countries you choose), reads each page from a connection in that country, and saves one row per page with:
- The offer: the main bonus as the page shows it ("100% up to £100 + 50 free spins"), match percent, bonus amount, currency, free spins, no-deposit flag, qualifying deposit or stake, wagering, minimum deposit, promo code, product (casino, sports or poker) and the other offers on the page.
- Notices and wording: age notice (18+, 19+, 21+), safer-gambling links and helplines (BeGambleAware, GamCare, 1-800-GAMBLER, ConnexOntario and others), whether terms sit next to the offer, an ad or affiliate disclosure, and wording such as "risk-free" or "free money".
- The casino link: the link the page sends visitors through, the affiliate system (Income Access, NetRefer, AppsFlyer, Impact, Cellxpert, MyAffiliates, Partnerize and others), the affiliate ID, how many redirects and where it lands.
- Compared with your official offer (optional): whether the page matches it, and what differs ("bonus GBP 500 (official GBP 100)").
A second table gives a summary per brand and country: the offers shown and on how many pages, pages missing notices, the affiliate systems and IDs seen, and the promo codes. No login.
$8 per 1,000 saved pages (10 to 20% less on paid Apify plans). By default, only pages that show an offer are saved and billed. If Include pages without an offer is on, those saved pages use the same page price. Unreadable pages, skipped pages and brand summaries are free. Maintained by CleanScrape.
Watch the walkthrough
Let's use one brand in the United Kingdom as an example: which affiliate and review pages show its offer, and whether each page carries an age notice, safer-gambling links and terms next to the offer. The video names no casino; use your own brand.
Who uses it
- Casino marketing and affiliate managers: find affiliates still showing last month's offer, a wrong promo code or a bonus that is not yours.
- Compliance teams: pages promoting your brand without an age notice, a safer-gambling link or terms next to the offer, and pages using "risk-free" wording.
- Affiliate program managers: which affiliate IDs and networks send traffic from which sites, and links that land somewhere other than your site.
- Competitor research: the bonuses rival casinos run in each country and how widely affiliates promote them.
- Researchers and journalists: how casino bonuses are advertised in each market.
Quick start
- Type your brands under Casino brands: names as players search for them (
888casino,BetMGM Casino,Sky Vegas) or the casino's website. - Pick Countries. The form starts with the United Kingdom. API requests that omit this field check the United States, the United Kingdom and Canada.
- Optional: add the offers you run now under Official offers, such as
888casino UK: 100% up to £100 + 50 free spins. Pages showing other numbers are marked. Only offers for the same product are compared: a poker or sports offer on the page is noted, not counted as different from a casino offer. - Click Start.
The Offers view shows the main offer per page. The Notices and wording view shows the age notice, safer-gambling links and terms. The Affiliate links view shows where each casino link goes. The Brands table has the summary per brand and country.
Input for the API or a scheduled task:
{"brands": ["888casino", "Sky Vegas"],"countries": ["gb", "ca"],"officialOffers": ["888casino UK: 100% up to £100 + 50 free spins", "Sky Vegas: 100 free spins"],"maxPagesPerBrand": 30,"watchName": "UK affiliate offers"}
Choose a ready-to-run example
Each example opens with its input filled in. Change it and run.
| Example | What it does |
|---|---|
| Check casino affiliate pages for 18+ notices | Pages promoting 888casino and Sky Vegas in Google UK, with their age notice, safer-gambling links, terms next to the offer and risky wording. |
| Compare affiliate bonuses with your official offer | Type the offer you run now and see which pages show other numbers, an old bonus or another promo code. |
| Find the affiliate IDs promoting a US online casino | Each page's casino link followed to the affiliate system, the affiliate ID and where it lands, for BetMGM Casino and DraftKings Casino. |
Use it from the API
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("cleanscrape/casino-bonus-checker").call(run_input={"brands": ["888casino"],"countries": ["gb"],})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["site"], item["mainOffer"], item["promoCode"], item["ageNotice"], item["affiliateId"])# The summary per brand and country is in its own dataset:brands = client.dataset(run["storageIds"]["datasets"]["brands"]).list_items().items
What you get
Pages (main table)
One row per page, brand and country.
| Field | Example |
|---|---|
| brand, country, countryName | Fanatics Casino, gb, United Kingdom |
| foundBy, googleRank | Google: Fanatics Casino bonus code, 6 |
| pageUrl, site, siteType, pageTitle | https://www.actionnetwork.com/casino/fanatics-casino, actionnetwork.com, review or news site |
| mainOffer, mainOfferText, offerFoundIn | 1,000 free spins, "Get Up to 1,000 Bonus Spins (October 2026)", page title |
| product, matchPercent, maxBonus, currency, freeSpins | casino, null, null, $, 1000 |
| goldCoins, sweepsCoins | US sweepstakes casinos: 250000, 25 (coins, not money) |
| noDeposit, qualifyingAmount, wagering, minDeposit, promoCode | false, null, null, null, ACTION26 |
| otherOffers | ["1,500 free spins", "$1,000 + 1,000 free spins"] |
| officialOffer, matchesOfficialOffer, differencesFromOfficial | with official offers given |
| ageNotice, saferGamblingLinks | 21+, ["1-800-GAMBLER", "NCPG", "Gamblers Anonymous"] |
| builtWithJavaScript | true when most of the page is built with JavaScript (some casinos' own sites build their footer that way), so a notice missing from the text may still be shown to visitors |
| termsNearOffer, adDisclosure, riskyWording | true, true, [] |
| casinoLink, affiliateNetwork, affiliateId | the page's link, AppsFlyer, bettercol6o_int |
| landingPage, landingSite, landsOnCasinoSite, redirects | https://betfanatics.com/casino?..., betfanatics.com, true, 2 |
| readFrom, checkedAt, notes | United Kingdom, time of the check, plain-language notes |
siteType is one of: casino site, casino help page, review or news site, site using the brand name (an address with the brand in it that is not the casino's own), forum or reviews, social media, app store, help page.
notes lists things worth a look in plain words, such as "No age notice (18+, 19+ or 21+) found on the page.", "Offer differs from the official one: bonus GBP 500 (official GBP 100).", "High wagering: 60x." or "The casino link leads to another-site.com, not the casino's own site."
With a Watch name, each row also has isNew, firstSeenAt, offerChanged and previousOffer.
Brands
One row per brand and country: pages naming the brand, pages with an offer, the most common offer and every offer with its page count, pages matching or differing from the official offer, pages without an age notice, without a safer-gambling link or without terms next to the offer, pages with risky wording, pages saying the casino is not available there, the affiliate systems and IDs seen, the promo codes and the number of sites.
How offers are found
- Google is searched in each country with
{brand} bonus,{brand} bonus codeand{brand} free spins(change these under Google searches per brand), and your own pages are added. - Each page is read from a connection in the country it is checked for, because many sites show other offers to visitors from elsewhere: in our tests, one page in eight showed a different offer to a UK or Canadian visitor than to a US one.
- The offer is read from the page structure: the title and main heading, offer cards and comparison tables, promo-code boxes and text next to the brand name. In a table that lists several casinos, an offer counts for your brand only when it sits in your brand's row.
- Amounts that are not the bonus are left out: the deposit or stake needed to qualify ("Bet $10, get $30"), minimum deposits, the value of one spin, maximum wins and withdrawals, and calculator estimates.
- The page's casino link is followed through its redirects to name the affiliate system and ID and where it lands.
Brands that are ordinary words (Stake, Spin Casino, Sky Vegas) are matched only when written as a name, so "your stake" or "free spin casino bonuses" do not count.
Accuracy, checked by hand on 100 pages (US, UK and Canada): the main offer was exactly right on 86 to 88% of offer pages and right or acceptable (a correct offer, not the headline one) on all of them. Every promo code in the check belonged to the brand's offer.
Monitoring offers over time
Give the run a Watch name (for example UK affiliate offers) and schedule it daily or weekly. Each row then shows whether the page is new since earlier runs with that name (isNew), whether its offer changed (offerChanged) and what it showed before (previousOffer). The Watch (new and changed) view puts these first. The history stays in your Apify account for 180 days.
What is not available
- Pages behind bot checks. Some sites refuse automated visits (bet365.com, oddschecker.com, casino.org and some bookmakers' own promotion pages often do). The Actor does not get around these checks. Such pages are listed in the run report with the reason and are not charged. Expect one page in five to two in five to be unreadable, more when many bookmakers' own sites are in the results.
- Offers shown only after login or only inside the casino's app.
- Legal judgments. The rows say what a page shows and what is missing from it. Whether that breaks a rule depends on the country, the state or province and who the page targets.
- Offers in images or behind JavaScript. An offer that exists only as a banner image without text is not read. A page that shows its content only after JavaScript runs is listed in the run report as such. A page that builds most of its content with JavaScript is marked
builtWithJavaScript, and is not counted as missing a notice in the Brands table. - Pages a site refuses to show in a country. A site that blocks visitors from the country checked (HTTP 451) is reported as such and is not read from another country, since it would show what visitors there cannot see.
- Files and broken pages. PDFs and other files, pages that redirect in a loop, and servers that do not answer within about 50 seconds are listed in the run report with the reason, and are not charged.
- Supported countries are the United States, United Kingdom, Canada, Ireland, Australia, New Zealand, South Africa and India; other countries are not supported.
Pricing
| Event | Price |
|---|---|
| Saved page, including a page without an offer when you choose to save it | $0.008 |
| Skipped page without an offer; unreadable page | free |
| Brand summary row | free |
Measured on 18 October 2026:
- 1 brand in the UK (the input filled in when you open the Actor): 14 pages with an offer, about $0.11, in 1 to 2 minutes.
- 8 brands in 3 countries, 12 pages each: 142 pages, about $1.14, in under 7 minutes.
- 8 brands in 2 countries, 40 pages each: 208 pages, about $1.66, in about 5 minutes.
Set Maximum cost per run to cap spending. The run stops before it would go over the limit and keeps what it saved.
Speed and settings
A brand in one country takes 1 to 2 minutes. Eight brands in three countries take about 7 minutes. Google searches take from a few seconds up to a minute each, so most of the time goes to searching. The run stops cleanly before its timeout and keeps everything it saved. With a very short timeout (about a minute), nothing can be saved: the run then ends with a clear message and nothing is charged. Memory: 1024 MB (512 MB also works and reads fewer pages at once). Up to 25 brands per run.
Run report
Each run saves a readable summary (Output tab > Run summary) and the same as JSON (SUMMARY): the searches, pages read, pages without an offer, the sites that could not be read and why, and notes such as Google searches skipped to stay within the time limit.
Use it from an AI agent
This Actor works as a tool in Claude, Cursor and other AI assistants that support MCP, through Apify's MCP server. Add this server and sign in with your Apify account when asked:
https://mcp.apify.com?tools=cleanscrape/casino-bonus-checker
Then ask in plain words, for example: "Which UK sites show an 888casino bonus that differs from 100% up to £100, and which of them have no 18+ notice?" The price per result is the same as in Console.
Common questions
Does it use my own affiliate links or change any page?
No. It only reads public pages, the same ones a player sees in Google, and follows the links on them to see where they land. It does not sign up, deposit or place bets.
Can I check pages I already know?
Yes. Paste them under Pages to check. To check only those pages, turn off Search Google.
Why does the same site show different offers in different countries?
Many affiliate sites change the offer by the visitor's country. Each page is read from a connection in the country you check, so the row shows what a player there sees (readFrom). If no connection in that country answers, the page is read from elsewhere and the row says so in notes.
How do I export the results to Excel or CSV?
Open the run's Output or Storage tab and click Export. Pick Excel, CSV or JSON. The Brands table exports from Storage > Dataset.
Is it legal to scrape these pages?
The Actor reads public pages that anyone can open without an account, at a gentle pace, and it does not get around bot checks. Check the rules that apply to how you use the data. Gambling advertising is regulated in many countries: the data shows what pages publish, and how you act on it is up to you.
More tools from CleanScrape
- Kick Sponsor Tracker: which Kick streamers promote which brands, with codes and broadcast hours
- Whatnot Scraper: Whatnot listings with prices and seller stats, and live shows
- Whatnot Seller Tracker: top sellers per category, items sold, sales per day and followers over time
- TikTok Shop Product Scraper: US TikTok Shop prices, sellers and ratings
- Bilibili Scraper: Bilibili videos, danmaku, comments and creators
- App Store & Google Play Reviews Scraper: reviews from both app stores in one table
- Google Trends Scraper API: search interest over time, by region, related queries and trending searches
- Map Your Show Exhibitor Scraper API: trade show exhibitor lists and booth changes
- Shopify Product Reviews Scraper API: Judge.me and Okendo reviews from Shopify product links
- Google News Scraper API: headlines from Google News and publisher feeds
- Google Jobs Scraper: job listings with salaries and apply links
- Pinterest Scraper API: keyword search, public pin links and board previews; search results may lack a pin link
- Google Hotels Scraper API: hotel prices and booking offers for your dates
- Threads Scraper API: public Threads posts from accounts or post links
- Likee Scraper API: Likee videos and comments
- Flashscore Tennis Scraper API: tennis results, statistics, point-by-point and head-to-head
Support
Questions, a page read wrongly or a site that is missing: open an issue on the Actor's Issues tab or write to contact.cleanscrape@gmail.com.
This Actor is an independent tool. It is not affiliated with, endorsed by or sponsored by any casino, affiliate site or affiliate network named here.
Checking links without Google search
If you already have the pages, add them under Pages to check and turn off Search Google. This mode reads those pages without using the Google search allowance. Page connections still need available Apify Proxy access. Blocked pages are listed in the run report, not replaced with guessed offers.