Etsy Listings Scraper - Search Results & URLs
Pricing
from $3.00 / 1,000 etsy listing returneds
Etsy Listings Scraper - Search Results & URLs
Discover publicly indexed Etsy listings from keywords. Returns validated IDs, canonical URLs, titles, snippets, indexed shop/rating metadata, and source context. Use for listing discovery—not live Etsy-page details, carts, ads, inventory, or reviews. $0.003 per listing plus usage.
Pricing
from $3.00 / 1,000 etsy listing returneds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Etsy Listings Scraper is an Apify Actor for discovering publicly indexed Etsy listings from keyword phrases. It accepts one or more search queries and returns one dataset record per validated listing, with a stable listing ID, canonical Etsy URL, title, optional indexed description snippet, indexed shop and rating metadata when available, and source context for each row. Use the returned records as a listing-discovery dataset for research, workflow routing, and downstream processing through Apify or Apify MCP.
The accepted input is keyword-based search discovery rather than an Etsy URL field. One returned record represents one discovered Etsy listing. Valuable output fields include listingId, listingUrl, title, description, rating, reviewCount, shopName, sourceQuery, sourceSearchUrl, resultPosition, scrapedAt, dataSource, and parseWarnings. The result is a structured, provenance-rich list of public search-index findings.
Best fit and connected workflows
This Actor fits workflows that start from product ideas, themes, or keyword lists and need stable Etsy listing URLs for the next step. It works well for:
- keyword-based product discovery for ecommerce research
- SEO and marketplace visibility checks from public search-index results
- candidate list building before manual review or approved downstream enrichment
- Apify automations that need a compact dataset of listing URLs and metadata
- Apify MCP tool use when an agent needs structured Etsy listing discovery from keywords
The returned listingUrl and listingId make it straightforward to join results with your own approved internal systems, while sourceQuery and sourceSearchUrl preserve the discovery trail for each item.
Practical scenario
A marketplace analyst enters personalized leather journal as the starting keyword. The Actor returns records with listingUrl, title, shopName, rating, reviewCount, and resultPosition, plus sourceQuery and scrapedAt for provenance. The analyst uses rating and reviewCount to spot listings that deserve manual review, then opens the canonical listingUrl in a browser and moves the selected URLs into a separate research sheet.
Input
| Field | Type | Purpose |
|---|---|---|
searchQueries | array of strings | Keyword phrases for Etsy listing discovery. Defaults to handmade necklace and accepts up to 20 queries. |
maxResults | integer | Global cap for validated listing records written to the dataset. Range: 1 to 200. |
maxPagesPerQuery | integer | Limits public search-index pages requested per query. Range: 1 to 10. |
responseFormat | string | concise returns stable discovery fields only; detailed can include an indexed description snippet when available. |
deduplicateAcrossQueries | boolean | Keeps the first occurrence of a listing ID across the current run when multiple queries surface the same listing. |
Focused input example
{"searchQueries": ["handmade necklace","personalized leather journal"],"maxResults": 50,"maxPagesPerQuery": 2,"responseFormat": "concise","deduplicateAcrossQueries": true}
Output
| Field | Type | Purpose |
|---|---|---|
listingId | string | Stable Etsy listing ID parsed from the canonical public URL. |
listingUrl | string | Canonical Etsy listing URL discovered in the public search index. |
title | string | Title shown by the public search index. |
description | string or null | Indexed search-result snippet when detailed output is requested and available. |
rating | number or null | Rating shown by the public search index when available. |
reviewCount | integer or null | Review count shown by the public search index when available. |
shopName | string or null | Shop or brand name shown by the public search index when available. |
sourceQuery | string | Input query that yielded the listing. |
sourceSearchUrl | string | Public search-index URL used to discover the listing. |
resultPosition | integer | One-based position in the parsed public search-index page. |
scrapedAt | string | ISO 8601 timestamp for when the record was parsed. |
dataSource | string | The source route for the record, set to public-search-index. |
parseWarnings | array of strings | Non-fatal field availability warnings for the record. |
Illustrative output record
{"listingId": "1775556485","listingUrl": "https://www.etsy.com/listing/1775556485/custom-charm-necklace","title": "Custom Charm Necklace","description": "Build your own necklace.","rating": 4.8,"reviewCount": 1100,"shopName": "GlamourJewels","sourceQuery": "handmade necklace","sourceSearchUrl": "https://search.yahoo.com/search?p=site%3Aetsy.com%2Flisting+handmade+necklace&b=1","resultPosition": 1,"scrapedAt": "2026-07-15T12:00:00.000Z","dataSource": "public-search-index","parseWarnings": []}
How it works
The Actor searches public search-index results for the supplied keyword phrases, parses Etsy listing links from those results, validates the discovered listing records, and writes them to the default dataset. Each persisted row is a public-search-index discovery record with source context. The default key-value store also contains OUTPUT for the compact execution contract and RUN_SUMMARY for source coverage, warnings, and charge information.
Pricing
This Actor uses Pay per event plus Apify platform usage.
- Actor start: charged once per GB of configured actor memory when the Actor starts
- Etsy listing returned: charged when one validated public-search-index Etsy listing record is written to the default dataset
The primary event is priced per validated listing returned. For example, if a run writes fifty validated listings, the listing event total is fifty times the per-listing charge, plus actor start charges and Apify platform usage. See the live Pricing tab in the Apify Console for the current pricing details.
Use with AI agents (MCP)
This Actor is available as an Apify Actor usable through Apify MCP. The tool is designed to turn keyword phrases into structured Etsy listing discovery records with provenance and stable URLs.
- Actor identity:
khadinakbar/etsy-listings-scraper - Tool purpose: discover publicly indexed Etsy listings from one or more keyword queries and return validated dataset rows for agent consumption
- Scope: keyword-driven public search-index discovery only, with fields such as
listingUrl,title,shopName,rating,reviewCount,sourceQuery, andsourceSearchUrl - Provenance: each output row carries
dataSource: "public-search-index"and the originating query - Pagination and cost guidance:
maxPagesPerQuerylimits the number of public search-index pages requested per query, andmaxResultscaps the validated records written to the dataset and the primary event cost
Find publicly indexed Etsy listings for these keywords: handmade necklace, personalized leather journal. Return the canonical listing URL, title, shop name, rating, review count, and the source query for each result. Keep the output deduplicated across queries and preserve provenance for each row.
For agent workflows, read the default dataset after the execution completes. Use listingUrl as the stable handoff field, and use sourceSearchUrl when you need to trace the public search-index request that produced a record.
Apify API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const run = await client.actor('khadinakbar/etsy-listings-scraper').call({searchQueries: ['handmade necklace'],maxResults: 10,maxPagesPerQuery: 2,responseFormat: 'concise',deduplicateAcrossQueries: true,});const dataset = await client.dataset(run.defaultDatasetId).listItems();console.log('Run output dataset items:');console.log(dataset.items);
Best results and outcome guidance
Start with a small set of precise keyword phrases that reflect the product category you want to discover. If you want stable discovery fields, use responseFormat: "concise". If you want an indexed snippet when available, use responseFormat: "detailed". Keep maxResults aligned with the number of rows you want persisted, and use deduplicateAcrossQueries when several queries may surface the same listing.
Continue the workflow
- Then use Etsy Product Search Scraper to extend Etsy Listings Scraper - Search Results & URLs research with a complementary discovery contract.
- Then use Etsy Reviews Scraper: Product Feedback to continue from Etsy Listings Scraper - Search Results & URLs discovery into engagement data for the selected records.
Design note
I found that every dataset record always includes sourceQuery, sourceSearchUrl, resultPosition, scrapedAt, dataSource, and parseWarnings, which makes the dataset easy to trace back to the public search-index route that produced it.
FAQ
Can this Actor be used from an Apify MCP workflow?
Yes. It is an Apify Actor usable through Apify MCP for keyword-based Etsy listing discovery.
What should I send as input when I already have product ideas, not Etsy URLs?
Send keyword phrases in searchQueries, such as handmade necklace or printable wedding invitation.
Which field is suited to joining results to my own system?
listingId and listingUrl are the most useful stable fields for downstream joins.
When should I use concise versus detailed?
Use concise for stable discovery records, and detailed when you want the optional indexed description snippet that the public search index exposes.
How should I route results when I need source traceability?
Use sourceQuery and sourceSearchUrl together with dataSource to keep the discovery path attached to each listing.
Responsible use
Use this Actor for lawful, authorized listing discovery and for workflows that respect the terms governing your use of Etsy and any downstream systems. Review any public-search-derived record before making decisions that depend on current marketplace state.