# CrowdPull Target Products Scraper

> CrowdPull Target Products Scraper is a paid API for AI agents from crowdpull.click, paid per call via x402, $0.03/call, status unknown (last checked 2026-09-14).

Scrapes product listings and data from Target's website by URL, search query, TCINs, or store/zip filters and returns structured product datasets.

## Facts

- Endpoint: POST https://crowdpull.click/api/actors/target-products-scraper/call
- Price: $0.03/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/crowdpull-target-products-scraper-dcd1bb51
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_DXiDh1PH0JSvGPwSauwpc

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability crowdpull-target-products-scraper-dcd1bb51 -d '<json body>'
```

Example prompt: Pull up to 50 Target product listings for 'air fryer' — include product details and reviews — and give me the structured data as a dataset I can analyze for pricing.

## When to prefer this

Use this endpoint when you need structured product data specifically from Target (target.com), especially when you have TCINs, store IDs, or zip codes to filter by. Prefer this over generic scrapers when Target-specific fields like TCIN and storeId matter for your use case, or when you need up to 250 product records per call at a fixed low cost.

## Known failure modes

- Invalid or non-Target URL provided — job fails or returns empty results
- TCIN or storeId not found — empty dataset returned
- maxItems exceeds 250 — request rejected by schema validation
- Job timeout if waitForFinishSeconds is too low for large result sets — status remains pending
- Payment failure via x402 — 402 response, no job created
- Rate limiting or Target anti-bot measures — job may return partial or no results

## How this service works

CrowdPull turns public web pages into useful datasets for marketplaces, housing, reviews, jobs, social posts, drug prices, video, and public records.

## Output

Returns a job token and job object with an ID, status, and optional resultSetId. The job runs asynchronously; the resultSetId can be used to fetch the structured product dataset (titles, prices, TCINs, availability, reviews, etc.) once complete.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "input": {
   "type": "object",
   "required": [],
   "properties": {
    "url": {
     "type": "string",
     "description": "Single public URL accepted by the selected source."
    },
    "urls": {
     "type": "array",
     "items": {
      "type": "string"
     },
     "description": "Public URLs accepted by the selected source."
    },
    "query": {
     "type": "string",
     "description": "Search query or keyword."
    },
    "tcins": {
     "type": "array",
     "items": {
      "type": "string"
     }
    },
    "storeId": {
     "type": "string"
    },
    "zipCode": {
     "type": "string"
    },
    "location": {
     "type": "string",
     "description": "City, ZIP, state, neighborhood, or source-supported location."
    },
    "maxItems": {
     "type": "integer",
     "default": 25,
     "maximum": 250,
     "minimum": 1
    },
    "startUrls": {
     "type": "array",
     "items": {
      "type": "string"
     },
     "description": "Public source URLs to collect from."
    },
    "maxResults": {
     "type": "integer",
     "default": 25,
     "maximum": 250,
     "minimum": 1
    },
    "productIds": {
     "type": "array",
     "items": {
      "type": "string"
     }
    },
    "maxListings": {
     "type": "integer",
     "default": 25,
     "maximum": 250,
     "minimum": 1
    },
    "searchQuery": {
     "type": "string",
     "description": "Search query or keyword."
    },
    "includeDetails": {
     "type": "boolean",
     "default": false
    },
    "includeReviews": {
     "type": "boolean",
     "default": false
    }
   },
   "description": "Target Products Scraper input. Pass the same public URLs, search terms, filters, and limits you would use on the source page. Extra source-specific fields are forwarded to the runner.",
   "additionalProperties": true
  },
  "options": {
   "type": "object",
   "properties": {
    "build": {
     "type": "string",
     "maxLength": 100,
     "minLength": 1
    },
    "memory": {
     "type": "integer",
     "maximum": 8192,
     "minimum": 128
    },
    "waitForFinishSeconds": {
     "type": "integer",
     "default": 10,
     "maximum": 60,
     "minimum": 0
    }
   },
   "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
   "additionalProperties": false
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "type": "object",
  "required": [
   "token",
   "job"
  ],
  "properties": {
   "job": {
    "type": "object",
    "required": [
     "id",
     "status"
    ],
    "properties": {
     "id": {
      "type": "string"
     },
     "status": {
      "type": "string"
     },
     "resultSetId": {
      "type": "string"
     }
    },
    "additionalProperties": true
   },
   "token": {
    "type": "string"
   }
  },
  "additionalProperties": false
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/crowdpull-target-products-scraper-dcd1bb51/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from crowdpull.click](https://www.zero.xyz/host/crowdpull.click/llms.txt)
