Target Scraper - Product Prices, Stock and Reviews
Pricing
from $2.20 / 1,000 results
Target Scraper - Product Prices, Stock and Reviews
Extract Target.com US products, prices, ratings, reviews, store locations and category data. Search by keyword, brand or TCIN and pay per delivered row plus a start fee.
Pricing
from $2.20 / 1,000 results
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
1
Bookmarked
5
Total users
3
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
Target Scraper
Extract Target.com US product prices, availability, reviews and catalog data as rows you can export.
- Product search, categories, brands and individual TCINs.
- Store locations, category trees and product variants.
- Review text when available, search suggestions and TargetStyle posts.
- ZIP and store context for location-sensitive prices and stock.
- Rows cost $3.00 per 1,000 on the Free plan, plus a small start fee.
What does Target Scraper do?
Target Scraper collects public shopping data from Target.com for US retail research. Use it to compare prices, track assortments or build product catalogs. It is unofficial and is not affiliated with Target.
- Product modes: search, category browse, brand browse, details and summaries.
- Catalog modes: stores, category children, category trees and aisle searches.
- Additional modes: reviews, suggestions, TargetStyle posts, public Circle pricing, compact details and available 3D model links.
- Optional variant rows:
includeVariantRowsis off by default. Each added variant is a separately billed product row and shares the input's row allowance.
What data can you extract from Target?
Every row has rowType and id. Fields vary by mode and source availability; missing values are not invented.
Product rows: product
| Field | Description | Example |
|---|---|---|
rowType | Entity type | product |
id | Entity identifier | 89110863 |
tcin | Target item number | 89110863 |
title | Product name | Digital air fryer |
brand | Brand name | Gourmia |
price | Current price | 49.99 |
regPrice | Regular price | 69.99 |
dpci | Target department/class/item code | 072-04-0231 |
rating | Average rating | 4.6 |
reviewCount | Review count | 1200 |
productUrl | Product page | https://www.target.com/p/-/A-89110863 |
children | Available variant details | [] |
fulfillment | Available pickup, delivery and shipping information | {} |
storeId | Pricing store | 1771 |
zip | Requested ZIP | 52404 |
member_price | Explicit Circle member price, when supplied | null |
Store rows: store
| Field | Description | Example |
|---|---|---|
name | Store name | Cedar Rapids South |
address | Store street address | 123 Example Street |
operatingHours | Available opening hours | null |
Category rows: category
| Field | Description | Example |
|---|---|---|
categoryId | Category identifier | 5xtg6 |
parentCategoryId | Parent category identifier | 5xtg6 |
Review rows: review
| Field | Description | Example |
|---|---|---|
text | Review body, when available | Easy to use. |
rating | Individual rating or summary average | 5 |
summaryOnly | True for a ratings summary rather than a review body | true |
Suggestion rows: suggestion
| Field | Description | Example |
|---|---|---|
term | Suggested search phrase | paper towels |
kind | Related search or completion | related_search |
Post rows: post
| Field | Description | Example |
|---|---|---|
caption | Public TargetStyle post caption | Living room ideas |
image_url | Post image link | https://example.com/image.jpg |
Asset rows: asset
| Field | Description | Example |
|---|---|---|
tcin | Product associated with the model | 89110863 |
modelUrl | Available 3D model link | https://example.com/model.glb |
How to scrape Target
- Open Target Scraper in Apify Console.
- Enter one target, such as
keyword, and leavemodeasauto. - Set
maxResultsto3for a small first run. - Click Start and wait for completion.
- Open the dataset and download your rows.
Empty input starts the example search for paper towels, limited to 3 rows. It uses the input form's sample values and normal event pricing. One target field selects its matching mode automatically. For the additional modes below, choose mode explicitly.
Keyword search
Use keywordSearch with keyword to find matching products.
Category browse
Use categoryBrowse with categoryId, categoryUrl or categorySlug for category products.
Brand browse
Use brandBrowse with brandId, brandSlug or a brand page in categoryUrl. Choose this mode explicitly when using a brand URL.
Product detail
Use productDetail with tcin or productUrl. Product links need an /A-<item number> segment.
Store locations
Choose storeLocations and optionally enter zip to find stores.
Taxonomy children
Choose taxonomyBrowse with categoryId to get its child categories.
Category tree
Choose categoryTree, optionally set categoryId, and use taxonomyDepth to limit depth.
Aisles search
Choose aislesSearch with keyword or categoryId. Results are product rows; shelf positions are not guaranteed.
Product reviews
Choose productReviews with tcin or productUrl. Results may be ratings-only summaries.
Product summaries
Use productSummaries with tcins for several products. Each TCIN is a separate input.
Autocomplete suggestions
Choose autocomplete with keyword for related searches or completions.
TargetStyle posts
Choose findsPosts for the public feed; optionally filter with tcin.
Circle membership pricing
Choose circleMembership with tcins. Only an explicit member price populates member_price; an ordinary sale is not treated as a membership discount.
Compact item detail
Choose itemDetail with tcin or productUrl. Available store positions appear in storePositions.
3D product model
Choose threeDimensional with tcin or productUrl. Only products with a model link can return an asset row.
What to fill in
| Field | What to enter | Default |
|---|---|---|
mode | A mode listed above, or automatic selection | auto |
keyword | Search phrase | Empty; example uses paper towels |
productUrl | Target product link | Empty |
tcin | One Target item number | Empty |
tcins | Item numbers for summaries or Circle pricing | [] |
categoryUrl | Target category or brand page | Empty |
categoryId | Category identifier, without N- | Empty |
categorySlug | Category path text | Empty |
brandId | Brand category identifier | Empty |
brandSlug | Brand path text, such as apple | Empty |
maxResults | Rows per input, 1–200 | 70; example uses 3 |
zip | US ZIP for location context | 52404 |
storeId | Target store identifier | 1771 |
storeIds | Additional store identifiers | [] |
fulfillmentType | any, pickup, same_day, shipping, shop_in_store | any |
sortBy | relevance, Featured, PriceLow, PriceHigh, RatingHigh, bestselling, newest | relevance |
facets | Target filter values, such as d_deals:sale | [] |
preselectTcin | Child variant to select | Empty |
expandFacets | Search additional channel/deal filters | false |
expandVariants | Include available child variant details | true |
includeVariantRows | Add separately billed variant rows | false |
maxPages | Legacy page setting; not a strict row limit | 3 |
taxonomyDepth | Category tree depth, 1–4 | 2 |
enrichDetails | Add available product-page details to listings | true |
enrichLimit | Listings to enrich, 0–20 | 1 |
includeFulfillment | Include available fulfillment details | true |
maxReviews | Review limit, 1–100; 0 uses 20 | 20 |
With location fields empty, pricing uses store 1771 in ZIP 52404, Cedar Rapids, Iowa. For priced product modes, changing ZIP while keeping the default store attempts to select a nearby store; if that lookup fails, the default can remain. Check the returned storeId before comparing prices.
Examples for each mode:
Keyword search
{"keyword": "paper towels", "maxResults": 3}
Category browse
{"mode": "categoryBrowse", "categoryId": "5xtg6", "maxResults": 3}
Brand browse
{"mode": "brandBrowse", "brandSlug": "apple", "maxResults": 3}
Product detail
{"mode": "productDetail", "tcin": "89110863", "maxResults": 1}
Store locations
{"mode": "storeLocations", "zip": "75201", "maxResults": 3}
Taxonomy children
{"mode": "taxonomyBrowse", "categoryId": "5xtg6", "maxResults": 3}
Category tree
{"mode": "categoryTree", "categoryId": "5xtg6", "taxonomyDepth": 2, "maxResults": 3}
Aisles search
{"mode": "aislesSearch", "keyword": "paper towels", "maxResults": 3}
Product reviews
{"mode": "productReviews", "tcin": "89110863", "maxReviews": 3, "maxResults": 3}
Product summaries
{"mode": "productSummaries", "tcins": ["89110863", "93248143"], "maxResults": 1}
Autocomplete suggestions
{"mode": "autocomplete", "keyword": "paper", "maxResults": 3}
TargetStyle posts
{"mode": "findsPosts", "maxResults": 3}
Circle membership pricing
{"mode": "circleMembership", "tcins": ["89110863"], "maxResults": 1}
Compact item detail
{"mode": "itemDetail", "tcin": "89110863", "maxResults": 1}
3D product model
{"mode": "threeDimensional", "tcin": "89110863", "maxResults": 1}
maxItems and limit are aliases for maxResults. Unknown fields are ignored with a note; close misspellings can be corrected when the intended field is empty. INPUT_REPORT in the default key-value store records the resolution. With competing targets, URLs take priority over TCINs, category/brand identifiers, slugs and keywords.
Input-resolution errors use INVALID_INPUT: <field> — <how to fix>. Additional URL validation can instead name the required Target link format directly. Validation occurs before row delivery, so invalid input incurs no row charge; the start fee still applies.
Output example
Illustrative product row; prices and availability are not a current quote:
{"rowType": "product","id": "89110863","source": "target","mode": "keywordSearch","tcin": "89110863","title": "Digital air fryer","brand": "Gourmia","price": 49.99,"regPrice": 69.99,"currency": "USD","rating": 4.6,"reviewCount": 1200,"productUrl": "https://www.target.com/p/-/A-89110863","zip": "52404","storeId": "1771","capturedAt": "2026-10-24T00:00:00+00:00"}
Export rows as JSON, CSV, Excel, XML, RSS or an HTML table. RUN_SUMMARY records delivered rows and warnings; ERROR_SUMMARY supplies details when a run fails.
Why use this Target scraper?
- Pay per delivered row. Attempts without a delivered row have no row charge.
- Keep delivered data. Rows already written to the dataset remain available after a stop or timeout. Data not yet delivered is not guaranteed.
- Inspect errors. Input reports and run summaries explain validation, empty results and failures.
- Keep missing values honest. Unavailable prices or review bodies remain empty.
- Batch product IDs. Summaries and Circle pricing accept several TCINs; other target fields are scalar.
- No proxy setup. You do not need to set up proxies.
How much does it cost to scrape Target?
The Actor uses pay-per-event pricing. At the default 512 MB, one start event costs $0.005. Start-event quantity scales with allocated memory: one event per GB, minimum one. Platform usage is included in these prices.
| Apify plan | Start event | Price per row | Price per 1,000 rows |
|---|---|---|---|
| Free | $0.005 | $0.003 | $3.00 |
| Starter | $0.005 | $0.003 | $3.00 |
| Scale | $0.005 | $0.0026 | $2.60 |
| Business | $0.005 | $0.0022 | $2.20 |
| Platinum | $0.005 | $0.002 | $2.00 |
| Diamond | $0.005 | $0.0016 | $1.60 |
maxResults applies to each input, defaults to 70 and accepts up to 200. Larger allowances are collected in parts of 70. All row types share that allowance, including variant and summary rows. Available data may be smaller than the requested limit.
Free Apify plan runs are capped at 200 rows, with a limit of 10 runs of this Actor. The whole run stops at the Maximum cost per run you set (maxTotalChargeUsd in the API).
Example: one keyword delivering 50 rows on the Free plan at 512 MB costs 50 × $0.003 + $0.005 = $0.155 for one start. An empty example is a paid example, not a free preview.
What happens when the run timeout is too short
When automatic resumption is accepted and collection needs longer than the remaining time, the run can pause with this status message: "Queued on the collection backend; this run will resume automatically when results are ready (about N s)." It appears as ABORTED temporarily. When results are ready, the same run resumes, delivers to the same dataset and can finish as SUCCEEDED. This pause-and-resume sequence does not deliver or charge the same row twice; you do not need to start a replacement run.
A run can pause this way at most 3 times. Keep the default timeout of 3600 seconds to reduce interruptions. Resumption is not a guarantee that every aborted or timed-out run will recover; check its status message.
The synchronous API endpoints run-sync and run-sync-get-dataset-items wait at most 300 seconds and can return an empty dataset while a run is paused. For longer requests, start asynchronously and read the dataset after SUCCEEDED, or use a succeeded-event webhook.
Use with AI agents and the API
Apify MCP server
Claude, ChatGPT, Cursor and VS Code clients with remote MCP support can use:
https://mcp.apify.com?tools=lentic_clockss/target-scraper
Sign in through Apify OAuth, or send Authorization: Bearer <YOUR_APIFY_TOKEN>. The tool returns run and dataset IDs; read rows with get-dataset-items. For clients without remote support, run npx @apify/actors-mcp-server --tools lentic_clockss/target-scraper with APIFY_TOKEN set.
Example prompt: "Find three Target paper towel products for ZIP 52404 and return their titles, prices and TCINs."
Apify API
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("lentic_clockss/target-scraper").call(run_input={"keyword": "paper towels", "maxResults": 3})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row)
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('lentic_clockss/target-scraper').call({keyword: 'paper towels', maxResults: 3,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
For asynchronous HTTP calls, send your JSON input to POST https://api.apify.com/v2/acts/lentic_clockss~target-scraper/runs with an Authorization: Bearer header. Once finished, read GET https://api.apify.com/v2/datasets/<datasetId>/items?format=json.
Integrations
Use the Actor's Integrations tab for Google Sheets, Make, Zapier, n8n, Slack, Airtable or webhooks. Use Apify Schedules for recurring runs.
FAQ
Is it legal to scrape Target?
This Actor collects public data. You are responsible for complying with Target's terms and applicable data-protection laws. Processing personal data requires a lawful basis; public availability alone is not permission for every use.
Why did my run end as ABORTED?
It may be waiting for automatic resumption, as described above. A manual abort or unrelated failure is different: inspect the status message before deciding whether to retry.
How many results can I get?
Request 1–200 rows per input with maxResults. Several TCINs can produce a larger total on paid plans, subject to available data and your cost cap. Free-plan runs stop at 200 rows.
Why are some fields empty?
Target does not expose every field for every product or location. A parent item can show a variable price rather than a number. Try a specific child TCIN or preselectTcin for product details.
Can I get every review?
No. productReviews returns available review bodies or a row marked summaryOnly. Complete review history and full review pagination are not guaranteed.
Does this cover other countries?
No. Coverage is Target.com US retail data, with prices in USD. ZIP and store fields adjust US location context; they do not select another country.
Does this access my Target account?
No private Target account or checkout data is collected. The Actor uses Apify limited permissions. Public Circle price fields do not reproduce a personalized checkout total.
Limitations
- No checkout, purchases, private registries or private account data.
- Weekly Ad deep extraction and seller comparisons are outside this Actor's documented scope.
- Not every product has reviews, fulfillment details, explicit Circle prices or a 3D model.
- Attribute lists are capped at 50 values; companion fields such as
childrenTotalreport their pre-cap length. maxPagesis not a strict delivery ceiling; usemaxResultsand the cost cap.- Source changes, unavailable products and access failures can reduce or prevent delivery.
Related scrapers
More e-commerce and marketplace scrapers from the same publisher:
- Walmart Product Scraper
- Temu Product Scraper
- Allegro Scraper
- TikTok Shop Product Scraper
- Amazon Search, Category & Best Sellers Scraper
- Coupang Product Scraper
- MercadoLibre Scraper
- Rakuten Japan Scraper
Browse all of our scrapers at apify.com/lentic_clockss.
Support
Report problems or request a field through the Issues tab of this Actor's page. Include the run ID and the input you used.