# Target API

> Target returns product listings, prices, ratings, and store availability as a workflow and API.

Target's Search products returns matching listings; it needs product words and optionally a ZIP code and sort order. Get product returns product details and current pricing; it needs a product name or link and optionally a ZIP code. Check store stock returns nearby stock and pickup or delivery availability; it needs a product name or link and US ZIP code.

- Page: https://fous.com/tools/target
- Handle: `@target`
- Category: [Commerce](https://fous.com/tools/category/commerce)
- Source website: https://target.com
- Last verified: Sep 29, 2026

## Methods

### Check store stock

Operation `check_store_stock`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Check a Target product’s stock and pickup or delivery availability at stores nearest a US ZIP code. Availability changes quickly; distances may be approximate when Target does not provide them.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `product` | string | yes | `"https://www.target.com/p/bounty-select-a-size-paper-towels-6-triple-rolls/-/A-53274278"` | Product name or Target product link, for example Bounty Select-A-Size Paper Towels. |
| `zip_code` | string | yes | `"55403"` | Five-digit US ZIP code, for example 55403. |
| `max_stores` | integer | no | `3` | How many nearby stores to check, for example 10. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "product",
    "zip_code"
  ],
  "properties": {
    "product": {
      "type": "string",
      "description": "Product name or Target product link, for example Bounty Select-A-Size Paper Towels.",
      "examples": [
        "https://www.target.com/p/bounty-select-a-size-paper-towels-6-triple-rolls/-/A-53274278",
        "Bounty Select-A-Size Paper Towels"
      ]
    },
    "zip_code": {
      "type": "string",
      "description": "Five-digit US ZIP code, for example 55403.",
      "examples": [
        "55403",
        "10001"
      ]
    },
    "max_stores": {
      "type": "integer",
      "default": 10,
      "maximum": 20,
      "minimum": 1,
      "description": "How many nearby stores to check, for example 10.",
      "x-fous-developer": true,
      "examples": [
        3,
        2
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "product": "https://www.target.com/p/bounty-select-a-size-paper-towels-6-triple-rolls/-/A-53274278",
      "zip_code": "55403",
      "max_stores": 3
    },
    {
      "product": "Bounty Select-A-Size Paper Towels",
      "zip_code": "10001",
      "max_stores": 2
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `tcin` | string | `"53274278"` |  |
| `stores` | array |  |  |
| `stores[].address` | string | `"900 Nicollet Mall, Minneapolis, MN 55403-2530"` |  |
| `stores[].store_id` | string | `"1375"` |  |
| `stores[].store_url` | string | `"https://www.target.com/sl/mpls-nicollet-mall/1375"` |  |
| `stores[].store_name` | string | `"Mpls Nicollet Mall"` |  |
| `stores[].stock_status` | string | `"In stock"` |  |
| `stores[].distance_miles` | number or null | `0.67` |  |
| `stores[].drive_up_available` | boolean | `true` |  |
| `stores[].order_pickup_available` | boolean | `true` |  |
| `stores[].same_day_delivery_available` | boolean | `true` |  |
| `product_url` | string | `"https://www.target.com/p/bounty-select-a-size-paper-towels-6-triple-rolls/-/A-53274278"` |  |
| `product_name` | string | `"Bounty Select-A-Size Paper Towels - 6 Triple Rolls - 2-Ply - 123 Sheets"` |  |

**Example input**

```json
{
  "product": "https://www.target.com/p/bounty-select-a-size-paper-towels-6-triple-rolls/-/A-53274278",
  "zip_code": "55403",
  "max_stores": 3
}
```

**Example output**

```json
{
  "tcin": "53274278",
  "stores": [
    {
      "address": "900 Nicollet Mall, Minneapolis, MN 55403-2530",
      "store_id": "1375",
      "store_url": "https://www.target.com/sl/mpls-nicollet-mall/1375",
      "store_name": "Mpls Nicollet Mall",
      "stock_status": "In stock",
      "distance_miles": 0.67,
      "drive_up_available": true,
      "order_pickup_available": true,
      "same_day_delivery_available": true
    },
    {
      "address": "1329 5th St SE, Minneapolis, MN 55414-1390",
      "store_id": "3200",
      "store_url": "https://www.target.com/sl/minneapolis-dinkytown/3200",
      "store_name": "Minneapolis Dinkytown",
      "stock_status": "In stock",
      "distance_miles": 2.61,
      "drive_up_available": false,
      "order_pickup_available": true,
      "same_day_delivery_available": false
    },
    {
      "address": "2500 E Lake St, Minneapolis, MN 55406-1909",
      "store_id": "52",
      "store_url": "https://www.target.com/sl/east-lake-street-and-hwy-55/52",
      "store_name": "East Lake Street and Hwy 55",
      "stock_status": "In stock",
      "distance_miles": 2.79,
      "drive_up_available": true,
      "order_pickup_available": true,
      "same_day_delivery_available": true
    }
  ],
  "product_url": "https://www.target.com/p/bounty-select-a-size-paper-towels-6-triple-rolls/-/A-53274278",
  "product_name": "Bounty Select-A-Size Paper Towels - 6 Triple Rolls - 2-Ply - 123 Sheets"
}
```

### Get product

Operation `get_product`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Get one Target product’s details and current price by name or product link. A ZIP code selects a nearby store; prices and offers may vary by location.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `product` | string | yes | `"Ninja 4qt Air Fryer"` | Product name or Target product link, for example Ninja 4qt Air Fryer. |
| `zip_code` | string | no | `"10001"` | US ZIP code for a nearby store, for example 10001. Uses Target’s default location when omitted. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "product"
  ],
  "properties": {
    "product": {
      "type": "string",
      "description": "Product name or Target product link, for example Ninja 4qt Air Fryer.",
      "examples": [
        "Ninja 4qt Air Fryer",
        "https://www.target.com/p/ninja-4qt-air-fryer-black-af101/-/A-53649826",
        "LEGO Classic Medium Creative Brick Box"
      ]
    },
    "zip_code": {
      "type": "string",
      "default": "",
      "description": "US ZIP code for a nearby store, for example 10001. Uses Target’s default location when omitted.",
      "x-fous-developer": false,
      "examples": [
        "10001",
        "90210"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "product": "Ninja 4qt Air Fryer"
    },
    {
      "product": "https://www.target.com/p/ninja-4qt-air-fryer-black-af101/-/A-53649826",
      "zip_code": "10001"
    },
    {
      "product": "LEGO Classic Medium Creative Brick Box",
      "zip_code": "90210"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `upc` | string or null | `"622356554572"` |  |
| `tcin` | string | `"53649826"` |  |
| `brand` | string or null | `"Ninja"` |  |
| `price` | number or null | `79.99` |  |
| `currency` | string | `"USD"` |  |
| `highlights` | array |  |  |
| `promotions` | array |  |  |
| `image_links` | array |  |  |
| `star_rating` | number or null | `4.56` |  |
| `product_link` | string | `"https://www.target.com/p/ninja-4qt-air-fryer-black-af101/-/A-53649826"` |  |
| `product_name` | string | `"Ninja 4qt Air Fryer - Black AF101: 1550W, Digital Control, Dishwasher-Safe, 1-Year Warranty"` |  |
| `regular_price` | number or null | `119.99` |  |
| `specifications` | array |  |  |
| `specifications[].name` | string | `"Dimensions (Overall)"` |  |
| `specifications[].value` | string | `"13.3 Inches (H) x 11 Inches (W) x 13.6 Inches (D)"` |  |
| `number_of_reviews` | integer or null | `632` |  |

**Example input**

```json
{
  "product": "Ninja 4qt Air Fryer"
}
```

**Example output**

```json
{
  "upc": "622356554572",
  "tcin": "53649826",
  "brand": "Ninja",
  "price": 79.99,
  "currency": "USD",
  "highlights": [
    "Now enjoy guilt-free food. Air fry with up to 75% less fat than traditional frying methods",
    "Wide Temperature Range: 105F/400F allows you to gently remove moisture from foods or quickly cook and crisp foods with convection heat",
    "4-quart ceramic-coated non-stick basket and crisper plate fits 2 lbs of French fries"
  ],
  "promotions": [
    "$40.00 off (sale price)"
  ],
  "image_links": [
    "https://target.scene7.com/is/image/Target/GUEST_127e9e1c-2cdc-4e69-9a35-de5998d4c037",
    "https://target.scene7.com/is/image/Target/GUEST_17ee877d-9037-4f00-8223-06c787321554",
    "https://target.scene7.com/is/image/Target/GUEST_d406baba-0d74-446b-9b8b-a352dd9f922c"
  ],
  "star_rating": 4.56,
  "product_link": "https://www.target.com/p/ninja-4qt-air-fryer-black-af101/-/A-53649826",
  "product_name": "Ninja 4qt Air Fryer - Black AF101: 1550W, Digital Control, Dishwasher-Safe, 1-Year Warranty",
  "regular_price": 119.99,
  "specifications": [
    {
      "name": "Dimensions (Overall)",
      "value": "13.3 Inches (H) x 11 Inches (W) x 13.6 Inches (D)"
    },
    {
      "name": "Weight",
      "value": "10.58 Pounds"
    },
    {
      "name": "Holds up to",
      "value": "2 Pounds"
    }
  ],
  "number_of_reviews": 632
}
```

### Search products

Operation `search_products`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Search Target products with prices, ratings, photos and product links. Prices can vary by store.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `sort` | string | no | `"price_low_to_high"` | How to order the results, such as price_low_to_high. |
| `query` | string | yes | `"air fryer"` | Product words to search for, such as air fryer. |
| `zip_code` | string | no | `"10001"` | US ZIP code for local pricing, such as 10001. Omit to use Target’s default store. |
| `max_results` | integer | no | `30` | Maximum products to return, such as 48 (up to 96). |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "sort": {
      "enum": [
        "relevance",
        "price_low_to_high",
        "price_high_to_low",
        "top_rated",
        "newest"
      ],
      "type": "string",
      "default": "relevance",
      "description": "How to order the results, such as price_low_to_high.",
      "examples": [
        "price_low_to_high"
      ]
    },
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Product words to search for, such as air fryer.",
      "examples": [
        "air fryer",
        "coffee maker"
      ]
    },
    "zip_code": {
      "type": "string",
      "pattern": "^[0-9]{5}$",
      "description": "US ZIP code for local pricing, such as 10001. Omit to use Target’s default store.",
      "examples": [
        "10001"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 24,
      "maximum": 96,
      "minimum": 1,
      "description": "Maximum products to return, such as 48 (up to 96).",
      "x-fous-developer": true,
      "examples": [
        30
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "query": "air fryer"
    },
    {
      "sort": "price_low_to_high",
      "query": "coffee maker",
      "zip_code": "10001",
      "max_results": 30
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `products` | array |  | Products in Target search order, including sponsored listings. |
| `products[].tcin` | string | `"89110863"` |  |
| `products[].brand` | string or null | `"Gourmia"` |  |
| `products[].price` | number or null | `59.99` | Current price in USD, or null when the price varies. |
| `products[].currency` | string | `"USD"` |  |
| `products[].photo_url` | string or null | `"https://target.scene7.com/is/image/Target/GUEST_33d23cc1-0d51-43b8-9152-e1be3be14ed2"` |  |
| `products[].price_range` | string or null | `"$79.99 - $99.99"` | Displayed USD price range when variations have different prices. |
| `products[].product_url` | string or null | `"https://www.target.com/p/gourmia-6-qt-digital-window-air-fryer-with-12-presets-38-guided-cooking-black/-/A-89110863"` |  |
| `products[].star_rating` | number or null | `4.09` |  |
| `products[].product_name` | string or null | `"Gourmia™ 6qt Digital Window Air Fryer with 12 Presets & Guided Cooking Black: Stainless Steel, 1-Year Warranty"` |  |
| `products[].review_count` | integer or null | `2266` |  |
| `products[].regular_price` | number or null | `69.99` | Regular USD price when the listing is on sale. |

**Example input**

```json
{
  "query": "air fryer"
}
```

**Example output**

```json
{
  "products": [
    {
      "tcin": "89110863",
      "brand": "Gourmia",
      "price": 59.99,
      "currency": "USD",
      "photo_url": "https://target.scene7.com/is/image/Target/GUEST_33d23cc1-0d51-43b8-9152-e1be3be14ed2",
      "price_range": null,
      "product_url": "https://www.target.com/p/gourmia-6-qt-digital-window-air-fryer-with-12-presets-38-guided-cooking-black/-/A-89110863",
      "star_rating": 4.09,
      "product_name": "Gourmia™ 6qt Digital Window Air Fryer with 12 Presets & Guided Cooking Black: Stainless Steel, 1-Year Warranty",
      "review_count": 2266,
      "regular_price": 69.99
    },
    {
      "tcin": "90569368",
      "brand": "Ninja",
      "price": null,
      "currency": "USD",
      "photo_url": "https://target.scene7.com/is/image/Target/GUEST_86b9c857-5097-450b-bf5f-b8ed4e88914c",
      "price_range": "$79.99 - $99.99",
      "product_url": "https://www.target.com/p/ninja-air-fryer-pro-4-in-1-af141/-/A-90569368",
      "star_rating": 3,
      "product_name": "Ninja™ Pro 4-in-1 Air Fryer",
      "review_count": 1,
      "regular_price": 129.99
    },
    {
      "tcin": "92084780",
      "brand": "Gourmia",
      "price": 39.99,
      "currency": "USD",
      "photo_url": "https://target.scene7.com/is/image/Target/GUEST_6ec22cbf-b531-4468-86ce-f0194548211b",
      "price_range": null,
      "product_url": "https://www.target.com/p/digital-3qt-air-fryer-with-guided-cooking-prompts-black-stainless-steel-finish/-/A-92084780",
      "star_rating": 4.17,
      "product_name": "Gourmia™ Digital 3qt Air Fryer with Guided Cooking Prompts Black/Stainless Steel Finish",
      "review_count": 475,
      "regular_price": null
    }
  ]
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@target",
  "visibility": "public",
  "operation": "check_store_stock",
  "version": 1,
  "input": {
    "product": "https://www.target.com/p/bounty-select-a-size-paper-towels-6-triple-rolls/-/A-53274278",
    "zip_code": "55403",
    "max_stores": 3
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@target\",\n  \"visibility\": \"public\",\n  \"operation\": \"check_store_stock\",\n  \"version\": 1,\n  \"input\": {\n    \"product\": \"https://www.target.com/p/bounty-select-a-size-paper-towels-6-triple-rolls/-/A-53274278\",\n    \"zip_code\": \"55403\",\n    \"max_stores\": 3\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@target",
  "visibility": "public",
  "operation": "check_store_stock",
  "version": 1,
  "input": {
    "product": "https://www.target.com/p/bounty-select-a-size-paper-towels-6-triple-rolls/-/A-53274278",
    "zip_code": "55403",
    "max_stores": 3
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/target`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `check_store_stock`: Check store stock. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `get_product`: Get product. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `search_products`: Search products. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-target https://api.fous.com/mcp/tools/target --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Compare prices and ratings across product listings
- Review product details, promotions, and specifications
- Find nearby stores with a product in stock
- Check pickup, drive-up, and delivery availability
- Browse product photos and links

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this Target tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a Target account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from target.com when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 29, 2026.

### What products match my search, and what do they cost?

Search products returns matching listings with prices, ratings, photos, and product links.

### What are a product's details and current price?

Get product returns details and current pricing for a product name or Target product link.

### Which nearby stores have a product available?

Check store stock returns nearby stock status and pickup or delivery availability for a product and ZIP code.

## Related

- [All Commerce tools](https://fous.com/tools/category/commerce)
