ShopBack Scraper - Cashback Rates, Affiliates
Pricing
from $12.00 / 1,000 merchant pages
ShopBack Scraper - Cashback Rates, Affiliates
Scrape ShopBack merchant pages (AU, SG, MY): headline rate, every rate tier, cashback terms and categories. With your own ShopBack session you can also read the brand's live affiliate network (AWIN, Rakuten, Impact, CJ) from the click-out redirect. Pass a domain or ShopBack URL. Pay per result.
Pricing
from $12.00 / 1,000 merchant pages
Rating
5.0
(3)
Developer
Automation Craft
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
ShopBack Scraper - Cashback Rates, Affiliates
This ShopBack scraper pulls two kinds of data from ShopBack merchant pages: the merchant page details (cashback rates, every rate tier, upsized boosts, terms, vouchers, categories) and the brand's currently active affiliate network (Commission Factory, Partnerize, Impact, AWIN, CJ, Rakuten, Amazon Associates). Pick what you want per run with a single mode setting. Run it on the Apify platform for API access, scheduling, proxy rotation, and integrations with Make, Zapier, Google Sheets and more.
Instead of scraping a brand's own website for affiliate tags, which is brittle and surfaces stale legacy tags the brand no longer uses, this Actor reads the network out of ShopBack's click-out redirect. ShopBack is a major cashback publisher that only earns when it tracks through the brand's live program, so the network in its click-out is the brand's real, current affiliate provider. It cannot be a stale tag, because a stale tag would not pay ShopBack.
Quick start
- Open the Input tab.
- Choose a mode:
affiliate,detailsorboth. - Add targets. Each
inputis either a company domain (2xu.com) or a ShopBack URL (shopback.com.au/2xu). Add an optionalbrandto improve resolution and arowNumberto map results back to a spreadsheet row. - For
affiliateandbothmodes, paste a ShopBack session cookie intoshopbackSessionCookie, because ShopBack's click-out only exists when you are logged in. See Session cookie below.detailsmode needs no cookie. - Pick your region (
auby default). - Click Start. Download results from the Output tab as JSON, CSV, Excel or HTML, or read them through the API.
{"mode": "both","region": "au","targets": [{ "input": "2xu.com", "brand": "2XU", "rowNumber": 137 },{ "input": "shopback.com.au/nike", "brand": "Nike" }]}
Session cookie (affiliate and both modes)
ShopBack shows the "Shop Now" click-out, the redirect that reveals the live affiliate network, only to logged-in users. The Actor does not automate login, which is protected by Cloudflare Turnstile and OTP. Instead you supply your own session once:
- Log in to ShopBack in your browser.
- Export the
shopback.com.aucookies with a browser extension such as Cookie-Editor, using "Export to JSON". - Paste the JSON into the encrypted
shopbackSessionCookieinput. It must include thesbrefreshcookie, the long-lived refresh token that keeps the session alive.
The session is sliding: ShopBack issues a fresh short-lived access token from your refresh token, and the Actor writes the freshest cookies back to its own named key-value store after every run. So as long as you run the Actor on a schedule, you paste once and basically forget. If the session ever truly dies, the run returns auth_expired and you re-paste.
Modes
| Mode | Loads page | Fires click-out | Returns | Relative cost |
|---|---|---|---|---|
details | yes | no | details | cheapest |
affiliate | yes | yes | affiliate | tier-dependent |
both | yes (once) | yes | affiliate + details | about the same as affiliate |
Why use it
- Accurate affiliate attribution. Current, not legacy, so no misallocation from old tags.
- Honest outcomes. A brand that genuinely is not on ShopBack returns
not_on_shopback, not a vague failure. - Cost-aware. Negatives (not listed, delisted, temporarily unavailable) are settled over plain HTTP with no browser and no residential proxy. The affiliate click-out runs as two small HTTP requests through a residential IP in your session's region, and a full browser is opened only when that fast path cannot produce a clean result. Every item reports the phases, attempts and bytes it cost.
- Two products, one run.
bothmode reuses a single page load to return affiliate and details together.
What you get
One dataset item per target:
{"input": "2xu.com","brand": "2XU","rowNumber": 137,"mode": "both","shopbackUrl": "https://www.shopback.com.au/2xu","cleanDomain": "2xu.com","resolvedVia": "search","outcome": "resolved","affiliate": {"network": "Rakuten Advertising","status": "network_identified","matchedHost": "click.linksynergy.com","redirectChain": ["https://www.shopback.com.au/2xu","https://www.shopback.com.au/sboc/redirects/01jq8w85tnwyesa2y0tv2ssyvj","https://click.linksynergy.com/deeplink?id=...&mid=44490&murl=https%3a%2f%2f2xu.com%2f","https://2xu.com/?utm_source=Rakuten&ranMID=44490..."]},"details": {"merchantName": "2XU","headlineRate": "3%","rates": [{ "category": "General", "tier": "Standard", "rate": "3%", "description": "Standard Cashback 3%" }],"ratesUpdatedAt": "2026-03-27T05:50:44.571Z","cashbackTerms": [{ "question": "Exclusions?", "answer": "You won't get Cashback on…" }],"categories": ["General"],"scrapedAt": "2026-06-23T09:00:00Z"},"tierUsed": "datacenter","method": "browser","costTelemetry": { "proxyBytes": 184320, "computeMs": 4200 },"error": null}
You can download the dataset in JSON, HTML, CSV or Excel.
Outcome fields
outcome:resolved,not_on_shopback, orcheck_failed(the check could not be completed after retries, because the search page or merchant page was unreachable, or there was no residential proxy to serve the logged-in page;errorsays why, and it is not billed). Acheck_failedrow is neither a result nor a negative, so re-run it later.listingStatus:active(a live merchant page),temporarily_unavailable(the merchant page exists but ShopBack has paused the program, so there is no click-out, andshopbackUrlis still filled),delisted(the slug now redirects to a category page), ornot_found(no merchant page). Inaffiliatemode everything exceptactivecomes withoutcome: "not_on_shopback". Indetailsandbothmode a paused merchant isresolvedwith its page details andaffiliate: null.affiliate.status:network_identified,generic_affiliate,shopback_direct,click_out_failed, orauth_expired(the session cookie is no longer valid, so re-pasteshopbackSessionCookie; once the session is confirmed dead on a residential IP in your region, the remaining targets of that run are reportedauth_expiredimmediately instead of being loaded one by one).resolvedVia:shopback_url,candidateorsearch, showing how the merchant URL was found.method:http(settled over plain HTTP: every negative, and affiliate results read from ShopBack's server-rendered click-out) orbrowser(the Playwright fallback).costTelemetry:phases(resolveMs,clickMs,harvestMs,navMs),bytesByTier(bytes transferred per proxy tier),attemptsandmethod. Use it to see what each result cost.
A network_identified result always carries the captured redirectChain (merchant page, ShopBack's /sboc/redirects/... interstitial, the network deeplink) as evidence. A failed check is never reported as not_on_shopback: if the HTTP path is blocked or inconclusive, the target is re-checked in a real browser.
How much does it cost to scrape ShopBack?
Pay per event, priced by what the run actually had to do. Current prices:
| Event | Free and Bronze | Silver (10% off) | Gold and above (20% off) |
|---|---|---|---|
Merchant page (page-details) | $0.015 | $0.0135 | $0.012 |
Affiliate result (direct) (affiliate-direct) | $0.02 | $0.018 | $0.016 |
Affiliate result (datacenter) (affiliate-datacenter) | $0.03 | $0.027 | $0.024 |
Affiliate result (residential) (affiliate-residential) | $0.10 | $0.09 | $0.08 |
Negative result (not-on-shopback) | $0.01 | $0.009 | $0.008 |
Actor Start (apify-actor-start) | $0.02 | $0.02 | $0.02 |
The Actor Start event is charged once per run, one event per GB of memory, minimum one event, and carries no Store discount.
The Merchant page event covers detail extraction. The three affiliate events price the click-out by the proxy tier that was actually used, and since the logged-in click-out is only served to an IP in your session's region it normally runs on the residential tier. The Negative result event is a minimal charge for every honest negative, including paused (temporarily_unavailable) and delisted merchants. details runs are the cheapest, both adds the most value per run, and check_failed rows are not billed. Free-plan usage is supported within Apify's limits.
Tips
- Pass a domain rather than a ShopBack URL and let the Actor resolve it. It cleans to the registrable domain and confirms the match, so you do not have to construct ShopBack URLs.
- Batch many targets in one run rather than one run per target. Every run pays the Actor Start fee per GB of memory and a cold start, while the per-target work is now a few HTTP requests.
- Run with the default memory. The affiliate check no longer needs a browser for a normal merchant page, and memory only matters for the browser fallback.
- Use
mode: "details"when you only need rates and terms. It stays on the cheapest tiers.
Input
| Field | Type | Description |
|---|---|---|
mode | string | affiliate (default), details, or both. |
targets | array | Each item: { input, brand?, rowNumber? }. input is a company domain or a ShopBack URL. |
shopbackSessionCookie | string | Required for affiliate and both. Cookie-Editor JSON of your ShopBack session (must include sbrefresh). Encrypted, never logged. |
region | string | au (default), sg, my, global. |
maxConcurrency | integer | Parallel targets (default 5). |
forceBrowser | boolean | Resolve and click out in the browser for every target. Slower and costlier, diagnostics only. |
trafficFilter | string | strict (default: ShopBack hosts only, no images or fonts), assets, or off. Applies to the browser fallback. |
FAQ
How do I find out which affiliate network a brand uses?
Run the Actor in affiliate mode with the brand's domain as the target and a ShopBack session cookie. It resolves the brand's ShopBack merchant page, fires the logged-in click-out, and reports the network it lands on in affiliate.network, with the full redirectChain as evidence.
Why read the network from ShopBack instead of the brand's own site?
Because a brand's own site can still carry stale or legacy affiliate tags it no longer pays through. ShopBack only earns when it tracks through the brand's live program, so whatever network its click-out routes to is the one the brand is actually running today.
Do I need a ShopBack account?
For affiliate and both modes, yes: the click-out only exists for logged-in users, so you paste your own session cookie once (it must include sbrefresh). details mode needs no cookie and no account. The session is sliding and refreshed after every run, so scheduled runs keep it alive.
Which ShopBack regions are supported?
Australia (au, the default), Singapore (sg), Malaysia (my) and global. A brand with no merchant page in the region you selected comes back as not_on_shopback for that region.
What happens if a brand is not on ShopBack?
You get an honest row rather than a failure: outcome: "not_on_shopback" with a listingStatus of not_found, delisted or temporarily_unavailable, billed at the minimal Negative result price. A check that could not be completed is reported separately as check_failed and is not billed at all.
Can I monitor cashback rate changes on a schedule?
Yes. Schedule the Actor in details mode, which needs no cookie and stays on the cheapest tiers, and each run returns the headline rate, every rate tier, upsized boosts, terms and categories with a ratesUpdatedAt stamp, so you can diff runs over time.
Why does this Actor run with limited permissions?
Least privilege. It only reads and writes its own storages: the run dataset, and one named key-value store it creates itself to carry your refreshed ShopBack session between runs. Your session cookie input is encrypted and never logged, and the Actor needs no other access to your account.
Support
- Is this legal? The Actor reads publicly visible ShopBack pages and their click-out redirects. Respect ShopBack's Terms of Service and applicable laws, and use the data responsibly.
click_out_failed: the page loaded but the click-out did not fire after all escalation. Retry on a later run.listingStatus: "temporarily_unavailable": ShopBack has paused the merchant's program and the page says "Temporarily unavailable". There is no click-out to read, so no network can be detected right now, and it is billed as a Negative result. Re-check later.auth_expired: your ShopBack session cookie is no longer valid. Re-export and paste a freshshopbackSessionCookie, includingsbrefresh. Running on a schedule keeps the session alive and avoids this.- Found a bug or need a custom variant, such as other cashback sources or a full category crawl? Use the Issues tab.
More data tools by Automation Craft
- Amazon Product Scraper - Search, Best Sellers
- Google Trends Scraper - Compare and Trending Now
- G2 Reviews Scraper: Ratings, Pros and Cons
- Meta Ad Library Scraper - All Placements, Filters
- Facebook Ads Library Scraper - Page Ads, No Login
- Website Screenshot Scraper: Full Page, Bulk
- Substack Scraper: Posts, Notes and Profiles
- Airbnb Scraper: Prices, Calendar, Reviews


