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

Scrape Target.com products from keyword searches, category and brand pages, and product URLs or TCINs. Get prices, sale prices, ratings, availability, images, UPC/DPCI, specs and variants, plus optional reviews and store-level stock for any ZIP code. No login needed.
Scrape Target.com products from keyword searches, category and brand pages, and product URLs or TCINs. Get current and regular prices, sale flags, ratings, shipping availability, images and seller, plus optional UPC/DPCI, specifications, variants, customer reviews and store-level stock for any US ZIP code. No login, no browser, about 1,000 products in under a minute.
laptop) or paste Target URLs or TCINs (product, search, category or brand pages).| Field | Type | Description |
|---|---|---|
searchQueries | array | Keywords, each runs its own Target search |
startUrls | array | Product, search, category or brand URLs, or TCINs |
maxResultsPerSearch | integer | Products per keyword or listing URL (default 20, 0 = all Target lists) |
sort | string | relevance, price_low, price_high, bestselling, newest, rating |
minPrice / maxPrice | integer | Price range in USD |
brands | array | Only these brands, e.g. Apple, Dell |
dealsOnly | boolean | Only products on sale or in a deal |
includeDetails | boolean | Add product page details to search results |
includeReviews | boolean | Add customer reviews |
maxReviewsPerProduct | integer | Reviews per product (default 10, 0 = all) |
reviewsSort | string | most_recent, helpful, highest_rating, lowest_rating |
zipCode / storeId | string | Local store for prices, pickup and in-store stock |
maxItems | integer | Overall product limit across all inputs (0 = none) |
{
"searchQueries": ["laptop"],
"startUrls": ["https://www.target.com/p/apple-airpods-4/-/A-85978615"],
"maxResultsPerSearch": 20,
"sort": "price_low",
"brands": ["HP", "Lenovo"],
"zipCode": "10001",
"includeReviews": true,
"maxReviewsPerProduct": 5
}
| Field | Description |
|---|---|
tcin, parentTcin | Target item number and its parent (variant group) |
title, brand, url | Product name, brand and product page |
price, priceMax, priceString | Current price (and top of the range for variant groups) |
regularPrice, onSale, savePercent, saveAmount | Regular price and discount |
rating, reviewCount | Average rating and number of ratings |
thumbnail, images | Image URLs |
availability, fulfillment | Shipping status and delivery dates; with a store: pickup, in-store status, quantity, same-day delivery |
isMarketplace, seller | Target Plus marketplace flag and seller name |
itemType, socialProof | Item type and badges such as "100+ bought in last month" |
upc, dpci, description, bullets, specifications | Product page details (product URLs, or with includeDetails) |
category, breadcrumbs, variants, ratingDistribution, packageDimensions | More product page details |
reviews | Reviews (with includeReviews) |
source, position, scrapedAt | Which input found it, its rank in the results and when |
{
"tcin": "85978615",
"parentTcin": "93606140",
"title": "Apple AirPods 4 Wireless Earbuds",
"brand": "Apple",
"url": "https://www.target.com/p/ap2022-true-wireless-bluetooth-headphones/-/A-85978615",
"price": 129.99,
"priceString": "$129.99",
"regularPrice": 129.99,
"onSale": false,
"rating": 3.91,
"reviewCount": 4998,
"thumbnail": "https://target.scene7.com/is/image/Target/GUEST_abe46d5d-4336-4839-a5e9-62212c77be23",
"availability": "OUT_OF_STOCK",
"fulfillment": {
"shippingStatus": "OUT_OF_STOCK",
"storeId": "3412",
"storeName": "Chelsea 23rd and 8th",
"pickupStatus": "UNAVAILABLE",
"inStoreStatus": "OUT_OF_STOCK",
"storeQuantity": 0
},
"isMarketplace": false,
"seller": "Target",
"socialProof": "19k+ bought in last month",
"storeId": "3412",
"zipCode": "10001",
"upc": "195949688522",
"dpci": "057-10-6413",
"specifications": {"Weight": "32.3 Grams", "Connection Type": "USB-C", "Wireless Technology": "Bluetooth"},
"breadcrumbs": ["Electronics & Tech", "Headphones", "Earbuds", "Wireless Earbuds"],
"variants": [
{"tcin": "85978615", "attributes": {"Version": "Without Active Noise Canceling"}, "price": 129.99, "upc": "195949688522", "dpci": "057-10-6413"},
{"tcin": "85978618", "attributes": {"Version": "With Active Noise Canceling"}, "price": 179.99, "upc": "195949689604", "dpci": "057-10-1345"}
],
"reviews": [
{"reviewId": "f1e2d3c4-0000-4000-8000-000000000001", "rating": 5, "title": "Great fit", "text": "Comfortable and the sound is clear.", "submittedAt": "2026-10-12T16:48:31.000+00:00", "isVerified": true, "helpfulVotes": 2, "reviewerNickname": "SampleShopper"}
],
"source": {"type": "product", "input": "https://www.target.com/p/apple-airpods-4/-/A-85978615"},
"scrapedAt": "2026-10-15T04:27:04Z"
}
The dataset has three views: Products (overview), Details (identifiers and store stock) and Reviews (one row per review).
Pay per result: $2.40 per 1,000 products ($0.0024 each) and $0.50 per 1,000 reviews when you turn reviews on. Platform usage (compute and proxy) is billed separately and is small: an ordinary run of a few hundred products uses well under one cent of it.
Example: 1,000 products ≈ $2.40 plus about a cent of usage. 100 products with 10 reviews each ≈ $0.24 + $0.50 = $0.74.
Is it legal to scrape Target? The actor only collects publicly visible product information, the same data anyone sees on target.com without logging in. Reviewer data is limited to the public nickname. Check that your use complies with Target's terms and the laws that apply to you.
Do I need a Target account or proxies? No login is needed. The default residential proxy is required (Target blocks datacenter IPs), but the actor only uses compressed JSON, so traffic stays tiny.
How many products can I get? Target lists at most about 1,200 products per search and sort order. When you ask for more, the actor also walks other sort orders and removes duplicates. For bigger crawls use several narrower keywords, categories or price ranges.
Why is a field empty? Not every product has every field. Search results don't include UPC or specifications unless you turn on product page details. Store fields appear only when you enter a ZIP code or store ID. Variant groups (parent TCINs) show a price range instead of one price.
Which store do the prices come from? Without a ZIP code or store, prices and availability are Target's national online ones. With a ZIP code, the nearest store is used and saved in storeId / fulfillment.storeName.
Can I schedule it or use the API? Yes. Schedule runs for daily price tracking and read the results via the API, webhooks or integrations.
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.
searchQueriesarrayOptionalSearch keywords
Each keyword runs as its own Target.com search, e.g. `laptop`, `coffee maker`, `lego star wars`.
startUrlsarrayOptionalTarget URLs or TCINs
target.com product pages (`/p/.../-/A-12345678`), search pages (`/s?searchTerm=...`), category pages (`/c/.../-/N-5xtf4`) or brand pages (`/b/.../-/N-5y3ej`). Filters in the URL are kept. Plain TCINs such as `85978615` work too. Product URLs always include full product page details.
maxResultsPerSearchintegerOptionaldefault 20Maximum products per search or category
Maximum number of products saved for each keyword, search URL or category URL. 0 means as many as Target lists.
Applied to keyword searches and search, category and brand URLs.
sortenumOptionaldefault "relevance"Sort by
Order of search and category results.
minPriceintegerOptionalMinimum price (USD)
Only products priced at or above this amount.
maxPriceintegerOptionalMaximum price (USD)
Only products priced at or below this amount.
brandsarrayOptionalBrands
Only products from these brands, e.g. `Apple`, `Dell`. Names are matched against Target's brand filter for each search.
dealsOnlybooleanOptionaldefault falseDeals only
Only products that are on sale or part of a current deal.
includeDetailsbooleanOptionaldefault falseInclude product page details
Adds UPC, DPCI, full description, highlights, specifications, breadcrumbs, rating breakdown, all variants with their own price/UPC/DPCI, package dimensions and return policy to search results. One extra request per product. Product URLs always include these.
includeReviewsbooleanOptionaldefault falseInclude reviews
Adds customer reviews (rating, title, text, date, verified purchase, helpful votes, reviewer nickname) to each product. Reviews are billed separately.
maxReviewsPerProductintegerOptionaldefault 10Maximum reviews per product
How many reviews to add per product when reviews are on. 0 means all reviews, up to about 20,000 per product (reviews are saved inside the product's row, which can't grow without limit).
reviewsSortenumOptionaldefault "most_recent"Review order
Which reviews come first.
verifiedReviewsOnlybooleanOptionaldefault falseVerified purchases only
Only reviews from verified purchasers.
Leave empty for national online prices and shipping availability.
zipCodestringOptionalUS ZIP code
5-digit US ZIP code. The nearest Target store is used for local prices, pickup, in-store stock and same-day delivery status.
storeIdstringOptionalTarget store ID
A specific Target store number, e.g. `3412` (find it on target.com/store-locator). Overrides the store picked from the ZIP code.
maxItemsintegerOptionaldefault 0Maximum products in total
Stop after this many products across all inputs. 0 means no overall limit.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["RESIDENTIA…Proxy configuration
Residential proxies are required: Target blocks datacenter IPs with its bot protection. Traffic is small (about 1 MB per 1,000 products).
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 |
|---|---|---|
| tcin | string | Target item number (TCIN) |
| title | string | null | |
| url | string | null | Product page URL |
| price | number | null | |
| regularPrice | number | null | |
| rating | number | null | |
| reviewCount | number | null | |
| images | array | null | |
| fulfillment | object | null | |
| source | object | Which input produced this product |
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 |
|---|---|---|
| Product | One saved Target product (with product page details when turned on or for product URLs). | $0.0024 |
| Review | One customer review added to a product (only when reviews are turned on). | $0.0005 |
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/target-scraper').call({
"searchQueries": [
"laptop"
],
"maxResultsPerSearch": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"RESIDENTIAL"
]
}
})
// 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/target-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/target-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.
Search results with full product details.
Products in a price range, cheapest first.
Search results with product reviews.
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.