Japan Tokushoho Scraper - Online Shop Seller Contacts
Pricing
$6.00 / 1,000 per japanese shop seller returneds
Japan Tokushoho Scraper - Online Shop Seller Contacts
Turn Japanese online-shop domains into seller leads from each shop's 特定商取引法に基づく表記 page: legal name, responsible person, address, phone, email, 法人番号 and T-number. Reads Rakuten and Yahoo! store pages too; BASE/STORES platform offices are flagged, never billed.
Pricing
$6.00 / 1,000 per japanese shop seller returneds
Rating
0.0
(0)
Developer
Scrapers Delight
Maintained by CommunityActor stats
0
Bookmarked
9
Total users
8
Monthly active users
8 days ago
Last modified
Categories
Share
Japan Tokushoho Scraper — Online Shop Seller Contacts
Give it a list of Japanese online-shop domains. For each shop it finds the 特定商取引法に基づく表記 page — the seller disclosure every Japanese mail-order shop publishes — and returns one row per shop: the seller's legal name, the responsible person, address, phone (as printed and in +81 form), email, fax, invoice T-number and 法人番号 when printed, plus the shop's payment methods, shipping fees, delivery time and returns policy as printed.
It also takes Rakuten Ichiba and Yahoo!ショッピング store URLs — each store's info.html is its disclosure — and follows a corporate site to its own shop on another host (ec.example.co.jp, a Color Me or BASE shop, a Rakuten store).
You pay only for rows that name the seller and carry its address or phone. Everything else comes back in the same dataset, unbilled, with a status that says why.
What one row is
One shop domain → one row. A billed row (status: "ok") — a real row from the verification run on 2026-10-16:
{"domain": "wargo.jp","status": "ok","billed": true,"sellerName": "株式会社和心","representative": "最上 夢人","address": "〒151-0051 東京都渋谷区千駄ヶ谷3-20-12和心ビル","postalCode": "151-0051","prefecture": "東京都","phone": "03-5785-0556","phoneE164": "+81357850556","email": "cs2@wagokoro.co.jp","disclosureUrl": "https://wargo.jp/policies/legal-notice","ecPlatform": "shopify","platformProxied": false}
Measured coverage (2026-10-16)
Measured on 140 Japanese online-shop domains the scraper had never seen, drawn at random from two independent lists — the Tranco top-1M .jp domains (75) and OpenStreetMap shops in Japan with a website (65) — each verified as a live storefront from its homepage before the run, and run through the same network path the Actor uses on Apify.
| billed row returned | |
|---|---|
Tranco .jp domains | 70 of 75 = 93.3% |
| OpenStreetMap shops | 60 of 65 = 92.3% |
| all 140 | 130 = 92.9% |
| shop platform | billed |
|---|---|
| Shopify | 49 of 51 |
| own-built shop sites | 36 of 42 |
| EC-CUBE | 16 of 17 |
BASE (own domain and *.thebase.in) | 6 of 6 |
| futureshop · WooCommerce · MakeShop · おちゃのこネット · ecbeing · Salesforce Commerce · STORES | 23 of 23 |
Why the other 10 returned no billed row — each one re-checked by crawling the shop in a real browser: 5 publish no disclosure page reachable from their homepage · 2 hosts did not answer within the per-shop deadline · 1 page carries only a shop template's sample values (株式会社テストショップ / ◯◯◯◯) · 1 page sits behind an age gate · 1 page sat behind a "ショップ案内" link the scraper did not follow then (it does now). Of the shops that publish a readable disclosure, 130 of 133 = 97.7% returned a billed row.
On the 200-domain sample measured on 2026-09-29 (163 = 81.5% on the previous build) this build returns 177 = 88.5% using only the free network route (no residential IPs, no Unblocker).
Field fill over the 131 billed rows of the first pass on the 140 shops: seller name 98% · responsible person 93% · address 98% · prefecture 97% · phone 87% · postcode 76% · email 65% · payment methods 91% · returns policy 92% · extra fees 83% · delivery time 79% · hours 30% · fax 18% · licence (古物商 etc.) 10% · invoice T-number 3% · 法人番号 3%.
Network: 125 of the 130 billed rows opened on Apify's own datacenter egress; 5 needed Japanese residential IPs. Two large retailers refuse every route, the Apify Unblocker included (zozo.jp, mediplus-lab.jp) and come back as blocked.
Input
| field | what it does | default |
|---|---|---|
domains | Shop domains, homepage URLs, the 特定商取引法 page URL itself, or a Rakuten / Yahoo!ショッピング store URL. Any TLD. | 5-shop demo |
startUrls | The same list as URLs (Make, Zapier, Clay, Google Sheets). Merged and deduplicated. | — |
maxItems | Cap on billed rows. Unbilled rows never count. 0 = no cap. | 1000 |
maxRequestsPerDomain | Requests spent finding one shop's page, homepage included. | 14 |
perDomainTimeoutSecs | Deadline for one shop. | 150 |
requestConcurrency | Shops worked in parallel (lowered automatically if memory is short). | 16 |
requestTimeoutSecs | Timeout for a single request. | 20 |
includeUnbilledRows | Return a row for every input, billed or not. | on |
includeTermsFields | Payment methods, extra fees, delivery time, returns policy. | on |
useSitemap · useWordPressSearch · followWwwVariants · followShopLinks | Discovery channels: the sitemaps robots.txt names, WordPress page search, the other host form, the shop's own store on another host. | on |
useDatacenterProxy · escalateToResidential · escalateToUnblocker · residentialCountry | Transport ladder: direct first, then the Apify datacenter pool (only when your account has one), then Japanese residential IPs, then the Apify Unblocker — each only when a host refuses. | on · on · on · JP |
proxyConfiguration | Your own proxy for the first attempt. | none |
maxBodyKb | Pages are streamed and cut at this size (head and end kept). | 1500 |
saveRawPages | Store the exact page each row was read from (gzipped) in the run's key-value store. | off |
{ "domains": ["kinto.co.jp", "https://www.yoshikawa-k.co.jp/", "https://www.rakuten.co.jp/biccamera/"] }
How each shop's page is found
In this order, stopping at the first page that names the seller with an address or phone:
- the URL you gave, when it is the disclosure page (or a Rakuten / Yahoo! store's
info.html) - the homepage's own links — and links the browser shows but the server HTML only carries as data (a commented-out footer link, a footer built from script JSON)
- the shop platform's standard page (Shopify
/policies/legal-notice, futureshop/p/about/terms, EC-CUBE/help/tradelaw, MakeShop/view/contract, Color Me?mode=sk, BASE/law, STORES/tokushoho, ecforce/shop/law_info, おちゃのこネット/info…) - Shopify's own page search, for pages with free-form handles
- the sitemaps the shop's
robots.txtnames (content pages only) - WordPress page search
- the shop's own store on another host
- one hop into a ご利用ガイド / 会社概要 page
- conventional paths (
/law,/tokushoho,/legal…)
When the 特定商取引法 page names the seller but prints no address or phone (or the reverse), the shop's own 会社概要 page fills only the missing fields, and only when it names the same company; companyPageUrl and supplementedFields say so on the row.
Output fields
domain · inputUrl · status · billed · sellerName (販売業者) · shopName (ショップ名 / ブランド名) · representative (運営統括責任者 / 代表者) · representativeRole · address (所在地) · postalCode · prefecture · phone · phoneE164 · phones · email · emails · fax · corporateNumber (法人番号) · corporateNumberSource · invoiceRegistrationNumber (T-number) · hours · license · paymentMethods · extraFees · deliveryTime · returnsPolicy · siteUrlPrinted · disclosureUrl · companyPageUrl · supplementedFields · ecPlatform · platformProxied · platformOperator · contactWithheld · labelsFound · missReason · requests · transport · secondsSpent · rawPageKey · scrapedAt
- Values are as printed. A phone keeps the page's own separators (
0724689631stays unhyphenated);phoneE164is the same digits with the national 0 dropped (+81…), nothing completed or guessed. - English pages are read too ("Notation based on the Act on Specified Commercial Transactions": Company Name, Representative, Address …); the prefecture of an English address is given in Japanese (
Osaka→大阪府). - 法人番号 and T-number are check-digit verified. A number that fails the National Tax Agency check digit is never returned. 法人番号 is rarely printed on these pages; when a corporation prints its invoice T-number,
corporateNumbercarries its 13 digits andcorporateNumberSourcesaysinvoice-registration-number. platformProxied: true— BASE and STORES micro-shops may print the platform's office instead of their own. Those rows are returned with this flag and are never billed.ecPlatform— the shop's cart platform read from its homepage (shopify, makeshop, futureshop, eccube, colorme, woocommerce, salesforce-commerce, rakuten, yahoo-shopping, own-stack …).
Status values
| status | billed | meaning |
|---|---|---|
ok | yes | seller named + address or phone printed |
platform_proxied | no | the page prints the hosting platform's office, not the seller's |
no_disclosure_found | no | no 特定商取引法 page reachable from the homepage, platform path, page search, sitemap, the shop's own store, guide pages or conventional paths |
disclosure_unreadable | no | the page exists but its values are filled in by JavaScript or behind a gate |
disclosure_image | no | the seller block is printed as images |
incomplete_disclosure · contact_withheld | no | the page names no seller, or the seller withholds address and phone |
blocked · unreachable · dead_host | no | the host refused every transport rung, timed out, or does not resolve |
RUN_SUMMARY in the run's key-value store counts every status, the field fill over billed rows and the transport used.
Pricing
Pay per event: $6 per 1,000 seller rows (seller-scraped, $0.006 each). No start fee. Unbilled rows are free.
Limits
- Some small shops publish no disclosure page at all; they return
no_disclosure_found. - A host that answers only Japanese IPs is retried on Japanese residential IPs, which is slower; a few large retailers refuse every route and return
blocked. - Pages whose values only appear after JavaScript runs, or behind an age gate, return
disclosure_unreadable.