# CrowdPull Mercari Listings Scraper

> CrowdPull Mercari Listings 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-15).

Scrapes Mercari marketplace listings by search query, URL, or filters and returns structured product data as a background job

## Facts

- Endpoint: POST https://crowdpull.click/api/actors/mercari-listings-scraper/call
- Price: $0.03/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/crowdpull-mercari-listings-scraper-895dc136
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Y2g9VzaTF_as2yxMYlHKF

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-mercari-listings-scraper-895dc136 -d '<json body>'
```

Example prompt: Search Mercari for 'Nintendo Switch' listings that are on_sale, priced between $50 and $250, and give me up to 50 results — kick off the scrape job now.

## When to prefer this

Use this endpoint when you need structured Mercari listing data programmatically — particularly for price research, reseller arbitrage, inventory tracking, or competitive analysis on the Mercari secondhand marketplace. Prefer this over general web scraping tools when you specifically need Mercari data with pre-built field parsing for listing status, price, and product details.

## Known failure modes

- Invalid or inaccessible Mercari URL returns job failure status
- Search query returns zero results if too specific or item category absent
- Job timeout if maxPages or maxItems set too high for the waitForFinishSeconds window
- Payment failure (402) if USDC balance insufficient
- Schema validation error if unsupported input fields passed without additionalProperties handling

## 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 JSON object containing a job token and job details (id, status, and optionally a resultSetId). The agent must poll or retrieve results separately using the job ID once the background scrape completes.

## 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."
    },
    "status": {
     "type": "string",
     "description": "Listing status filter when supported, for example on_sale."
    },
    "queries": {
     "type": "array",
     "items": {
      "type": "string"
     }
    },
    "location": {
     "type": "string",
     "description": "City, ZIP, state, neighborhood, or source-supported location."
    },
    "maxItems": {
     "type": "integer",
     "default": 25,
     "maximum": 250,
     "minimum": 1
    },
    "maxPages": {
     "type": "integer",
     "default": 2,
     "maximum": 10,
     "minimum": 1
    },
    "priceMax": {
     "type": "integer",
     "minimum": 0
    },
    "priceMin": {
     "type": "integer",
     "minimum": 0
    },
    "startUrls": {
     "type": "array",
     "items": {
      "type": "string"
     },
     "description": "Public source URLs to collect from."
    },
    "maxResults": {
     "type": "integer",
     "default": 25,
     "maximum": 250,
     "minimum": 1
    },
    "maxListings": {
     "type": "integer",
     "default": 25,
     "maximum": 250,
     "minimum": 1
    },
    "searchQuery": {
     "type": "string",
     "description": "Search query or keyword."
    },
    "includeDetails": {
     "type": "boolean",
     "default": false
    }
   },
   "description": "Mercari Listings 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.",
   "additionalPropert
… (truncated)
```

## 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-mercari-listings-scraper-895dc136/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)
