Target Product Search Scraper
Pricing
from $5.00 / 1,000 results
Target Product Search Scraper
Target product search scraper that pulls product prices, ratings, and availability from Target.com search results and category pages, so retail analysts can collect structured data without manual browsing.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
Kawsar
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Target Product Search Scraper: Pull Structured Product Data from Target.com at Scale
Target.com lists millions of products across thousands of categories, but getting that data into a usable format means sitting through pages of manual browsing or building brittle browser scripts that break every time the site updates. This actor solves that. Point it at any Target search URL or category browse page and it collects structured product records across all paginated results automatically, including prices, ratings, availability, brand, images, and more.
Works with keyword search pages, department category pages, filtered result pages, and subcategory browse pages. You can scrape a single URL or queue up a whole list in one run.
What data does this actor extract?
Each product record contains the following fields:
| Field | Type | Description |
|---|---|---|
tcin | string | Target's unique internal product ID. Use this to track and deduplicate products. |
productTitle | string | Full product name as shown on the listing. |
brand | string | Brand or manufacturer name. |
currentPrice | number | Current selling price in USD, reflecting any active sale or promotion. |
regularPrice | number | Standard non-sale price in USD. Null when no comparison price is listed. |
onSale | boolean | True when the current price is lower than the regular price. |
averageRating | number | Average customer rating on a 0 to 5 scale. |
reviewCount | integer | Total number of customer reviews submitted for this product. |
url | string | Direct link to the product page on Target.com. |
imageUrl | string | URL of the primary product image. |
availableOnline | boolean | True when the product can be purchased online at the time of scraping. |
upc | string | Universal Product Code (barcode). Null when not returned by Target. |
currency | string | Currency code for price fields. Always USD. |
highlights | array | Feature bullet points from the product listing with HTML tags removed. |
productDescription | string | Short product description or introductory summary text. |
specifications | string | Full specifications block as raw HTML. Null for products without a spec sheet. |
shippingInfo | string | Free shipping threshold message, if available. |
weight | number | Package weight value. |
weightUnit | string | Unit of measure for weight (e.g. LB, OZ). |
origin | string | Country of origin. |
color | string | Color variant of this specific item. Null for products without color variants. |
size | string | Size variant of this specific item. Null for products without size options. |
sizeUnit | string | Unit of measure for the size field (e.g. FL OZ). |
images | array | All product image URLs: primary image first, then alternate angles. |
nextPage | string | URL to the next page of results. Null on the last page or when the item limit is reached. |
scrapedAt | string | ISO 8601 timestamp of when this record was collected. |
Supported URL types
| URL pattern | What gets scraped |
|---|---|
https://www.target.com/s?searchTerm=<keyword> | Keyword search results with all matching products |
https://www.target.com/c/<category-slug>/-/N-<id> | Category browse page products |
https://www.target.com/s?sortBy=relevance&category=<id>&searchTerm=<keyword> | Filtered or sorted search results |
https://www.target.com/c/<dept>/<subcat>/-/N-<id> | Department or subcategory product listings |
Use cases
- Price monitoring: track price changes on specific product categories over time by scheduling the actor to run on a recurring basis
- Competitive research: pull product catalogs from Target to compare against other retailers on pricing, availability, and assortment gaps
- Inventory tracking: monitor which products are in stock or out of stock across any category or search result set
- Product catalog building: collect structured product data including titles, brands, images, and prices for import into a database or spreadsheet
- Retail analytics: aggregate search result data across multiple keyword queries to understand how Target ranks products and surfaces brands
- Market research: extract product listings from department and subcategory pages to analyze pricing patterns, brand presence, and promotional activity
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
url | string | (required) | A single Target.com search or category page URL. |
urls | array of strings | (optional) | List of Target.com URLs to scrape in one run. One URL per line. |
maxItems | integer | 100 | Maximum products to collect per URL. Set to 0 for no limit. |
requestDelayMs | integer | 1000 | Milliseconds to wait between paginated page requests. Increase if you encounter rate limiting. |
proxyConfiguration | object | Datacenter (US) | Proxy type and location. Datacenter proxies with United States location are recommended. |
Note: Either url or urls must be provided. If both are given, url is processed first.
Example input 1: keyword search
{"url": "https://www.target.com/s?searchTerm=baking+sheet","maxItems": 50,"requestDelayMs": 1000,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyCountry": "US"}}
Example input 2: category browse page
{"url": "https://www.target.com/c/air-fryers-kitchen-appliances-dining/-/N-ncrpx","maxItems": 100,"requestDelayMs": 1500,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyCountry": "US"}}
Example input 3: multiple URLs in one run
{"urls": ["https://www.target.com/s?searchTerm=green+sneakers","https://www.target.com/s?searchTerm=running+shoes","https://www.target.com/c/travelwear-commute-activewear-men-s-clothing/-/N-hyb5i"],"maxItems": 75,"requestDelayMs": 1000,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyCountry": "US"}}
Example input 4: filtered search with sorting
{"url": "https://www.target.com/s?sortBy=relevance&Nao=0&category=5xu1w&searchTerm=green+sneakers","maxItems": 200,"requestDelayMs": 2000,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyCountry": "US"}}
Example input 5: no proxy (local testing)
{"url": "https://www.target.com/s?searchTerm=cast+iron+skillet","maxItems": 24}
Output
Results are saved to the Apify dataset. Each record represents one product.
Below is a sample output record:
{"tcin": "84695745","productTitle": "Nordic Ware Natural Aluminum Commercial Baker's Half Sheet","brand": "Nordic Ware","currentPrice": 14.99,"regularPrice": 17.99,"onSale": true,"averageRating": 4.8,"reviewCount": 3241,"url": "https://www.target.com/p/nordic-ware-natural-aluminum-commercial-baker-s-half-sheet/-/A-84695745","imageUrl": "https://target.scene7.com/is/image/Target/GUEST_abc123","availableOnline": true,"upc": "011172014890","currency": "USD","highlights": ["Half sheet size, great for baking, roasting, and more","Made from pure aluminum for fast, even heat distribution","Rolled edges prevent warping","Dishwasher safe"],"productDescription": "The perfect baking sheet for everything from cookies to roasted vegetables.","specifications": null,"shippingInfo": "Free shipping on orders over $35.00","weight": 1.2,"weightUnit": "LB","origin": "USA","color": null,"size": null,"sizeUnit": null,"images": ["https://target.scene7.com/is/image/Target/GUEST_abc123","https://target.scene7.com/is/image/Target/GUEST_abc124"],"nextPage": null,"scrapedAt": "2026-04-26T10:30:00.000000+00:00"}
How it works
- Parse the input URL to extract the search keyword, category ID, and any filter parameters from the URL query string and path.
- Call the product search API with the extracted parameters, requesting 24 products per page.
- Extract product data from the JSON response, mapping each item to the output schema fields.
- Paginate automatically by incrementing the offset in 24-item steps, continuing until the maximum item count is reached or no more results are returned.
- Deduplicate by TCIN across all input URLs so the same product is never pushed twice in a single run.
- Throttle requests using the configured delay between pages to stay within rate limits.
- Push results to the Apify dataset as they are collected, so data is available before the run finishes.
Proxy and anti-blocking
Target.com responds well to Datacenter proxies routed through US IP addresses. The actor defaults to Apify's Datacenter proxy pool with United States location, which is both fast and reliable for this use case.
If you notice empty results or HTTP 403 responses, switch to Residential proxies in the proxy configuration. Residential proxies use IP addresses assigned to real internet service providers and are harder for rate-limiting systems to detect.
The actor also rotates the proxy URL on each input URL request, so long multi-URL runs do not hammer a single IP.
FAQ
Can this actor scrape individual product detail pages? No. This actor is designed for search results and category browse pages where multiple products appear in a list. It collects the data available on those listing pages, including prices, ratings, availability, and images. For full product detail pages with extended descriptions and specifications, you would need a separate product page scraper.
Why does regularPrice sometimes come back null?
Target only shows a comparison price when a product is actively on sale. Products at their standard price do not have a reg_retail field in the response, so regularPrice will be null and onSale will be false.
How many products can I scrape per run?
The maxItems field caps how many products are returned per URL. The default is 100. You can set it higher or to 0 for no limit. In practice, Target search result pages typically return between a few dozen and a few hundred products before results run out, depending on the search term.
What happens if a URL returns no results? The actor logs a warning and moves on to the next URL. No records are pushed for that URL, and the run does not fail. You can check the actor log for details on which URLs produced results.
Can I run this actor on a schedule? Yes. Use Apify's built-in scheduler to run the actor at regular intervals. This is useful for price monitoring tasks where you want to track how prices and availability change over time. Connect the output to Google Sheets or a webhook to get automatic updates whenever new data arrives.
Why are some fields like color and size null?
Many products on Target are sold as single items without variant options. For those, Target does not return color or size attributes, so those fields are null. Products that come in multiple colors or sizes will have those fields populated.
Does the actor handle pagination automatically?
Yes. The actor pages through results automatically using the offset parameter, collecting up to maxItems products per URL. Each page returns 24 products. The actor stops when it reaches the item limit, runs out of results, or cannot determine the total result count.
Integrations
Connect Target Product Search Scraper with other apps and services using Apify integrations. You can integrate with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and many more. You can also use webhooks to trigger actions whenever new product data is ready.
Collecting Target product data at scale is straightforward with this actor. Whether you need a one-time category export or ongoing price monitoring across dozens of search queries, it handles pagination, deduplication, and structured output so you can focus on what to do with the data.