# 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/workflows/target
- Handle: `@target`
- Category: [Commerce](https://fous.com/workflows/category/commerce)
- Source website: https://target.com
- Last verified: Sep 29, 2026
- Fous is not affiliated with Target.

## Methods

### Check store stock

Operation `check_store_stock`, version 1. 1 credit per call.

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 call.

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 call.

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 |  |  |
| `products[].brand` | string or null |  |  |
| `products[].price` | number or null |  | Current price in USD, or null when the price varies. |
| `products[].currency` | string |  |  |
| `products[].photo_url` | string or null |  |  |
| `products[].price_range` | string or null |  | Displayed USD price range when variations have different prices. |
| `products[].product_url` | string or null |  |  |
| `products[].star_rating` | number or null |  |  |
| `products[].product_name` | string or null |  |  |
| `products[].review_count` | integer or null |  |  |
| `products[].regular_price` | number or null |  | Regular USD price when the listing is on sale. |

## Quick start

Call the API with a Fous API key (`FOUS_API_KEY`). To create one, turn on Developer mode in Fous Studio, then open Keys & connections → API keys (https://app.fous.com/keys).

```bash
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
: "${FOUS_API_KEY:?Set FOUS_API_KEY before running this example}"

curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 120 \
  -H "Authorization: Bearer $FOUS_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.
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
import json
import os
import urllib.error
import urllib.request

api_key = os.environ.get("FOUS_API_KEY")
if not api_key:
    raise RuntimeError("Set FOUS_API_KEY before running this example")

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=120) 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.
// First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
const apiKey = process.env.FOUS_API_KEY;
if (!apiKey) throw new Error("Set FOUS_API_KEY before running this example");

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(120_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);
```

Or describe the data in plain language: send `{"api":"@target","prompt":"Describe the data you need, with every detail"}` to the same URL. Fous fills in the input, runs the method that fits and returns only the fields you asked for; `data.route.calls[].request` is the exact call it made. Routing is free; the run costs the same.

## 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

### Is Fous affiliated with Target?

No. Fous is not affiliated with Target. This workflow reads the public target.com website and returns its data.

### How much does it cost?

Each run costs 1 credit. 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; repeating the same request within a day may return the saved result. Fous checks this workflow automatically; it last passed a check 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

- [Walmart API](https://fous.com/workflows/walmart.md): Walmart helps shoppers find products from Walmart and marketplace sellers, view details, prices, ratings and reviews; availability uses Walmart’s default location, not ZIP codes.
- [Best Buy API](https://fous.com/workflows/best-buy.md): Best Buy returns US electronics and appliance listings, prices, deals, specifications, images, reviews, and nearby store pickup and shipping details; prices and availability can change by location and before checkout.
- [Nordstrom API](https://fous.com/workflows/nordstrom.md): Search clothing, shoes, and beauty products at Nordstrom.
- [Amazon API](https://fous.com/workflows/amazon.md): Amazon returns publicly shown product listings, prices, details, ratings, reviews, current best sellers, and Today's Deals; availability and content vary by store, location, and access.
- [Instacart API](https://fous.com/workflows/instacart.md): Search grocery products available from nearby stores.
- [Costco API](https://fous.com/workflows/costco.md): Costco returns US product prices/details and warehouse hours/services/gas prices; delivery affects availability, member prices may be hidden, and posted gas and holiday hours may differ.
- [Trader Joe's API](https://fous.com/workflows/trader-joes.md): Trader Joe's groceries, beverages, flowers, plants, and other products.
- [Nike API](https://fous.com/workflows/nike.md): Nike returns country-specific listings and details, including prices, sizes, availability and reviews, plus publicly shown upcoming or recently stocked SNKRS releases with local launch times.
- [All Commerce workflows](https://fous.com/workflows/category/commerce)
