Etsy Scraper

  • epctex/etsy-scraper
  • Modified
  • Users 465
  • Runs 5.3k
  • Created by Author's avatarepctex

Scrape valuable data from over 4 million Etsy sellers. Extract product details, descriptions, listed date, images, seller info, and more. Customize your searches and filters to gather the desired information effortlessly.

Free trial for 3 days

Then $30.00/month

No credit card required now

Etsy Scraper

Free trial for 3 days

Then $30.00/month

To run the code examples, you need to have an Apify account. Replace <YOUR_API_TOKEN> in the code with your API token. For a more detailed explanation, please read about running Actors via the API in Apify Docs.

import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with API token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        "https://www.etsy.com/listing/743657804/sheepskin-slippers-wool-slippers-fur?ga_order=most_relevant&ga_search_type=all&ga_view_type=gallery&ga_search_query=&ref=sc_gallery-5-1&plkey=89e47f49c28602795b44fc71559e2839056339d8%3A743657804&frs=1",
        "https://www.etsy.com/c/clothing-and-shoes?ref=catnav-10923",
        "https://www.etsy.com/search?q=apple%20watch",
        "https://www.etsy.com/shop/PetiteFraise?ref=simple-shop-header-name&listing_id=490831663&page=2#items"
    ],
    "maxItems": 10,
    "endPage": 1,
    "extendOutputFunction": ($) => {
        const result = {};
        // Uncomment to add a title to the output
        // result.title = $('title').text().trim();
    
        return result;
    },
    "customMapFunction": (object) => { return {...object} },
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

(async () => {
    // Run the Actor and wait for it to finish
    const run = await client.actor("epctex/etsy-scraper").call(input);

    // Fetch and print Actor results from the run's dataset (if any)
    console.log('Results from dataset');
    const { items } = await client.dataset(run.defaultDatasetId).listItems();
    items.forEach((item) => {
        console.dir(item);
    });
})();