ShopBack Scraper: Cashback, Gift Cards, Affiliates
Pricing
from $12.00 / 1,000 merchant pages
ShopBack Scraper: Cashback, Gift Cards, Affiliates
Scrape ShopBack for a brand: merchant cashback rates, tiers and terms (AU, SG, MY) plus the brand's gift-card listing with its own cashback rate per denomination. With your ShopBack session it reads the live affiliate network from the click-out. Pass a domain or ShopBack URL. Pay per result.
Pricing
from $12.00 / 1,000 merchant pages
Rating
5.0
(2)
Developer
Automation Craft
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
17 days ago
Last modified
Categories
Share
ShopBack Scraper: Cashback, Gift Cards, Affiliates
This ShopBack scraper pulls three kinds of data about a brand from ShopBack: the merchant page details (cashback rates, every rate tier, upsized boosts, terms, vouchers, categories), the brand's gift-card listing (the cashback ShopBack pays for buying the brand's gift card, per denomination, with stock state) and the brand's currently active affiliate network (Commission Factory, Partnerize, Impact, AWIN, CJ, Rakuten, Amazon Associates). Pick merchant details, affiliate network or both with a single mode setting. The gift-card check is built in and runs for every target in every mode. 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 a company domain (2xu.com), a ShopBack merchant URL (shopback.com.au/2xu) or a ShopBack gift-card URL (shopback.com.au/ecommerce/skugroup/SBV_BPGiftCards). 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. - Gift cards are not mistaken for merchant listings, or the other way round. Some brands are on ShopBack only through gift cards (BP), some only as a merchant, some as both. Each row says which, with a separate rate for each.
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.
Gift cards
ShopBack sells gift cards for many brands and pays cashback on the purchase of the card. That is a different offer from a merchant listing, where the cashback is for shopping at the brand through a tracked click-out. A brand can have one, the other, both or neither, so every row reports them separately:
details.headlineRateis the cashback for shopping at the brand.giftCard.cashbackRateis the cashback for buying the brand's gift card (giftCard.cashbackTypeis alwaysgift_card_purchase).shopbackPresencesums it up:merchant_only,gift_cards_only,both,not_foundorunknown.
BP, for example, has no merchant page on ShopBack Australia but does sell gift cards there:
{"input": "https://www.shopback.com.au/ecommerce/skugroup/SBV_BPGiftCards","mode": "both","outcome": "resolved","shopbackPresence": "gift_cards_only","listingStatus": "not_found","shopbackUrl": null,"affiliate": null,"details": null,"giftCardCheck": "found","giftCard": {"url": "https://www.shopback.com.au/ecommerce/skugroup/SBV_BPGiftCards","brand": "BP","groupCode": "SBV_BPGiftCards","cashbackType": "gift_card_purchase","cashbackRate": "1%","cashbackRateMin": "1%","availability": "active","currency": "AUD","denominationCount": 14,"denominations": [{ "name": "BP $5 Gift Card", "price": "$5", "cashbackRate": "1%", "availability": "in_stock", "url": "https://www.shopback.com.au/ecommerce/checkout/sboc_BPGiftCards_5.00_2026-02-01_BAU" }],"brandVerified": null,"discoveredVia": "shopback_url","checkedAt": "2026-09-28T07:45:00.000Z"}}
How the gift-card check works:
- Discovery. Pass a gift-card URL, or just the domain or brand: the Actor finds the brand's gift cards through ShopBack's own search and then confirms them on the gift-card page.
- Brand and country are verified. A listing counts only when the page is served by the ShopBack storefront of your
regionand states the same brand. The match is strict: "Amazon" gift cards are never reported for "Amazon Music". When you pass a gift-card URL together with abrandthat the page does not state, you getgiftCardCheck: "brand_mismatch"and the listing does not count as presence. - Rates are read live on every run, per denomination. When denominations pay different rates (promotions often apply to some of them),
cashbackRateis the highest live rate andcashbackRateMinthe lowest. - Availability.
active,sold_out(the listing exists but every denomination is sold out) ornot_found(the gift-card URL you passed does not exist any more). - No affiliate conclusion is drawn from a gift card. A gift-card listing says nothing about the brand's affiliate network or about a direct deal with ShopBack, so
affiliatestaysnullunless the brand also has a merchant listing with a click-out. - The gift-card check needs no login and no proxy of yours. Gift cards are currently sold on ShopBack Australia; on other regions the check simply finds none.
Outcome fields
outcome:resolved(the brand is on ShopBack, as a merchant listing, a gift-card listing or both),not_on_shopback(neither was found; one exception kept from earlier versions: inaffiliatemode a paused merchant without a gift card is alsonot_on_shopback, withshopbackPresence: "merchant_only"), 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.shopbackPresence:merchant_only,gift_cards_only,both,not_found, orunknown(the merchant check or the gift-card check could not be completed, so presence is not asserted either way).giftCardandgiftCardCheck: see Gift cards.giftCardCheckisfound,not_found,brand_mismatchorcheck_failed.listingStatusdescribes the merchant listing only: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", unless the brand has a gift-card listing, which makes the rowresolved. 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. The same holds for gift cards: when no merchant listing was found and the gift-card check could not be completed, the row is check_failed and is not billed.
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 |
Gift card listing (gift-card), from 13 October 2026 | $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.
The Gift card listing event starts on 13 October 2026. It is charged once per brand, only when a gift-card listing was found and the brand was confirmed (giftCardCheck: "found"). A brand with a merchant listing and gift cards pays the merchant events plus one Gift card listing. A brand that is on ShopBack through gift cards only pays the Gift card listing instead of the Negative result, never both. Looking for gift cards and finding none costs nothing extra. Until 13 October 2026 gift-card data is included at no charge and a gift-cards-only row is billed as a Negative result.
The Store pricing card shows these same prices per 1,000 events: "$10.00 / 1,000" on the Gift card listing row means one gift card listing costs 1 cent. 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, a ShopBack merchant URL or a ShopBack gift-card 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. Gift cards are currently sold on the Australian storefront. A brand with no merchant page in the region you selected comes back as not_on_shopback for that region.
Does the Actor find ShopBack gift cards?
Yes, automatically. Every target is checked for a gift-card listing as well as a merchant listing, and the result is in giftCard with the live cashback rate, the denominations and the source URL. You can also pass a gift-card URL such as shopback.com.au/ecommerce/skugroup/SBV_BPGiftCards directly.
Is gift-card cashback the same as merchant cashback?
No. Gift-card cashback is paid for buying the card from ShopBack; merchant cashback is paid for shopping at the brand through ShopBack's click-out. The Actor reports them in separate fields (giftCard.cashbackRate and details.headlineRate) and never reads an affiliate network out of a gift-card listing.
What happens if a brand is not on ShopBack?
You get an honest row rather than a failure: outcome: "not_on_shopback" with shopbackPresence: "not_found" and a listingStatus of not_found, delisted or temporarily_unavailable, billed at the minimal Negative result price. A brand that has no merchant page but does sell gift cards on ShopBack is not a negative: it comes back resolved with shopbackPresence: "gift_cards_only". 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


