Japan Tokushoho Scraper - Online Shop Seller Contacts avatar

Japan Tokushoho Scraper - Online Shop Seller Contacts

Pricing

$6.00 / 1,000 per japanese shop seller returneds

Go to Apify Store
Japan Tokushoho Scraper - Online Shop Seller Contacts

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

Scrapers Delight

Maintained by Community

Actor stats

0

Bookmarked

9

Total users

8

Monthly active users

8 days ago

Last modified

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 domains70 of 75 = 93.3%
OpenStreetMap shops60 of 65 = 92.3%
all 140130 = 92.9%
shop platformbilled
Shopify49 of 51
own-built shop sites36 of 42
EC-CUBE16 of 17
BASE (own domain and *.thebase.in)6 of 6
futureshop · WooCommerce · MakeShop · おちゃのこネット · ecbeing · Salesforce Commerce · STORES23 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

fieldwhat it doesdefault
domainsShop domains, homepage URLs, the 特定商取引法 page URL itself, or a Rakuten / Yahoo!ショッピング store URL. Any TLD.5-shop demo
startUrlsThe same list as URLs (Make, Zapier, Clay, Google Sheets). Merged and deduplicated.—
maxItemsCap on billed rows. Unbilled rows never count. 0 = no cap.1000
maxRequestsPerDomainRequests spent finding one shop's page, homepage included.14
perDomainTimeoutSecsDeadline for one shop.150
requestConcurrencyShops worked in parallel (lowered automatically if memory is short).16
requestTimeoutSecsTimeout for a single request.20
includeUnbilledRowsReturn a row for every input, billed or not.on
includeTermsFieldsPayment methods, extra fees, delivery time, returns policy.on
useSitemap · useWordPressSearch · followWwwVariants · followShopLinksDiscovery 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 · residentialCountryTransport 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
proxyConfigurationYour own proxy for the first attempt.none
maxBodyKbPages are streamed and cut at this size (head and end kept).1500
saveRawPagesStore 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:

  1. the URL you gave, when it is the disclosure page (or a Rakuten / Yahoo! store's info.html)
  2. 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)
  3. 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 …)
  4. Shopify's own page search, for pages with free-form handles
  5. the sitemaps the shop's robots.txt names (content pages only)
  6. WordPress page search
  7. the shop's own store on another host
  8. one hop into a ご利用ガイド / 会社概要 page
  9. 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 (0724689631 stays unhyphenated); phoneE164 is 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, corporateNumber carries its 13 digits and corporateNumberSource says invoice-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

statusbilledmeaning
okyesseller named + address or phone printed
platform_proxiednothe page prints the hosting platform's office, not the seller's
no_disclosure_foundnono 特定商取引法 page reachable from the homepage, platform path, page search, sitemap, the shop's own store, guide pages or conventional paths
disclosure_unreadablenothe page exists but its values are filled in by JavaScript or behind a gate
disclosure_imagenothe seller block is printed as images
incomplete_disclosure · contact_withheldnothe page names no seller, or the seller withholds address and phone
blocked · unreachable · dead_hostnothe 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.