Etsy Search Suggestions Scraper: a-z, questions, CSV/JSON
Pricing
from $3.00 / 1,000 result rows
Etsy Search Suggestions Scraper: a-z, questions, CSV/JSON
Etsy search-box suggestions as CSV/JSON rows at $0.25 per 1,000 dataset rows: seed, query sent, suggestion, rank, expansion (a-z, question words, prepositions; comparisons and numbers optional), region, language, stable id.
Pricing
from $3.00 / 1,000 result rows
Rating
0.0
(0)
Developer
Tallyrake Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
Etsy search-box suggestions as CSV/JSON rows. Give it seed keywords; it requests the suggestions Etsy shows while a buyer or seller types in the search box, for the seed, seed + a to z, question words, and prepositions (comparisons and numbers only if you enable those expansions), for the region you set. One flat row per unique suggestion per seed, each with a stable id. Pricing placeholder: $0.25 per 1,000 rows.
Same engine, other search boxes: Google, YouTube, Amazon, Bing, DuckDuckGo, TikTok, Pinterest. Same input shape, same flat rows, one run per engine.
What you get
| Field | Example |
|---|---|
id | stable per seed, region, language, query and suggestion |
seed | ceramic mug (your seed, as typed) |
query | ceramic mug (the exact string sent, lowercased) |
suggestion | ceramic mug handmade |
rank | 1 (position among keyword suggestions for that query) |
expansion | direct, alphabet, question, preposition, comparison, number, depth |
modifier | empty for the seed itself; otherwise b, how, for, vs |
depth | 1 or 2 |
region | US |
language | en-US (the x-detected-locale value sent) |
engine | etsy |
fetchedAt | ISO timestamp |
Rows are deduplicated per seed (case-insensitive), so a suggestion that appears under several modifiers is counted once, under the first query that produced it.
A direct query for ceramic mug on 2026-10-15, US, with the homepage's version and extras, returned 18 keyword suggestions. The first three were ceramic mug handmade, ceramic mugs, ceramic mugs personalized. The same query without version or extras, earlier the same day, returned 11, and the literal ceramic mug was rank 1. The list moves.
What this is not
Not listings. Not shops. Not sales data. No prices, no views, no favorites, no search volume. The last row of the dropdown, "find shop names containing …", is a shop search link and is dropped.
Example input
{"keywords": ["ceramic mug"],"expansions": ["alphabet", "questions", "prepositions"],"depth": 1,"region": "US","maxQueriesPerKeyword": 300}
Paste seeds one per line. The default expansions send 52 queries per seed (1 seed + 26 letters + 14 question words + 11 prepositions). Comparisons and numbers are not in that 52. The actor also reads the Etsy homepage once per run for data-as-version and data-as-extras. That read is not a suggestion query and writes no row.
Recipes
Tags for one product. Seeds: the product phrase. Expansions: alphabet. Depth 1. The suggestions are phrases Etsy completes, in its order.
Questions buyers type. Seeds: the product. Expansions: questions and prepositions. Depth 1.
A wider net. Depth 2 sends each first-level suggestion back as its own query, still inside maxQueriesPerKeyword.
Reliability and cost
Pricing placeholder: $0.25 per 1,000 dataset rows, plus Apify platform usage. The price is not set on the platform by this folder. Empty queries produce no rows. Every request is paced with a jittered delay (pacingMs, default 200 ms). On HTTP 429, 403, or 503 the run rotates its session and retries with backoff.
There is no measured full-expansion run, and there is no fixed number of rows per query. The checked versioned query returned 18 keyword rows. At that size, 52 queries is 936 rows before dedupe ($0.23 at the placeholder price) and the default cap of 300 queries is 5,400 rows before dedupe ($1.35). A shorter list costs less. Deduping lowers the bill. You are billed rows, not queries. The one homepage read per run writes no row.
Proxy default is Apify Proxy with no proxy groups, which is the datacenter pool. Turn groups on only if you want residential.
Cost limit
If a run reaches the "Maximum total charge per run" you set, it stops in process rather than being aborted by the platform: the run ends with status SUCCEEDED, and the run status message says how many rows were written and how many were found but not written and not billed. Re-running the same input writes and bills the same prefix again, so raise the cap before re-running if you want the rest.
Bigger jobs
Running thousands of Etsy shop keywords, or need this as a one-off file instead of a run? We build custom exports — any keywords, countries and date ranges, delivered as flat CSV or JSON within 24 hours: https://tallyrake.com/datasets/
Limits
This is the suggestion list for the region you set, at the time of the run. It carries no search volume. The checked versioned response had 19 JSON rows: 18 keyword suggestions plus one shop-name row, which this actor drops. The page script can paint fewer rows than the JSON contains (data-autosuggest-num-rows, default 5, and that attribute was not on the homepage). This actor keeps every keyword row from the JSON. It does not re-apply that display cap. Export CSV for Excel and Google Sheets. Export JSON for pipelines.
region US was checked (English suggestions for ceramic mug). DE was checked (tasse came back as tasse personalisiert, tasse keramik, and the rest in German). UK, FR, ES, IT, NL, PL, PT, CA, AU, and JP are sent with the same headers and were not fetched. CA uses en-US. AU uses en-AU. Those two language tags are untested.