
TikTok Shop Scraper
scrape.ly/store/shelfbright/tiktok-shop-scraperE-commerceSocial media
1 monthly user

Scrape the ClickBank affiliate marketplace by keyword, category or offer ID. Get gravity, rank, $ per sale, rebill $, refund rate, EPC, conversion rate and affiliate pages for every offer. No login needed.
Find the ClickBank offers worth promoting. Search the ClickBank affiliate marketplace by keyword, category or offer ID and get every offer's gravity, rank, average and initial dollars per sale, rebill dollars, refund rate, EPC and conversion rate in one table. A keyword search takes about 6 seconds and the whole marketplace (about 1,200 offers) about 12 seconds. No ClickBank account or login needed, and it costs $3.50 per 1,000 offers.
weight loss), pick a category, or paste offer IDs or marketplace URLs.| Field | What it does |
|---|---|
searchTerms | Keywords to search, one search per line. Marketplace operators work: "weight loss", keto OR ketogenic. |
category / subCategory | Browse a category (or ALL for the whole marketplace), optionally narrowed to a sub-category. |
offerIds | Vendor IDs such as JAVABURN to look up specific offers. |
startUrls | Marketplace search or offer URLs. |
maxResults | Offers per search (0 = all matching offers). |
sortBy / reverseSort | Gravity, popularity, rank, relevance, $ per sale, EPC, conversion rate, refund rate, newest, ... |
| Filters | minGravity, maxGravity, minAverageSaleUsd, minInitialSaleUsd, minAverageRebillUsd, minNetEpcUsd, minConversionRatePercent, maxRefundRatePercent, activatedAfter, activatedBefore, languages, billingTypes, physicalOnly, upsellOnly, mobileEnabledOnly, cpaOnly, directLinkTrackingOnly, noApprovalRequiredOnly |
includeDetails | Adds refund rates by sale age and 91 days of gravity, rank and EPC history. |
affiliateNickname | Builds your hoplink for every offer. |
{
"searchTerms": ["weight loss"],
"maxResults": 20,
"sortBy": "gravity",
"maxRefundRatePercent": 10
}
| Field | Description |
|---|---|
offer_title, vendor | Offer name and ClickBank vendor ID |
category, sub_category | Marketplace category |
gravity, bi_gravity, rank, score | Popularity scores and ClickBank rank |
initial_sale_usd, avg_sale_usd, avg_rebill_usd | Dollars earned per first sale, per sale on average, per rebill |
refund_rate, return_rate_source | Return rate (refunds + chargebacks, 0.08 = 8%) and its window |
initial_epc, average_epc, future_epc, net_epc, conversion_rate | Earnings per conversion, earnings per click and conversion rate |
is_recurring, is_one_time, is_physical, has_upsell, has_dollar_trial | Offer type |
mobile_enabled, cpa_visible, direct_tracking, seller_approval_required | Promotion options |
languages, activate_date, activated_on | Languages sold in, date the offer joined the marketplace |
offer_url, marketplace_url, hoplink | Sales page, marketplace offer page, your hoplink |
affiliate_tools_url, affiliate_support_email, telegram, skype, image_url | Affiliate resources and contacts |
search, position, total_matching, scraped_at | Which search found it, its place in the order, matches in total |
return_rate_by_age, refund_rate_by_age, chargeback_rate_by_age | With includeDetails: share of sales returned at day 1, 7, 14, 30, 60 and 90 |
gravity_history, rank_history, average_epc_history | With includeDetails: one value per day for the last 91 days |
{
"offer_title": "AquaSculpt - #1 in weight loss",
"vendor": "AQUASCULPT",
"category": "Health & Fitness",
"sub_category": "Diets & Weight Loss",
"offer_description": "High converting, high paying offer from top Diamond Elite team. Excellent on ice cold traffic, as well as warm! Contact us and start making bank today!",
"gravity": 13.24,
"bi_gravity": 15.18,
"rank": 75,
"score": 275.94,
"seller_volume": 112,
"initial_sale_usd": 169.19,
"avg_sale_usd": 169.19,
"avg_rebill_usd": 0,
"refund_rate": 0.161702,
"return_rate_source": "90 Day Return Rate",
"initial_epc": 169.02,
"average_epc": 169.02,
"future_epc": null,
"net_epc": 0.3118,
"conversion_rate": 0.001837,
"is_recurring": true,
"is_one_time": true,
"is_physical": true,
"has_upsell": true,
"has_dollar_trial": false,
"mobile_enabled": true,
"direct_tracking": "disabled",
"cpa_visible": false,
"seller_approval_required": true,
"has_additional_hoplinks": false,
"languages": ["en"],
"activate_date": "01-10-2025",
"activated_on": "2025-01-10",
"offer_url": "https://getaquasculptnow.net/extraBottle/",
"sales_page_title": "aquasculpt",
"marketplace_url": "https://accounts.clickbank.com/marketplace.htm#/offer-details?offer=AQUASCULPT",
"hoplink": null,
"affiliate_tools_url": null,
"affiliate_support_email": "affiliates@webseeds.com",
"telegram": null,
"skype": null,
"image_url": "https://d2h8hiv6zzm73v.cloudfront.net/legacy/vendors/aquasculpt/1bottle-cb1735660257259.png",
"search": "weight loss",
"position": 9,
"total_matching": 94,
"scraped_at": "2026-10-21T07:44:30.801Z"
}
With Add refund and 90-day history on, each row also gets (trimmed):
{
"vendor": "LIVPURE",
"return_rate_by_age": {"day_1": 0.002392, "day_7": 0.014963, "day_14": 0.015748, "day_30": 0.032544, "day_60": 0.047414, "day_90": 0.033058},
"refund_rate_by_age": {"day_1": 0.002392, "day_7": 0.012469, "day_14": 0.013123, "day_30": 0.023669, "day_60": 0.043103, "day_90": 0.024793},
"chargeback_rate_by_age": {"day_1": 0, "day_7": 0.002494, "day_14": 0.002625, "day_30": 0.008876, "day_60": 0.00431, "day_90": 0.008264},
"gravity_history": [{"date": "2026-07-22", "value": 30.11}, {"date": "2026-07-23", "value": 29.63}],
"rank_history": [{"date": "2026-07-22", "value": 58}, {"date": "2026-07-23", "value": 61}],
"average_epc_history": [{"date": "2026-07-22", "value": 165.43}, {"date": "2026-07-23", "value": 165.19}]
}
Pay per result: $3.50 per 1,000 offers ($0.0035 per offer), with or without the refund and history add-on.
Platform usage (compute and proxy) is billed on top and is tiny here: a 94-offer search used about $0.0004 and the whole marketplace about $0.002 in our tests.
Is it legal? It reads public marketplace pages that anyone can open without an account. Use the data responsibly and follow ClickBank's terms for promoting offers.
Do I need a ClickBank account, login or proxy? No account and no login. A proxy is built in: the default datacenter proxy works, so you don't need your own.
How many offers can I get? Everything the marketplace lists, about 1,200 offers in total. Set maxResults to 0 and the category to ALL to export all of them (about 12 seconds). With the history add-on the marketplace answers about 3 to 4 offers per second, so 1,000 offers take about 5 minutes.
Why is a field empty? The marketplace only shows what the vendor provides. Values the marketplace marks as not available (for example EPC for offers with too few sales) are null. avg_rebill_usd is 0 for offers without rebills.
Can I schedule it or use the API? Yes. Save the input as a task, schedule it, and read results through the API or integrations.
Not affiliated with ClickBank.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchTermsarrayOptionalSearch terms
Keywords to search the marketplace for, one search per line (e.g. weight loss, keto, forex). The marketplace's own search operators work too: "weight loss" (exact phrase), keto OR ketogenic, dog -cat.
categoryenumOptionalCategory
Browse a whole marketplace category, or pick 'All categories' to read the entire marketplace. Combined with search terms, it narrows each search to that category.
subCategorystringOptionalSub-category
Optional sub-category inside the chosen category, e.g. Dietary Supplements, Diets & Weight Loss, Dog Training. Matched without regard to case.
offerIdsarrayOptionalOffer IDs
Look up specific offers by their ClickBank vendor ID (e.g. JAVABURN, PRODENTIM), for example to track offers you promote.
startUrlsarrayOptionalMarketplace URLs
ClickBank marketplace search URLs (accounts.clickbank.com/marketplace.htm#/results?...) or offer pages (…#/offer-details?offer=VENDOR). The search and filters in the URL are used.
maxResultsintegerOptionaldefault 20Max offers per search
How many offers to save for each search term, category, or marketplace URL. 0 means every matching offer (the whole marketplace lists about 1,200 offers).
sortByenumOptionaldefault "gravity"Sort by
Which offers come first. Gravity, Popularity, Rank and Relevance use the marketplace's own order. Every other sort reads all matching offers and ranks them, so the top offers by that metric come first.
reverseSortbooleanOptionaldefault falseReverse the order
Flip the chosen sort, e.g. the lowest gravity or the highest refund rate first.
Every filter is optional. Leave a field empty to not filter on it.
minGravitynumberOptionalMin gravity
Only offers with at least this gravity (number of affiliates who made a sale recently).
maxGravitynumberOptionalMax gravity
Only offers with at most this gravity.
minAverageSaleUsdnumberOptionalMin average $ per sale
Only offers that pay affiliates at least this many dollars per sale on average.
minInitialSaleUsdnumberOptionalMin initial $ per sale
Only offers whose first sale pays at least this many dollars.
minAverageRebillUsdnumberOptionalMin average $ per rebill
Only recurring offers that pay at least this many dollars per rebill.
minNetEpcUsdnumberOptionalMin EPC ($ per click)
Only offers whose earnings per hoplink click are at least this many dollars, e.g. 0.5.
minConversionRatePercentnumberOptionalMin conversion rate (%)
Only offers whose hoplink clicks convert at least this often, in percent, e.g. 1 for 1%.
maxRefundRatePercentnumberOptionalMax refund rate (%)
Only offers whose return rate (refunds plus chargebacks) is at most this, in percent, e.g. 8. Offers without a published rate are left out when this is set.
activatedAfterstringOptionalActivated on or after
Only offers that joined the marketplace on or after this date (YYYY-MM-DD). Good for finding new offers.
activatedBeforestringOptionalActivated on or before
Only offers that joined the marketplace on or before this date (YYYY-MM-DD).
languagesarrayOptionalOffer languages
Only offers that sell in every selected language (the marketplace's own rule), e.g. pick German alone for German offers. Leave empty for all.
billingTypesarrayOptionalBilling type
Only offers that have every selected billing type: one-time, recurring (subscription) or a $1 trial. Leave empty for all.
physicalOnlybooleanOptionaldefault falsePhysical products only
Only offers that ship a physical product.
upsellOnlybooleanOptionaldefault falseWith upsells only
Only offers that have upsells.
mobileEnabledOnlybooleanOptionaldefault falseMobile-enabled only
Only offers marked as mobile-enabled.
cpaOnlybooleanOptionaldefault falseCPA offers only
Only offers that show a CPA (cost per action) deal.
directLinkTrackingOnlybooleanOptionaldefault falseDirect link tracking only
Only offers that support direct link tracking.
noApprovalRequiredOnlybooleanOptionaldefault falseNo seller approval needed
Only offers you can promote without asking the seller for approval.
includeDetailsbooleanOptionaldefault falseAdd refund and 90-day history
Also save each offer's return, refund and chargeback rates by sale age (day 1 to day 90) and its daily gravity, rank and EPC for the last 91 days. One extra request per offer, same price.
affiliateNicknamestringOptionalYour affiliate nickname
Optional. Your ClickBank affiliate nickname, used to build a ready hoplink (https://hop.clickbank.net/?affiliate=YOU&vendor=OFFER) for every offer. Leave empty and hoplink stays empty.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies work well for the marketplace. Switch to residential only if you see blocked requests.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| offer_title | any | Offer |
| vendor | any | Vendor ID |
| category | any | Category |
| sub_category | any | Sub-category |
| gravity | any | Gravity |
| rank | any | Rank |
| avg_sale_usd | any | Avg $/sale |
| initial_sale_usd | any | Initial $/sale |
| avg_rebill_usd | any | Avg $/rebill |
| refund_rate | any | Refund rate |
| net_epc | any | EPC |
| conversion_rate | any | Conversion rate |
| is_recurring | any | Recurring |
| languages | any | Languages |
| activated_on | any | Activated |
| offer_url | any | Sales page |
| affiliate_tools_url | any | Affiliate page |
| marketplace_url | any | Marketplace page |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Offer | One ClickBank marketplace offer with all its stats saved to the dataset. | $0.0035 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('shelfbright/clickbank-scraper').call({
"searchTerms": [
"weight loss"
],
"maxResults": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run shelfbright/clickbank-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=shelfbright/clickbank-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Category ranked by average dollars per sale.
Keyword search with gravity and refund-rate filters.
Current stats for JAVABURN, PRODENTIM and LIVPURE.
Offers sold in German, in marketplace popularity order.
Refund rates by sale age plus daily gravity, rank and EPC.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.