Target Scraper - Product Prices, Stock and Reviews avatar

Target Scraper - Product Prices, Stock and Reviews

Pricing

from $2.20 / 1,000 results

Go to Apify Store
Target Scraper - Product Prices, Stock and Reviews

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

kane liu

Maintained by Community

Actor stats

1

Bookmarked

5

Total users

3

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

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: includeVariantRows is 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

FieldDescriptionExample
rowTypeEntity typeproduct
idEntity identifier89110863
tcinTarget item number89110863
titleProduct nameDigital air fryer
brandBrand nameGourmia
priceCurrent price49.99
regPriceRegular price69.99
dpciTarget department/class/item code072-04-0231
ratingAverage rating4.6
reviewCountReview count1200
productUrlProduct pagehttps://www.target.com/p/-/A-89110863
childrenAvailable variant details[]
fulfillmentAvailable pickup, delivery and shipping information{}
storeIdPricing store1771
zipRequested ZIP52404
member_priceExplicit Circle member price, when suppliednull

Store rows: store

FieldDescriptionExample
nameStore nameCedar Rapids South
addressStore street address123 Example Street
operatingHoursAvailable opening hoursnull

Category rows: category

FieldDescriptionExample
categoryIdCategory identifier5xtg6
parentCategoryIdParent category identifier5xtg6

Review rows: review

FieldDescriptionExample
textReview body, when availableEasy to use.
ratingIndividual rating or summary average5
summaryOnlyTrue for a ratings summary rather than a review bodytrue

Suggestion rows: suggestion

FieldDescriptionExample
termSuggested search phrasepaper towels
kindRelated search or completionrelated_search

Post rows: post

FieldDescriptionExample
captionPublic TargetStyle post captionLiving room ideas
image_urlPost image linkhttps://example.com/image.jpg

Asset rows: asset

FieldDescriptionExample
tcinProduct associated with the model89110863
modelUrlAvailable 3D model linkhttps://example.com/model.glb

How to scrape Target

  1. Open Target Scraper in Apify Console.
  2. Enter one target, such as keyword, and leave mode as auto.
  3. Set maxResults to 3 for a small first run.
  4. Click Start and wait for completion.
  5. 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.

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.

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

FieldWhat to enterDefault
modeA mode listed above, or automatic selectionauto
keywordSearch phraseEmpty; example uses paper towels
productUrlTarget product linkEmpty
tcinOne Target item numberEmpty
tcinsItem numbers for summaries or Circle pricing[]
categoryUrlTarget category or brand pageEmpty
categoryIdCategory identifier, without N-Empty
categorySlugCategory path textEmpty
brandIdBrand category identifierEmpty
brandSlugBrand path text, such as appleEmpty
maxResultsRows per input, 1–20070; example uses 3
zipUS ZIP for location context52404
storeIdTarget store identifier1771
storeIdsAdditional store identifiers[]
fulfillmentTypeany, pickup, same_day, shipping, shop_in_storeany
sortByrelevance, Featured, PriceLow, PriceHigh, RatingHigh, bestselling, newestrelevance
facetsTarget filter values, such as d_deals:sale[]
preselectTcinChild variant to selectEmpty
expandFacetsSearch additional channel/deal filtersfalse
expandVariantsInclude available child variant detailstrue
includeVariantRowsAdd separately billed variant rowsfalse
maxPagesLegacy page setting; not a strict row limit3
taxonomyDepthCategory tree depth, 1–42
enrichDetailsAdd available product-page details to listingstrue
enrichLimitListings to enrich, 0–201
includeFulfillmentInclude available fulfillment detailstrue
maxReviewsReview limit, 1–100; 0 uses 2020

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 planStart eventPrice per rowPrice 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 ApifyClient
client = 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

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 childrenTotal report their pre-cap length.
  • maxPages is not a strict delivery ceiling; use maxResults and the cost cap.
  • Source changes, unavailable products and access failures can reduce or prevent delivery.

More e-commerce and marketplace scrapers from the same publisher:

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.