Target API
Target API returns live Target data as clean JSON for target The primary endpoint, search, returns product results including variant tcin, product tcin, position, name and brand.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
Developers reach for it when they need to validate, enrich, classify and normalize operational data without maintaining one-off scraping code or separate API contracts. If you were about to build or fix a Target scraper, this API is the maintained alternative — it returns the same data as clean JSON, with the proxies, rotation and anti-bot handling already solved. This page covers the live example, request shape, response shape and available actions: search, product_detail. Every request uses the same ReefAPI envelope, one API key and one shared credit pool, so it fits alongside the rest of your data stack.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/target/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "coffee maker",
"max_results": 24
}
}{
"ok": true,
"meta": {
"api": "target",
"endpoint": "search",
"mode": "live",
"latency_ms": 1440.1,
"record_count": 24,
"bytes": 323099,
"cache_hit": false,
"completeness_pct": 100,
"stop_reason": "limit_reached",
"method": "target_ssr_documents",
"route": "crawler_ua",
"field_sources": {
"crawler_ua": "every field on this action"
},
"degraded": false,
"source": {
"surface": "target.com server-rendered ItemList (schema.org)",
"url": "https://www.target.com/s/coffee+maker",
"upstream_calls": 1,
"page_size": 24
},
"search_mode": "keyword",
"keyword_match_rate": 1,
"pagination": {
"page": 1,
"page_size": 24,
"returned": 24,
"offset": 0,
"deepest_offset": 264,
"total_results": 285,
"total_results_at_most": 288,
"has_more": true,
"next_page": 2
},
"filters": {
"applied": [],
"ignored": [],
"notes": "target.com publishes no facet vocabulary on this surface, so only filters measured to bite are offered: sort, min_price, max_price."
},
"notes": null
},
"data": {
"products": [
{
"variant_tcin": "91863920",
"product_tcin": "91863920",
"url": "https://www.target.com/p/mr-coffee-12c-programmable-drip-coffee-maker-stainless-steel-finish/-/A-91863920",
"position": 1,
"name": "[redacted-name]",
"brand": "Mr. Coffee",
"brand_url": "https://www.target.com/b/mr-coffee/-/N-5s76z",
"category": "Coffee Makers",
"image": "https://target.scene7.com/is/image/Target/GUEST_fd026130-c56b-41d3-9e88-992fcf06debf",
"price": 19.99,
"list_price": 34.99,
"currency": "USD",
"on_sale": true,
"in_stock": null,
"availability": null,
"rating": 4.3,
"rating_count": 929,
"review_count": null,
"offer_type": "sale"
},
{
"variant_tcin": "91863923",
"product_tcin": "91863923",
"url": "https://www.target.com/p/mr-coffee-12c-drip-coffee-maker-black/-/A-91863923",
"position": 2,
"name": "[redacted-name]",
"brand": "Mr. Coffee",
"brand_url": "https://www.target.com/b/mr-coffee/-/N-5s76z",
"category": "Coffee Makers",
"image": "https://target.scene7.com/is/image/Target/GUEST_7b42039c-223f-420b-97a8-d99a339a6295",
"price": 18.99,
"list_price": 26.99,
"currency": "USD",
"on_sale": true,
"in_stock": null,
"availability": null,
"rating": 4.4,
"rating_count": 1251,
"review_count": null,
"offer_type": "sale"
},
{
"variant_tcin": "90116759",
"product_tcin": "91466170",
"url": "https://www.target.com/p/keurig-k-mini-go-multicup-reservoir-single-serve-k-cup-pod-coffee-maker-with-strong-brew-button/-/A-91466170",
"position": 3,
"name": "[redacted-name]",
"brand": "Keurig",
"brand_url": "https://www.target.com/b/keurig/-/N-5uvm4",
"category": "Coffee Makers",
"image": "https://target.scene7.com/is/image/Target/GUEST_17b87f23-79f3-4bbb-b0a2-98d278f42e6b",
"price": 69.99,
"list_price": 99.99,
"currency": "USD",
"on_sale": true,
"in_stock": null,
"availability": null,
"rating": 4,
"rating_count": 2064,
"review_count": null,
"offer_type": "sale"
}
],
"related_categories": []
}
}What the Target API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Find products on target.com (US). Give a free-text `query` ('coffee maker', 'lego star wars', 'nike running shoes') to run Target's own site search, or a `category` path ('/c/cpus/-/N-01vhh', '/b/apple/-/N-5y3ej') to browse a Target category or brand page. Every product comes back with BOTH of Target's ids — the parent product id and the specific colour/size id — plus the name, brand, category, image, current price, the crossed-out list price when it is on sale, the star rating and rating count, and the product URL. Narrow with `sort`, `min_price` and `max_price`; page with `page` and `max_results`. | Ops teams call search to find products on target.com (US). | query, category, page, max_results, sort, ... |
| product_detail | Get one Target product in full, by Target's own id or by its target.com URL. One call returns the UPC barcode, the shipping weight and package dimensions with Target's own units, the complete image gallery, the entire colour/size variant matrix with each variant's own price, list price, stock status, barcode, weight, dimensions, image and native Target id, the specification table parsed into name/value pairs, the brand, the category breadcrumb path, the current price and availability, the star rating with its full 1-5 distribution and Target's secondary ratings, the customer review photos, and the customer reviews inline. | Developer tools call product_detail to get one Target product in full, by Target's own id or by its target.com URL. | tcin, url, reviews, include_price |
Call search from your stack
curl -X POST https://api.reefapi.com/target/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"coffee maker","max_results":24}'import requests
r = requests.post(
"https://api.reefapi.com/target/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "coffee maker",
"max_results": 24
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/target/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "coffee maker",
"max_results": 24
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.target.search with {"query":"coffee maker","max_results":24}.Who uses this API and why
- Ops teams use Target to find products on target.com (US).
- Developer tools use Target to get one Target product in full, by Target's own id or by its target.com URL.
- Validation workflows use Target to validate, enrich, classify and normalize operational data, all from one ReefAPI key and credit pool.
Questions developers ask before integrating
What is the Target API?
Target API is a ReefAPI endpoint group for target It returns live JSON through POST requests under /target/v1.
Is the Target API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Target calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Target login or account?
No login to Target is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Target data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Target API use?
Target actions currently cost 1-3 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call Target from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call target actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Target API a Target scraper?
It is the managed alternative to a DIY Target scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same target back as clean JSON.
Why does my Target scraper keep getting blocked?
Most Target scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.