# Etsy Search Scraper (x402)

> Etsy Search Scraper (x402) is a paid API for AI agents from x402.186-241-26-229.sslip.io, paid per call via x402, $0.12/call, status unknown (last checked 2026-10-02).

Searches Etsy for product listings by keyword and returns structured data including title, price, image, URL, and rank, with optional listing detail enrichment.

## Facts

- Endpoint: POST https://x402.186-241-26-229.sslip.io/v1/etsy-search?utm_source=zero.xyz
- Price: $0.12/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/etsy-search-scraper-x402-7d8144b2
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_9monx8POovw6P559SmHqi

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 etsy-search-scraper-x402-7d8144b2 -d '<json body>'
```

Example prompt: Search Etsy for 'personalized leather wallet' and 'monogram keychain', return up to 30 listings each, keep only items priced between $15 and $60, and include the full listing descriptions so I can see ratings and review counts.

## When to prefer this

Use this endpoint when you need structured Etsy marketplace data — product titles, prices, images, and rankings — for one or more search terms, especially when building shopping assistants, doing e-commerce competitive research, or powering gift recommendation agents. It is pay-per-call with no charge for failed or empty runs, making it cost-efficient for exploratory queries. Prefer this over generic web scrapers when Etsy-specific structured output (listing ID, rank, price filters) is needed.

## Known failure modes

- Empty results if search terms return no Etsy listings (not charged)
- Etsy rate limiting or blocking may reduce result counts
- Price filters applied post-fetch may reduce output count significantly
- maxPagesPerTerm cap may truncate results for broad queries
- Listing detail fetch failures if includeDescription is true and individual pages are unavailable

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

A JSON object containing a count of matched listings and an array of items, each with listing ID, title, price, image URL, listing URL, page number, rank, and search term. If includeDescription is true, each item also includes the full description, stock quantity, category, item rating, review count, and availability status.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "maxItems": {
   "type": "integer",
   "default": 0,
   "minimum": 0,
   "description": "Stop after this many listings across all terms. Zero means no total cap."
  },
  "maxPrice": {
   "type": "number",
   "minimum": 0,
   "description": "Keep listings priced at or below this amount in the displayed currency. Applied after fetching search pages."
  },
  "minPrice": {
   "type": "number",
   "minimum": 0,
   "description": "Keep listings priced at or above this amount in the displayed currency. Applied after fetching search pages."
  },
  "searchTerms": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "description": "One or more buyer search phrases. Each phrase is paged and ranked separately."
  },
  "maxPagesPerTerm": {
   "type": "integer",
   "default": 50,
   "maximum": 100,
   "minimum": 1,
   "description": "Maximum search pages to visit per phrase. A page currently shows about eight organic listings."
  },
  "maxResultsPerTerm": {
   "type": "integer",
   "default": 50,
   "maximum": 500,
   "minimum": 1,
   "description": "Maximum organic listings to save for each search phrase."
  },
  "includeDescription": {
   "type": "boolean",
   "default": false,
   "description": "Open each listing page to add its description, stock quantity, category, item rating, review count, and availability. Adds one request per result."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "url": null,
    "page": null,
    "rank": null,
    "image": null,
    "price": null,
    "title": null,
    "listingId": null,
    "searchTerm": null
   }
  ],
  "product": "etsy-search"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/etsy-search-scraper-x402-7d8144b2/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.186-241-26-229.sslip.io](https://www.zero.xyz/host/x402.186-241-26-229.sslip.io/llms.txt)
