Vector Park Scraper – Japan Used Clothing & Brand Resale
Pricing
from $2.00 / 1,000 results
Vector Park Scraper – Japan Used Clothing & Brand Resale
Scrape Vector Park (vector-park.jp, ベクトルパーク) — one of Japan's largest used-clothing & brand resale stores. Search by keyword, brand, category, size, condition rank (S–D), price or new arrivals; get normalized size, condition, measurements and images. JP Data Works series.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
JP Data Works
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Vector Park Scraper – Japan Used Clothing & Brand Resale (ベクトルパーク)
Scrape Vector Park (ベクトルパーク) — the online store of Vector, one of Japan's largest used-clothing chains (200+ 古着・ブランド買取販売 stores feeding one catalogue): men's and women's fashion, designer and streetwear brands, bags, shoes, watches, accessories, kids — by keyword, brand, category, size class, condition rank, price range and sort order (including new arrivals), and get clean JSON / CSV with normalized size, condition rank (6–1), gender, labels and images. Optionally open each item page for measurements in cm, material, colour, model number, season, condition note and the full gallery. Part of the JP Data Works series of Japanese marketplace scrapers (Trefac, Mercari, KOMEHYO, Yahoo! Fleamarket …) that share one output shape so results can be merged.
Keywords: Vector Park scraper · ベクトルパーク スクレイピング · Japan used clothing data · Japanese secondhand fashion prices · KAPITAL, visvim, Comme des Garçons, Yohji Yamamoto, Issey Miyake, Levi's, Porter used · resale sourcing (eBay, Grailed, Depop, Vinted) · price monitoring · new-arrival alerts · 古着 相場.
What you get
One row per listing:
itemId(商品番号),url,title(full listing title: brand, item, size, colour, model number),brand,brandCode,brandValuepriceJpy(tax included),status(on_sale/sold),priceDown(プライスダウン),isNew(新着),labelssizeRawandsizeNorm/size(W28,M,JP1,26.5cm,FREE),sizeClass(the site's XS / S / M / L / XL icon)conditionRank6 (S — ほぼ新品同様・未使用・新品) … 1 (E),conditionLabel(the site's letter: S, SA, A, AB, B, C, D),conditionDescription,unused(新品・未使用 icon)gender(mens / ladies),categoryPath,categoryCodes,imageUrl/imageUrls,fetchedAt,keyword,search
With Enrich with item pages each item additionally has measurements in cm (shoulder 肩幅, chest 身幅, sleeve 袖丈, length 着丈, waist ウエスト, rise 股上, inseam 股下, hem 裾幅 …), material, color, modelNumber (品番), season, conditionNote (状態), accessories (付属品), remarks (備考), description, the full categoryPath (e.g. メンズファッション > デニム、ジーンズ > その他) and the full-size gallery.
Example item (enriched)
{"source": "vector-park","itemId": "004-202607220285","url": "https://vector-park.jp/item/004-202607220285/","title": "kapital キャピタル 14ozデニム 5P フリスコ(センタープリーツ加工) W28 BLUE ブルー K2509LP041 /● メンズ","brand": "キャピタル kapital","brandCode": "05798","brandValue": "05798_キャピタル kapital","priceJpy": 20100,"status": "on_sale","sizeRaw": "W28","sizeNorm": { "kind": "waist", "value": 28 },"size": "W28","sizeClass": "S","measurements": { "waist": 35.5, "もも幅": 25, "hem": 25, "rise": 29, "inseam": 79 },"conditionRank": 5,"conditionLabel": "A","conditionDescription": "使用感が少なく状態の良い商品","conditionNote": "使用感が少なく、かなり状態の良い商品です。 ※あくまでも中古品ですので…","unused": false,"gender": "mens","categoryPath": "メンズファッション > デニム、ジーンズ > その他","categoryCodes": ["00200000000", "00211000000", "00211070000"],"color": "BLUE ブルー","material": "本体:コットン100%","modelNumber": "K2509LP041","season": "オールシーズン","accessories": "なし","remarks": "-","labels": ["プライスダウン"],"priceDown": true,"isNew": false,"description": "素材:本体:コットン100%\n品番:K2509LP041\n着用シーズン:オールシーズン\nシングルステッチ\nジッパーフライ\n使用感が少なく、かなり状態の良い商品です。…","imageUrl": "https://image.vector-park.jp/images/item/original2/004/2026/07/22/004-202607220285_1.jpg","imageUrls": ["…_1.jpg", "…_2.jpg", "…_3.jpg", "…_4.jpg", "…_5.jpg"],"fetchedAt": "2026-11-02T02:42:30.000Z","detailFetchedAt": "2026-11-02T02:42:41.000Z","keyword": "brand:キャピタル kapital メンズファッション>デニム、ジーンズ cond≥4 newest","search": { "label": "brand:キャピタル kapital メンズファッション>デニム、ジーンズ cond≥4 newest", "brand": "KAPITAL", "brandValue": "05798_キャピタル kapital", "categoryPath": "メンズファッション > デニム、ジーンズ", "conditionMin": 4, "sort": "newest", "url": "https://vector-park.jp/list/?cgt1=00200000000_…&cgt2[]=00211000000_…&bd[]=05798_…&rank[]=2&rank[]=7&rank[]=3&rank[]=8&rank[]=4&od=4&lm=180" }}
Without enrichment the detail fields are null / {} and imageUrls holds the listing image, so the dataset always has the same columns.
Output modes — listings or a market summary
outputMode chooses what the dataset contains:
items(default) — one row per listing, as above.summary— one market-summary row per search instead of the listings. The Actor still walks the search pages (up tomaxItemsPerSearchlistings, withenrichDetailif set), but stores only the aggregate — so a run that answers "what does X go for on Vector Park?" costs onesummaryevent per search rather than hundreds of result events.both— the listings plus the summary row.
A summary row (recordType: "summary") has the same shape in every JP Data Works Actor, so you can put several sites side by side:
{"recordType": "summary","source": "vector-park","search": { "label": "…", "url": "…", "…": "the resolved search parameters" },"fetchedAt": "2026-11-02T03:00:00.000Z","sampleSize": 180, "totalOnSite": 1243, "scanned": 190, "filteredOut": 10, "withDetail": 0,"status": { "on_sale": 180, "sold": 0, "unknown": 0 },"price": { "count": 180, "min": 3300, "p25": 9800, "median": 16500, "mean": 19840, "p75": 25300, "max": 128000, "stddev": 15210 },"priceOnSale": { "…": "same statistics for on-sale listings" }, "priceSold": { "…": "and for sold ones (sites that list them)" },"priceHistogram": { "bucketJpy": 10000, "buckets": [ { "fromJpy": 0, "toJpy": 10000, "count": 46 }, "…" ] },"conditionRank": { "6": 12, "5": 40, "4": 71, "3": 30, "unknown": 27 }, "conditionLabels": { "…": "the site's own labels" },"sizes": { "M": 48, "L": 41, "W32": 12, "…": 0 }, "sizeKinds": { "alpha": 120, "waist": 30, "numeric": 20, "unknown": 10 },"brands": { "KAPITAL": 180 }, "categories": { "メンズ > ジャケット/アウター": 95, "…": 0 }, "gender": { "mens": 170, "unknown": 10 },"listed": { "last24h": 9, "last7d": 41, "last30d": 120 }, "sold": null,"cheapest": [ { "itemId": "…", "title": "…", "url": "…", "priceJpy": 3300, "conditionRank": 4, "size": "M", "status": "on_sale" }, "…" ],"cheapestGoodCondition": [ "… cheapest with condition rank ≥ 4 …" ],"newest": [ "… most recently listed (sites that expose listing times) …" ]}
Vector Park lists in-stock items only and has no listing time, so priceSold is empty and listed / sold are null; use sort: newest plus scheduled runs for arrival tracking. sizes uses the normalized size (W28, M …) and falls back to the site's XS–XL size class.
Input
Two ways to describe what to search, which can be combined in one run:
keywords— simple: one search per keyword (KAPITAL,リーバイス 501,Porter tote…).searches— structured: objects with any ofkeyword,brand/brandValue,categoryPath,sizes,priceMinJpy,priceMaxJpy,conditionMin,gender,sort,excludeWords.
Top-level sort, sizes, priceMinJpy, priceMaxJpy, conditionMin, excludeWords are defaults for every keyword and search; a value inside a search wins.
| Field | Type | Default | Notes |
|---|---|---|---|
keywords | string[] | — | One search per keyword. Optional when searches is given. |
outputMode | items | summary | both | items | Listings, one market-summary row per search, or both (see "Output modes"). |
searches | object[] | — | Structured searches (table below). Each needs a keyword, brand or category. |
sort | default | newest | price_asc | price_desc | default | newest = 新着順. |
sizes | string[] | [] | Size classes XS / S / M / L / XL (server-side). |
priceMinJpy / priceMaxJpy | integer | none | Server-side price bounds. |
conditionMin | 2–6 | none | 6 S (ほぼ新品同様・未使用・新品), 5 A, 4 B, 3 C, 2 D — server-side via the site's rank filter (SA counts as 5, AB as 4). |
excludeWords | string[] | [] | Client-side title filter. |
maxItemsPerSearch | integer | 100 | Per keyword / search. Up to 180 cards per page. |
maxTotalItems | integer | none | Hard cap per run. |
dedupeAcrossSearches | boolean | true | |
enrichDetail | boolean | false | One extra request + one detail-page event per item. |
maxDetailPages | integer | 100 | Cap on item-page requests per run. |
requestDelayMs | integer | 10000 | Minimum pause between requests. The site's robots.txt asks for Crawl-delay: 10, so lower values are raised to 10 s. |
proxyConfiguration | object | none | Optional. Not needed under normal use. |
outputFields | string[] | all | Keep only these fields (itemId, url always kept). |
Fields of one searches entry (all optional):
| Field | Example | How it is applied |
|---|---|---|
keyword | "デニム" | Site keyword search (kw). |
brand | "KAPITAL", "キャピタル", "COMME des GARCONS" | Searched once as a keyword; the brand facet of that result page gives the site's brand value, which is then sent as the brand filter (one extra request per distinct brand). Names not found in the facet are searched as a keyword and filtered by brand name client-side. |
brandValue | "05798_キャピタル kapital" | The site's brand value directly (as returned in brandValue); skips the lookup. |
categoryPath | "mens", "mens > denim", "レディースファッション > コート", "mens > ジャケット、上着", "watch", "00211000000" | Top category (mens, ladies, kids, mens bags, ladies bags, wallet, mens shoes, ladies shoes, accessories, watch, or the Japanese name) optionally followed by > and the second-level name as shown on the site (Japanese, or English for the common ones: denim, jeans, t-shirt, shirt, polo, jacket, knit, coat, pants, sneakers, boots). An 11-digit site code also works. Unknown paths are used as an extra keyword; a second-level name that exists under several parents (e.g. コート) needs its parent. |
sizes | ["S", "M"] | Site size classes XS / S / M / L / XL. |
priceMinJpy / priceMaxJpy | 5000 / 30000 | Server-side bounds. |
conditionMin | 5 | Site rank filter: 6 → S; 5 → S, SA, A; 4 → + AB, B; 3 → + C; 2 → + D. |
gender | "mens" | Client-side from the listing's gender icon. Use categoryPath: "mens" / "ladies" for a server-side split. |
sort | "newest" | default 標準, newest 新着順, price_asc 価格が安い順, price_desc 価格が高い順. |
excludeWords | ["ダメージ"] | Client-side: drop items whose title contains any of these. |
Examples
New arrivals of one brand in men's fashion in A condition or better (run on a schedule and diff itemId):
{"searches": [{ "brand": "KAPITAL", "categoryPath": "mens", "conditionMin": 5, "sort": "newest" }],"maxItemsPerSearch": 100}
Women's coats size S–M under ¥20,000, cheapest first, with measurements:
{"searches": [{ "categoryPath": "ladies > コート", "sizes": ["S", "M"], "priceMaxJpy": 20000, "sort": "price_asc" }],"maxItemsPerSearch": 100,"enrichDetail": true,"maxDetailPages": 100}
Several brands in one run (one brand lookup each):
{ "searches": [{ "brand": "visvim" }, { "brand": "Yohji Yamamoto" }, { "brand": "COMME des GARCONS" }], "sort": "newest", "maxItemsPerSearch": 180 }
Requests are strictly sequential and 10 s apart (the site's published crawl delay): 180 listings = 1 search page ≈ 10–20 seconds; with enrichDetail ≈ 1 + N requests ≈ 17 minutes per 100 items. Plan schedules accordingly — the listing alone is cheap, details are for shortlists.
Search URL parameters (how the filters map to vector-park.jp)
Discovered from the site's search form, filter facets and pager (2026-11-02). Category and brand values must be sent in the site's <code>_<name> form (UTF-8); a bare code returns nothing.
https://vector-park.jp/list/?kw=…&cgt1=00200000000_メンズファッション&cgt2[]=00211000000_デニム、ジーンズ&bd[]=05798_キャピタル kapital&csize[]=2&rank[]=2&rank[]=3&pl=5000&ph=30000&od=4&lm=180&p=2
| Actor field | Site parameter | Values |
|---|---|---|
keyword | kw | free text |
categoryPath | cgt1, cgt2[] | <11-digit code>_<name>: 00200000000 メンズファッション, 00300000000 レディースファッション, 00400000000 メンズバッグ, 00500000000 レディースバッグ, 00600000000 財布, 00700000000 メンズシューズ, 00800000000 レディースシューズ, 00900000000 ファッション小物, 01000000000 時計, 01100000000 アクセサリー, 01200000000 キッズ、ベビーファッション … (144 codes bundled) |
brand / brandValue | bd[] | <brand code>_<name> from the search page's brand facet |
sizes | csize[] (repeatable) | 1 2 S, 3 M, 4 L, 5 XL |
conditionMin | rank[] (repeatable) | 2 S, 7 SA, 3 A, 8 AB, 4 B, 5 C, 6 D |
| price | pl / ph | min / max in JPY |
sort | od | 1 標準, 4 新着順, 2 価格が安い順, 3 価格が高い順 |
| (page size) | lm | 60, 120, 180 |
| (pagination) | p | page number |
Pricing (pay per event)
This Actor uses Apify's pay-per-event model. You only pay for what it produces:
| Event | Charged when | Price |
|---|---|---|
Result (apify-default-dataset-item, charged automatically by Apify) | one listing is saved to the dataset | $0.002 |
Detail page (detail-page) | that listing was enriched from its item page | $0.005 (in addition to the result) |
Market summary (summary) | one summary row is saved (outputMode summary / both) | $0.03 per search |
Actor start (apify-actor-start) | each run starts | $0.00005 |
Example: 100 listings with detail ≈ 100 × $0.002 + 100 × $0.005 = $0.70. Without detail: $0.20.
A summary-only run over 3 searches ≈ 3 × $0.03 = $0.09, whatever the number of listings sampled.
Set Max total charge on the run to cap spending — the Actor stops cleanly when the limit is reached and you keep everything collected so far.
FAQ
What is Vector Park? Vector Park (ベクトルパーク) is the e-commerce site of Vector Inc. (Okayama), which runs 200+ used-clothing and brand-goods buy-and-sell stores across Japan under names such as ベクトル, フクウロ and Vector Tokyo. All store stock is listed in one catalogue, every item graded S / A / B / C / D / E with measurements, so it is one of the broadest sources of Japanese secondhand fashion data.
Do I need a proxy?
No. The site serves the listing and item pages to Apify's datacenter IPs at the 10-second delay. proxyConfiguration is there if you need it.
Why 10 seconds between requests?
vector-park.jp publishes Crawl-delay: 10 in its robots.txt and this Actor honours it. Use lm=180 page size (the default) and listing-only runs for broad monitoring; enable enrichDetail for shortlists.
How are sizes and conditions normalized?
sizeRaw keeps the size written in the title or the 表記サイズ row; sizeNorm interprets it (waist inches for W28, alpha for S/M/L/LL→XL, numeric for JP sizes such as 1–5, cm for shoes, free); sizeClass is the site's own XS–XL icon. conditionRank uses 6 = best … 1 = worst — the same scale as our Trefac, Mercari, KOMEHYO and Yahoo! Fleamarket scrapers, so results from several Actors can be merged; conditionLabel keeps Vector Park's own letter.
Can I monitor new arrivals?
Yes — use "sort": "newest" with a brand / category / price cap, schedule the Actor and diff itemId against the previous run. New listings also carry the 新着 label (isNew: true), price cuts the プライスダウン label (priceDown: true).
Can I get sold items?
The listing shows items in stock; an item page that has sold is returned with status: "sold" when enriched. There is no sold-price history on the site.
Is this legal? The Actor collects public product data only — no login, no cart, no personal data — obeys robots.txt (allowed paths and Crawl-delay) and throttles requests. How you use the data is your responsibility; respect the site's terms of use, keep runs small and scheduled, and do not republish its photos or texts as your own.
How do I call it from code or from an AI agent? Any Apify client works. With the JavaScript client:
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor("tokyo-select-jp/vector-park-search-scraper").call({searches: [{ brand: "KAPITAL", categoryPath: "mens", conditionMin: 5, sort: "newest" }],maxItemsPerSearch: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
or with plain HTTP (run-sync-get-dataset-items returns the results directly):
POST https://api.apify.com/v2/acts/tokyo-select-jp~vector-park-search-scraper/run-sync-get-dataset-items?token=YOUR_TOKENContent-Type: application/json{ "keywords": ["visvim"], "maxItemsPerSearch": 50 }