Target.com Product Scraper avatar

Target.com Product Scraper

Pricing

from $0.75 / 1,000 products

Go to Apify Store
Target.com Product Scraper

Target.com Product Scraper

Scrape target.com by search term or a Target link. Each row has the TCIN, title, brand, price and markdown, promotions, star rating, review count, shipping and pickup stock, images and link. Unrelated results for a term Target does not stock are dropped, not billed. $0.78 per 1,000 products.

Pricing

from $0.75 / 1,000 products

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

6

Monthly active users

4 days ago

Last modified

Share

Search target.com or paste a Target link and get one row per product: TCIN, title, brand, today's price and any markdown, promotions, star rating and review count, whether it ships, whether a nearby store has it for pickup, the images and the link.

A postcode sets the pickup store, but on every test run checked the price still came from Target's online store (pricedAtStoreId 3991). And any one search or category stops at 1,227 products, which is Target's own limit.

InputSearch terms, or Target search, category, brand or product links
OutputOne row per product: price and markdown, promotions, rating, review count, shipping and pickup stock, images, link
Ceiling2,000 products per run, and 1,227 per search or category
Account neededNone
Price$0.78 per 1,000 products on the Free plan, a little less on paid plans. The free plan's $5 a month covers about 6,400

🔍 What Target.com Product Scraper does

Each search term is run separately and every product it returns becomes a row. Category and brand links work the same way, and pasted product links are fetched first, so a broad category can never use up maxItems before the products you named.

Target never answers a search with "no matches". Ask for something it does not stock and it returns a page of 28 products that have nothing to do with the question. So the first page of every keyword search is checked against the words you typed, and if almost none of the titles mention them, you get one free NO_MATCH note instead of 28 charges. The check was tuned on 66 real shopping terms, none of which it rejected, including "bed sheets", where every product is titled "Sheet Set". It is loose in the other direction on purpose: dropping a real result is worse than letting a weak one through. Category and brand links skip the check.

Without a postcode you get Target's online view: shipping status, sold-out flags, delivery status and a ship-by date, with the pickup fields left null. Add a postcode and the nearest store's pickup status, name and unit count fill in. Three hundred products took 18 seconds on a test run.

📋 What data you get from each Target product

What you getField
TCIN, title, brand and linktcin, title, brand, url
Price, markdown and savingsprice, formattedPrice, regularPrice, comparisonPrice, onSale, savingsAmount, savingsPercent, priceType, priceNote
Unit price on grocery and household itemsunitPrice, unitPriceSuffix
Which store the price is forpricedAtStoreId
Promotionspromotions
Star rating and review countrating, reviewCount
Online and delivery stockonlineAvailability, soldOut, outOfStockInAllStores, scheduledDeliveryAvailability, shipsBy
Pickup stock at the store nearest your postcodepickupAvailability, pickupStoreId, pickupStoreName, pickupQuantity
ImagesprimaryImage, images
Shelf number, barcode and Target's classificationdpci, upc, itemType, departmentId, classId, categoryId
Product page bullets and specshighlights, specifications
With full detail: the long description and the count at each stardescription, ratingDistribution
Which search found it, and wheresearchTerm, position

▶️ How to scrape Target products

  1. Open Target.com Product Scraper and click Try for free.
  2. Type what you want into Search terms, or paste pages into Target URLs.
  3. Set Maximum products.
  4. For pickup stock at a store, fill in US postcode (optional).
  5. Click Start, then download the dataset as JSON, CSV or Excel.

The sample row appears only when a run has no search terms and no links. It is not charged.

💰 How much does it cost to scrape Target products?

$0.78 per 1,000 products on the Free plan. Paid plans pay a little less: $0.77 on Starter, $0.76 on Scale and $0.75 on Business. Stock and full detail cost nothing extra. On the free plan, the $5 Apify gives you each month covers about 6,400 products.

Not charged: the sample row, every note listed further down, the unrelated products behind a NO_MATCH, and a product that turns up under two searches, which is delivered once. If you set a maximum cost for the run, it stops there and says so in its status.

📥 What you give it

{
"searchTerms": ["air fryer"],
"zipCode": "55403",
"maxItems": 12
}
FieldDefaultWhat it is
searchTermsnoneWhat to look up, one per line, such as air fryer or paper towels.
startUrlsnoneTarget search pages, category and brand pages (/-/N-5xtg6) and product pages (/-/A-92084780), mixed freely. Product links always come back with the full description.
maxItems501 to 2,000 products across everything above. You pay per product, so this bounds the bill.
zipCodenoneA five-digit US postcode. Sets the store for pickup stock.
includeAvailabilitytrueWhether each product ships, is sold out and, with a postcode, is on the shelf for pickup.
includeFullDetailfalseAdds the long description, the barcode and the star-by-star review count. A large run takes noticeably longer with it on.
proxyConfigurationnoneOnly for your own servers, which are used as given. Leave it alone otherwise.

A category link is a node id: in target.com/c/anything/-/N-5xtg6, the 5xtg6 is what matters.

📤 What you get back

A real row from a run on 20 September 2026 with postcode 55403, with the image, highlight and specification lists cut short:

{
"tcin": "92084780",
"title": "Gourmia Digital 3qt Air Fryer with Guided Cooking Prompts Black/Stainless Steel Finish",
"brand": "Gourmia",
"url": "https://www.target.com/p/digital-3qt-air-fryer-with-guided-cooking-prompts-black-stainless-steel-finish/-/A-92084780",
"price": 39.99,
"formattedPrice": "$39.99",
"regularPrice": 39.99,
"comparisonPrice": null,
"onSale": false,
"savingsAmount": null,
"savingsPercent": null,
"unitPrice": null,
"unitPriceSuffix": null,
"priceType": "reg",
"priceNote": null,
"pricedAtStoreId": "3991",
"promotions": [],
"rating": 4.18,
"reviewCount": 471,
"onlineAvailability": "IN_STOCK",
"soldOut": false,
"outOfStockInAllStores": false,
"pickupAvailability": "IN_STOCK",
"pickupStoreId": "1375",
"pickupStoreName": "Mpls Nicollet Mall",
"pickupQuantity": 6,
"scheduledDeliveryAvailability": "IN_STOCK",
"shipsBy": "2026-09-21",
"primaryImage": "https://target.scene7.com/is/image/Target/GUEST_6ec22cbf-b531-4468-86ce-f0194548211b",
"images": ["https://target.scene7.com/is/image/Target/GUEST_6ec22cbf-b531-4468-86ce-f0194548211b"],
"dpci": "072-04-6561",
"upc": null,
"itemType": "Electric Fryers",
"departmentId": "72",
"classId": "4",
"categoryId": "ncrpx",
"highlights": [
"3-quart air fryer can cook for one or a few",
"8 One-Touch Cooking Functions eliminate guesswork"
],
"specifications": [
"Dimensions (Overall): 10.47 Inches (H) x 11.46 Inches (W) x 8.98 Inches (D)",
"Capacity (Volume): 3 Quart"
],
"description": null,
"ratingDistribution": null,
"searchTerm": "air fryer",
"position": 1,
"scrapedAt": "2026-09-20T00:46:59.705Z"
}

A marked-down product from another real run, price fields only:

{
"tcin": "94986645",
"price": 99.99,
"regularPrice": 99.99,
"comparisonPrice": 159.99,
"onSale": true,
"savingsAmount": 60,
"savingsPercent": 38
}
FieldHow to read it
tcinTarget's product number, the digits after A- in a product link. Stable, so use it to join runs.
price, regularPrice, comparisonPrice, onSaleOn a markdown, the old price is in comparisonPrice and regularPrice equals the current one. Read onSale first.
unitPrice, unitPriceSuffixGrocery and household items, such as $0.36 and /ounce.
pricedAtStoreIdWhich store the price is for. 3991 is Target's online store.
promotionsEach with message, promotionId, type, thresholdType, thresholdValue, rewardType and rewardValue.
pickupQuantityNeeds a postcode, and can be null while the status says in stock; pickupAvailability is the reliable one.
upc, description, ratingDistributionNeed full detail or a pasted product link.

🧾 Reading the output

Real product rows have no charged field. The free rows carry charged: false, so dropping those leaves only products.

RowHow to spot itBilled
A productA tcin and no charged fieldyes
The sample_sample: true and charged: falseno
A note_diagnostic: true, charged: false, with an errorCode, an error and a hintno

The sample looks like a real product row, so filter on _sample or charged rather than on the fields.

errorCodeWhat it means
NO_MATCHTarget stocks nothing for that term and answered with unrelated products, which were left out. The note carries a relevance score.
NO_RESULTSTarget returned no products for that term or link.
NOT_FOUNDNo product behind that TCIN. They change when Target merges or retires a listing.
BAD_URLNot a Target search, category, brand or product link.
ZIP_NOT_FOUNDNo store near that postcode. The run carries on with online prices.
LIMIT_REACHEDmaxItems was used up before that search or those links, so they were not fetched.
TARGET_UNREACHABLE, FAILEDTarget did not answer that part of the run. Re-running usually clears it.
NOT_SERVEDThis product was not served this run. Re-run it later. Until 12 October 2026 this code was called BLOCKED.
TIME_LIMITThe run got close to its time limit and stopped on its own. The products delivered before that are complete and charged. Give the run more time, or ask for fewer products, to get the rest.

A note never fails the run, except one: when the time limit stopped the run before any product came back, the run ends as failed, with a TIME_LIMIT note saying so.

💡 What people use it for

  • Watching a fixed list of products. Paste their links, schedule the run, and the rows line up on tcin from one run to the next.
  • Catching markdowns across a category, using onSale and comparisonPrice.
  • Checking whether one store has an item on the shelf before driving there.
  • Pulling DPCI, UPC and Target's classification for a product list.

🚧 What it does not do

  • No review text. The star average, the review count and, with full detail, the count at each star.
  • Pickup stock for one store only, the nearest to your postcode. Checking forty stores is a different job.
  • No store-level prices, as far as testing shows. pricedAtStoreId read 3991 on every row of every test run checked, with a postcode or without.
  • No variants as rows. A shirt in six colours is one row, the one Target shows in the listing.
  • Nothing behind a sign-in. No Circle member pricing, no order history.
  • target.com only. Target Australia is a different company.
  • No sponsored placements. Paid slots in the results are skipped, so this is the wrong tool for studying ads.
  • Prices move. A row is what target.com showed at scrapedAt.
  • It is not an official Target tool. Dami's Studio is independent and is not affiliated with or endorsed by Target, or by any other company named on this page.

🧭 Which retail scraper do you need?

If you wantUse
Target products with promotions and pickup stockThis one
Lowe's products with store price, stock and specsLowe's Product Scraper
Amazon products by keyword or ASIN, with the on-page reviewsAmazon Scraper
A Shopify store's whole catalogueShopify Products Scraper
Restock and price-drop alerts on stores that publish product data, such as Shopify or WooCommerce shopsProduct Price & Stock Monitor

❓ Questions people ask

Do I need a Target account or an API key?

No. Nothing is signed in and there is no key to get.

Can I scrape a whole Target category?

Up to 1,227 products of it, which is Target's own ceiling. For more, search the sub-categories separately.

Why did my search give a note instead of products?

Target had nothing matching and answered with unrelated items, so they were left out rather than billed. If you think that was wrong, a category or brand link fetches the products with no check.

What is a TCIN, and what is a DPCI?

The TCIN is Target's product number online and the one to join on. The DPCI is its shelf number in stores.

Why is pickupQuantity null when the item is in stock?

Target does not publish a unit count for every item. Trust pickupAvailability.

Can I call it from code or connect it to an AI assistant?

Yes. The API tab has ready-made code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/target-scraper. Either way the run happens on your Apify account at the same price.

It reads what target.com shows anyone who is not signed in. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page and send the input you used and the run ID; the note rows in the dataset usually name the reason already.