# Etsy Search Scraper

> Etsy Search Scraper is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.12/call, status unknown (last checked 2026-10-02).

Scrapes Etsy search results for one or more search terms, returning structured listing data including title, price, image, rank, and URL.

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/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-f085e4d8
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_4Wv46j4MCUFPksuanQwfP

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-f085e4d8 -d '<json body>'
```

Example prompt: Search Etsy for 'personalized wedding gifts' and 'custom name necklace', return up to 30 listings each priced between $15 and $80, and include the full description and review counts for each listing.

## When to prefer this

Choose this endpoint when you need structured Etsy marketplace data — product titles, prices, images, and rankings — for one or more search terms, especially for competitive research, price comparison, gift sourcing, or trend analysis. It supports multiple search terms in a single call with per-term result caps, price range filtering, and optional deep-fetch of descriptions and reviews. Prefer it over generic web scrapers when you specifically need Etsy search result data in a clean, consistent schema without building your own scraper.

## Known failure modes

- Empty results if search terms return no Etsy listings
- Etsy anti-scraping measures may block requests, returning an empty or failed run (not charged)
- Price filtering is applied after fetching, so maxResultsPerTerm may be reduced after filtering
- Rate limiting or network errors may result in partial results
- Invalid or misspelled search terms return zero listings

## How this service works

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

## Output

Returns a JSON array of structured Etsy listing objects, each containing the listing ID, title, price, image URL, listing URL, search term used, page number, and organic rank. When includeDescription is true, also returns the listing description, stock quantity, category, item rating, review count, and availability. The response includes a total count of results and a product identifier.

## 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-f085e4d8/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
