> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scrapeunblocker.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Scrape one Etsy listing's full detail

> Fetches one Etsy listing (by `listing_id` or `url`) and returns it as JSON: `listingId`, `title`, `price` (the lowest price when variations differ, `priceMax` the highest), `originalPrice` / `onSale` / `discountPercent` / `saleEnds` during a sale, `currency` and `shopperRegion`, `availability` and `quantityAvailable`, `rating` and `reviewCount`, `reviewSummary` (item quality, shipping and service scores, recommend percentage, review tags and categories), the first `reviews`, `shop` (name, id, owner, location, rating, review count, sales, years on Etsy, Star Seller), `variations` (each menu with its options and their prices), `description`, `materials`, `highlights`, `category`, `shipping` (cost, origin, ships from, estimated delivery, processing time, returns), `images` and `video`.

Prices, shipping cost and VAT follow the shopper location Etsy assigns to the request, which can differ from `proxy_country`: `currency` and `shopperRegion` say which one a response used (e.g. EUR / BE), so read them before comparing prices. Shop review and sales counts are Etsy's rounded figures ("4.7k sales" is 4700). Companion to `/marketplace/etsy-search`.



## OpenAPI

````yaml /api-reference/openapi.json post /marketplace/etsy-product
openapi: 3.1.0
info:
  title: ScrapeUnblocker API
  description: >-
    Public API for the ScrapeUnblocker proxy/anti-bot service. Authenticate
    every request with the `x-scrapeunblocker-key` header. Documented here:
    page-source extraction, Google SERP scraping, image fetch, and the dedicated
    plugin endpoints (search engines, marketplaces, reviews, travel, social and
    more). All other paths exist for internal operations and are intentionally
    hidden from this spec.
  version: 3.0.0
servers:
  - url: https://api.scrapeunblocker.com
    description: Production
security: []
paths:
  /marketplace/etsy-product:
    post:
      tags:
        - Plugins
      summary: Scrape one Etsy listing's full detail
      description: >-
        Fetches one Etsy listing (by `listing_id` or `url`) and returns it as
        JSON: `listingId`, `title`, `price` (the lowest price when variations
        differ, `priceMax` the highest), `originalPrice` / `onSale` /
        `discountPercent` / `saleEnds` during a sale, `currency` and
        `shopperRegion`, `availability` and `quantityAvailable`, `rating` and
        `reviewCount`, `reviewSummary` (item quality, shipping and service
        scores, recommend percentage, review tags and categories), the first
        `reviews`, `shop` (name, id, owner, location, rating, review count,
        sales, years on Etsy, Star Seller), `variations` (each menu with its
        options and their prices), `description`, `materials`, `highlights`,
        `category`, `shipping` (cost, origin, ships from, estimated delivery,
        processing time, returns), `images` and `video`.


        Prices, shipping cost and VAT follow the shopper location Etsy assigns
        to the request, which can differ from `proxy_country`: `currency` and
        `shopperRegion` say which one a response used (e.g. EUR / BE), so read
        them before comparing prices. Shop review and sales counts are Etsy's
        rounded figures ("4.7k sales" is 4700). Companion to
        `/marketplace/etsy-search`.
      operationId: etsy_product_marketplace_etsy_product_post
      parameters:
        - name: listing_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Etsy listing number, e.g. '1702915637' (the number in
              etsy.com/listing/1702915637/...).
            title: Listing Id
          description: >-
            Etsy listing number, e.g. '1702915637' (the number in
            etsy.com/listing/1702915637/...).
        - name: url
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Instead of `listing_id`: an etsy.com listing link, e.g.
              https://www.etsy.com/listing/1702915637/solstice-mug.
            title: Url
          description: >-
            Instead of `listing_id`: an etsy.com listing link, e.g.
            https://www.etsy.com/listing/1702915637/solstice-mug.
        - name: proxy_country
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Proxy country the request is sent from (ISO-2). Defaults to US.
              Etsy prices in the currency of the shopper location it assigns,
              which can differ from this country; `currency` and `shopperRegion`
              say which one a response used.
            title: Proxy Country
          description: >-
            Proxy country the request is sent from (ISO-2). Defaults to US. Etsy
            prices in the currency of the shopper location it assigns, which can
            differ from this country; `currency` and `shopperRegion` say which
            one a response used.
      responses:
        '200':
          description: JSON with the full listing record under `product`.
          content:
            application/json:
              schema: {}
        '400':
          description: Invalid or missing listing_id/url.
        '404':
          description: No such Etsy listing, or it is no longer available.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '502':
          description: >-
            Blocked by Etsy on every attempt, no listing data returned, or the
            call did not finish in time.
      security:
        - ScrapeUnblockerKey: []
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ScrapeUnblockerKey:
      type: apiKey
      in: header
      name: x-scrapeunblocker-key
      description: Your ScrapeUnblocker API key. Apply on every request.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.