Target Products Scraper

The name arrives.
The price does not.

Our run against Target returned the product title and its images and left every money column empty. That is not a bug we are hiding - the vendor's own note and the live page agree on the cause, and this page states it before you build a pricing workflow on top of it.

one-time 500 free rowsthen $0.002 per row1 successful run, 5 of 17 columns populatedCSV · JSON · Excel
How it works

A list of URLs in, a spreadsheet out.

  1. STEP 1Sign in to the platform.
  2. STEP 2Open the Target Products Scraper.
  3. STEP 3Paste the Target product URLs you want, one per line - the /p/…/A-<id> form.
  4. STEP 4Choose your output format (CSV / JSON / XLSX).
  5. STEP 5Run the job.
  6. STEP 6Read name and image first - on our run those are the columns that arrived.
What to expect

The things worth knowing before you run it.

One run, five columns, and a real product

Our successful run submitted the vendor's own published example URL and came back ok with five of seventeen columns populated: query, name, images, image and url. The name is a full, correct product title and the image is a real Target image URL. So the service reaches the page and reads it - the question is only what the page hands over.

The price columns came back empty, and we know why

price, parsed_price, currency - all empty, along with brand, sku, rating, reviews, availability and description. The vendor's own service note says the price comes only from Target's separate RedSky API, which is protected and refuses datacenter addresses outright. Our export is exactly what that note predicts, which is why we present it as a known limit rather than an anomaly.

We checked the page ourselves, and it agrees

Fetching that same product URL returns about 685 KB of HTML containing the product name, the item id forty-five times and nearly a thousand references to Target's image host - and no structured-data block at all. The only dollar amount anywhere in the document is a free-shipping threshold inside the meta description. The markup carries a preconnect hint to the very API the vendor note names. Name and image are in the page; the price is not.

The schema shrank between 3 and 14 July 2026

Our successful run carries the familiar seventeen-column header. Both later runs carry a thirteen-column one, with sku_code, product_url, parsed_price and images gone. That is the opposite direction from some of our other catalogue services, whose schemas grew on the same date. If you are reconciling two Target exports and the columns do not line up, this is why.

Nothing was blocked, and robots.txt read cleanly

None of our runs returned a block. The two non-ok rows are 404s from a placeholder address that does not exist. Target's robots.txt answered a plain request with HTTP 200, its general group carries no blanket exclusion, and the product path we used is allowed. The obstacle here is not access to the page - it is that the page does not contain the number you want.

One successful run is one successful run

We hold exactly one row that returned data. That is enough to describe which columns arrived on it, and nowhere near enough to quote a success rate, a fill percentage across many products, or a claim about how Target behaves in general. Everywhere this page states a count, it is counting that row and those runs - nothing else.

What you get back

Seventeen columns, five of them populated.

Read from a real export, in sheet order. The counts come from our single successful run, so where this says a column carried a value, it is describing that row and no other.

query
The Target URL you submitted. Populated on all three of our rows, including the two that failed - it echoes back what was asked for, which is what lets you reconcile a result set against your input list.
sku_code
Intended to carry Target's own item number. Empty on our row, even though that number is visible in the URL itself as the A-… segment. If you need it, parse it from url rather than waiting for the column.
product_url
Intended to carry the canonical product page. Empty on our row - url carried the address instead. Note that this column does not exist at all in the thirteen-column form.
name
The product title as the listing states it. Populated, and a full retail title: brand, model, configuration and finish all in one string. This is the column the service delivers most reliably here.
description
Intended to carry the longer product text. Empty on our row.
parsed_price
Intended to carry the price as a bare number. Empty on our row, and absent entirely from the thirteen-column form. See the note below: the page does not serve a price to read.
price
Intended to carry the price as displayed. Empty on our row, for the same reason.
currency
Intended to carry the currency the price is quoted in. Empty on our row - with no price there is nothing to denominate.
availability
Intended to carry stock status. Empty on our row. Target publishes availability per store and per fulfilment method, so treat its absence as the listing not handing one over rather than as the item being unavailable.
rating
Intended to carry an average customer rating. Empty on our row.
reviews
Intended to carry the review count behind that rating. Empty on our row.
images
Every image on the listing. Populated - a real Target image URL on the product's own image host. Along with name, this is what the run actually delivered.
brand
Intended to carry the manufacturer. Empty on our row, although on this particular product the maker is the first word of name. Parse it from the name if you need to group by it.
sku
Intended to carry a second identifier. Empty on our row, so we cannot tell you whether Target populates it differently from sku_code.
url
The address the row was produced from. Populated, and equal to query on our row. The item id is inside it, which makes it the practical identifier for this service.
image
The primary image on its own, so the common case needs no string splitting. Populated, and identical to images on our row.
status
A per-row flag written by our exporter, not by Target. Across our three runs it took two values: ok on one row and http 404 on two, the latter from a placeholder address that does not exist. Reconcile on this column.

Seventeen columns per row · CSV, JSON or Excel

Two things this table cannot tell you on its own. First, why the money columns are empty. The vendor's own service note records that the price comes only from Target's separate RedSky API, which is protected and refuses datacenter addresses outright - and a direct fetch of the same product page agrees with that completely: roughly 685 KB of HTML carrying the product name, the item id and nearly a thousand image-host references, with no structured-data block and no price anywhere, plus a preconnect hint pointing at that very API. The page you can read does not contain the number, so no scraper reading that page will return it. Second, the header itself moved. Our successful run is seventeen columns; both later runs are thirteen, having dropped sku_code, product_url, parsed_price and images. Check which form you are holding before you diff two exports.

Common workflows

What a name and an image are good for.

Catalogue matching

Resolve a Target URL to a real product title

The title that came back is the full retail string - maker, model, size and finish. That is enough to match a Target link against your own catalogue, or against a listing from another retailer, without opening the page by hand.

Data · Matching
Feed building

Attach the official product image

image came back as a real URL on Target's own image host, and images carried the same value. If what you need is a picture beside a link - an internal catalogue, a comparison table, a slide - that part works today.

Feeds · Content
Price work

Plan pricing elsewhere

If the job is price monitoring, this is the wrong source and we would rather say so up front. Our Best Buy, CDW and Uline services returned real money columns from their own runs; the pages for those say exactly how much and from what.

Pricing · Substitution
Evidence

Record what a listing said, and when

A row with a name, an image and a timestamp is a dated record of a listing existing in the form it did. Pair it with a screenshot if the appearance matters as much as the text.

Audit · Records
Pricing

Pay only for what you actually use.

Free tier

First 500 rows are free

One time, on signup. No card, and nothing to cancel afterwards.

One-time, on signup
Rate

then $0.002 per row

Billed on rows actually returned. A row that comes back with a name and an image is a row; the empty money columns do not make it cheaper, so try a handful before you queue a list.

Billed on rows returned
No subscription

Nothing recurring

Credits do not expire on a monthly cycle, so nothing drains while you decide whether this source fits the job.

No monthly expiry
10% off your first paid run.Use code LIVESCRAPER10 at checkout.
Register
Pairs well with

Where the money columns do arrive.

The legal bit

Is it legal to scrape Target?

Product names and images on a public listing are ordinary commercial information. The interesting question on this page is not permission - it is what the page actually contains.

A product title and a picture of the goods are facts about items offered for sale, read from a page served to any visitor. Nothing in the seventeen columns describes a person: no name, no email address, no phone number, no account - so the data-protection questions that shape our people-facing services do not arise here. Images remain the retailer's or the manufacturer's to license; the column gives you an address, not a right to republish the picture, and that distinction is yours to respect.

Access was not the obstacle in our runs. Target's robots.txt answered a plain request with HTTP 200 on 12 August 2026; read with a proper matcher its general group carries 114 rules, no blanket exclusion, and the product path we used is allowed. Nothing we ran was blocked. What stopped the price arriving is a design decision on the site's side: the figure is served by a separate protected API rather than printed in the page, and the vendor's own service note records that that API refuses datacenter addresses outright. We report that rather than working around it, and we would rather you knew before the job than after.

Our own terms are the same as on every other service here. Publicly available pages only, nothing behind a login, no third-party trackers on the data layer, and exports auto-delete after 30 days. Your first 500 rows are free and need no credit card.

livescraper.app · what shapes a run
Name and image arrived on our successful run
price, currency, brand, sku, rating, reviews: empty
The live page carries no price and no structured data
robots.txt read cleanly; the product path is allowed
Exports auto-delete after 30 days
No Target price appears anywhere on this page, because our runs never returned one.
Common questions

What people ask before signing up.

Does this service return Target prices?+
Not in anything we hold. Our one successful run returned name, images, image, url and query - five of seventeen columns - and left price, parsed_price and currency empty along with brand, sku, rating, reviews, availability and description.
Why not? Is it blocked?+
The page is not blocked - we fetched it directly and got HTTP 200. The price simply is not in it. Target serves prices from a separate API rather than printing them in the markup, and the vendor's own service note records that this API is protected and refuses datacenter addresses outright. A scraper that reads the page cannot return a number the page does not contain.
How do you know the page has no price?+
We checked on 12 August 2026. The product URL returned about 685 KB of HTML containing the product name, the item id forty-five times and nearly a thousand references to Target's image host - with no structured-data block anywhere and exactly one dollar amount in the whole document, which is a free-shipping threshold inside the meta description. The markup also preconnects to the API the vendor note names.
What did the successful row actually contain?+
A full retail product title - maker, model, size and finish in one string - a real image URL on Target's own image host, the URL we submitted, and ok in the status column. That is a genuinely useful row if what you need is to resolve a link to a product; it is not a pricing row.
Why do my two Target exports have different columns?+
Because the schema changed. Our 3 July 2026 run carries seventeen columns; both later runs carry thirteen, with sku_code, product_url, parsed_price and images gone. Check which form you are holding before diffing two files.
How many runs is this based on?+
Three, of which one returned data and two were 404s against a placeholder address that does not exist. We are not quoting a success rate or a fill percentage from that, and this page says so wherever a number appears.
What should I use if I need prices?+
Something whose page serves them. Our Best Buy service returned a price on 78 of its 85 rows, and our CDW and Uline services returned full money columns from their own runs - each of those pages states exactly what it measured.
How much does it cost?+
Your first 500 rows are free, one time, no card. After that it is $0.002 per row, billed on rows actually returned. A row with a name and an image still counts as a row, so test a handful before queuing a long list.
What formats can I export?+
CSV, JSON or Excel. The columns and their order are the same in all three.

Useful for names. Not for prices.

A Target URL resolves to a real product title and a real image. The money columns came back empty in our run, and both the vendor note and the live page say why. Your first 500 rows are free, then $0.002 each.

Billed on rows returned · no price is quoted on this page because we never received one

Scrape Target product data

Target is one of the largest general retailers in the United States, and this page describes what our service actually returned from it rather than what a product page for the category would normally promise. We hold three runs. One returned data: it submitted the vendor's own published example URL and came back successful with five of seventeen columns populated - the submitted address, the product name, the image URL twice over, and the status flag. The name is a complete retail title and the image is a genuine address on Target's own image host, so the run reached the listing and read it correctly. The other two runs are 404s against a placeholder address that does not exist and say nothing about Target at all.

What did not arrive is the price, and the reason is worth stating carefully because it is not the usual one. Nothing was blocked. Target's robots.txt answered a plain request with HTTP 200 on 12 August 2026, its general group carries no blanket exclusion when read with a proper matcher, and the product path we used is allowed. We then fetched the product page itself: roughly 685 kilobytes of HTML containing the product name, the item identifier forty-five times and close to a thousand references to the image host - and no structured-data block anywhere, and exactly one dollar amount in the entire document, which turns out to be a free-shipping threshold inside the meta description. The markup opens a preconnect to a separate Target API. The vendor's own service record names that API and notes that it is protected and returns a hard refusal to datacenter addresses. Two independent sources, the same conclusion: the price is not in the page a scraper can read.

That makes this a good service for a narrow job and the wrong one for a common job. If you need to resolve a Target link to a real product title, or to attach the official product image to an internal catalogue, our run shows both of those working. If you need price monitoring, this is not the source, and we would rather write that here than let a trial discover it. Our Best Buy service returned a price on seventy-eight of its eighty-five rows; our CDW and Uline services returned full money columns from their own runs; each of those pages states what it measured and how.

One more practical caveat. The export schema changed between 3 and 14 July 2026, and in the less usual direction: our successful run carries the seventeen-column header familiar from our other catalogue services, while both later runs carry a thirteen-column one with sku_code, product_url, parsed_price and images removed. If you are reconciling two Target exports and the columns will not line up, that is why. Beyond that, everything on this page counts one successful row and three runs; no success rate is quoted, no fill percentage across many products, and no Target price - invented, estimated or borrowed from a neighbouring catalogue. Publicly available pages only, no third-party trackers on the data layer, exports auto-delete after 30 days, and your first 500 rows are free with no credit card.