All scrapers

E-commerce

Target Scraper

target.com

97.4% Success rate
1.9s Avg response
Bot detection + rate limiting Protection
1,164 calls Measured over

Target is served through a dedicated plugin endpoint rather than the generic page fetch. Give it a query and it returns the products already parsed: the title, the brand, the price, a product image and a clean URL. Sort the results, filter by price and collect as many as you need across pages. The data comes from Target's own Redsky product API, driven through our anti-bot chain - no HTML to parse and no Target API account.

What you can extract

  • Product title and a clean product URL
  • Brand
  • Price and currency
  • Product image
  • TCIN product identifier

Dedicated endpoints

/marketplace/target-search

A product search on Target

Target products for a query: a products array with title, brand, price, image and a product url. Sort, filter with min_price/max_price and page with max_results. US retail, from the Target Redsky API.

How to scrape it

curl -X POST \
  -H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
  "https://api.scrapeunblocker.com/marketplace/target-search?query=coffee%20maker"
import requests

resp = requests.post(
    "https://api.scrapeunblocker.com/marketplace/target-search",
    headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
    params={"query": "coffee maker"},
)
print(resp.text)
import { ScrapeUnblockerClient } from 'scrapeunblocker';

const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });

const data = await su.targetSearch('coffee maker', {
  sort: 'price_low',
  maxResults: 48,
});
console.log(data);

Requests are POST and take their parameters in the query string. Browser rendering always happens - there is no flag to enable.

Example response

{
  "query": "coffee maker",
  "resultsCollected": 48,
  "products": [
    {
      "tcin": "80130149",
      "title": "Keurig K-Mini Single-Serve K-Cup Pod Coffee Maker",
      "brand": "Keurig",
      "price": 79.99,
      "formattedPrice": "$79.99",
      "currency": "USD",
      "image": "https://target.scene7.com/is/image/Target/....jpeg",
      "url": "https://www.target.com/p/-/A-80130149"
    }
  ]
}

Read the API docs

Frequently asked questions

Is it legal to scrape Target?

Collecting publicly available Target data such as product titles, brands and prices is lawful in many jurisdictions, but the rules depend on your country, the data you collect and how you use it. ScrapeUnblocker returns the public page; what you collect and how you use it is your responsibility.

How do I scrape Target without getting blocked?

Target uses bot detection and rate limiting. The ScrapeUnblocker plugin rotates residential and ISP exits and handles challenges for you, then returns the products already parsed. In ScrapeUnblocker's benchmark it returned real content on 97.4% of 1,164 calls, about 1.9s per call.

What Target data can I get?

For each product in a search: the TCIN (Target's own product id), title, brand, numeric price and the price as Target prints it, currency, a product image and a clean product URL. Sort by relevance, newest or price, filter with min_price and max_price, and collect up to 500 products per search with max_results.

Do I need a Target API or account?

No. The Target plugin returns product search results as JSON without a Target API account or developer key. Send a query with your ScrapeUnblocker key and you get a products array back, with no HTML to parse. A field with no value is left out of that product.

Can I monitor Target prices at scale?

Yes. Run searches in parallel up to your plan's concurrency limit: 20 to 100 concurrent requests on Pay as you go, Starter and Pro, and 200 to 400 on Business, Scale and Ultimate. Key your price feed by tcin to track the same product over time. The plugin uses a US exit by default, as Target requires.

How much does it cost to scrape Target?

Each Target plugin call is one request, and 1 request = 1 credit: EUR 1.00 per 1,000 on pay as you go, down to about EUR 0.55 per 1,000 on the Ultimate plan. A plugin search is one call, and the response already holds the full result set. Blocks, timeouts and errors on ScrapeUnblocker's side are not billed. The free trial includes 500 requests, no card.

Related scrapers

Start scraping this site today

Free tier included. No credit card required to test it.