Ecommerce Shipping & Returns Scraper
Pricing
from $15.00 / 1,000 store analyzeds
Ecommerce Shipping & Returns Scraper
Bulk ecommerce shipping scraper: carriers, return portals, free-shipping thresholds, PUDO pickup, shipping software. $15/1k stores. EU policy pages.
Pricing
from $15.00 / 1,000 store analyzeds
Rating
0.0
(0)
Developer
Pequod
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
19 hours ago
Last modified
Categories
Share
Ecommerce Shipping Intelligence
Turn any list of ecommerce domains into a structured shipping & returns intelligence dataset — carriers, return portals, free-shipping thresholds, pickup points, and the shipping software stack behind each store.
No API keys, no LLM costs, no scraping setup. Paste domains, get enriched profiles.
Why this Actor
Shipping and returns data is public — it sits on policy pages, FAQs and footers — but collecting it manually takes 10–15 minutes per site. This Actor does it in seconds per domain, at scale, and returns clean, queryable fields:
- Which carriers does this merchant use? (DHL, GLS, PostNL, UPS, Colissimo, InPost, …)
- Do they have a branded return portal, or do returns go through email? (Loop, Outvio, ReturnGO, Narvar, AfterShip, and 30+ more vendors detected)
- What is their free-shipping threshold? (stated in EUR)
- Do they offer pickup points / PUDO or click & collect?
- Which shipping software runs behind the store? (multi-carrier platforms, tracking suites, returns SaaS)
- Which ecommerce platform? (Shopify, WooCommerce, Magento, PrestaShop, …)
- Do they ship internationally?
Who uses it
| You are | You get |
|---|---|
| Logistics / carrier sales team | Prospect lists segmented by current carrier mix — target merchants using a competitor, or single-carrier stores ready for multi-carrier |
| Returns / post-purchase SaaS | Merchants with manual, email-only returns flows — your exact ICP — plus stores already using a competitor's portal |
| Shipping software vendor | The software stack each merchant already runs, so you qualify before the first call |
| Market researcher / analyst | Free-shipping thresholds, PUDO adoption, international-shipping rates across whole markets |
| Agency / consultant | Instant shipping-experience audits for pitches and benchmarks |
How it works
- Fetches each homepage with browser-like headers (SSL fallback included)
- Discovers shipping, returns, FAQ and tracking policy pages — multilingual: full rule coverage for EN, IT, DE, FR, NL, ES, PT, PL, SV, DA, NO, FI, CS, RO, HU, EL; AI enhancement reads everything else
- Recovers missing pages via sitemap parsing, canonical path probing and nav-link ranking
- Runs 200+ deterministic detection rules refined on thousands of real European stores — no hallucinations, every field is backed by on-page evidence
- When a policy page is written in a way the rules can't parse — "you have two weeks to change your mind" instead of "14 days" — AI enhancement reads it and fills the gap. Every AI answer must point at an exact sentence from the page; if that sentence isn't there, the answer is thrown away. Fields recovered this way are marked in
llm_enhanced_fields, so you always know which values came from rules and which from AI
Quick start
{"domains": ["velasca.com", "bergfreunde.de"],"proxyConfiguration": { "useApifyProxy": true }}
That's it. One dataset item per domain.
Input options
- domains (required): list of ecommerce domains or URLs
- concurrency (optional, default 5): parallel domains (1–20)
- proxyConfiguration (optional, recommended): Apify Proxy avoids IP blocks (403/429) from ecommerce WAFs
- pushFailed (optional, default
false): unreachable domains are kept out of the dataset, so you only pay for successfully analyzed domains. They are always listed in theFAILED_DOMAINSrecord of the key-value store; set totrueto also push them as dataset items - browserFallback (optional, default
false): render the homepage with a headless browser when plain HTTP fails — recovers JS-only storefronts and hard WAFs (2048 MB memory suggested) - aiEnhanced (optional, default
true): when the rules can't read an oddly-worded policy page, a language model extracts the missing fields. Every AI answer is verified against the page text before being accepted — values are never invented. Enhanced results are billed as a separate event; turn off to pay the base price only
Example output
{"domain": "bergfreunde.de","canonical_domain": "bergfreunde.de","carriers": ["DHL"],"carriers_state": "detected","return_portal_state": "unknown","return_window_days": 7,"international_state": "ships_intl","ecommerce_platform": "Shopware","discovered_policy_urls": {"shipping": ["https://www.bergfreunde.de/hochtouren/"],"returns": ["https://www.bergfreunde.de/rueckgabe/"],"faq": ["https://www.bergfreunde.de/faq/"]},"shipping_pages_fetched": 4}
Output fields
| Field | Description |
|---|---|
domain | Input domain |
carriers | Detected carrier brands (e.g. DHL, GLS, PostNL) |
carriers_state | detected, no_carrier_proven, or unknown |
return_portal_state | has_portal, manual_only, or unknown |
returns_portal | Branded returns vendor when detected (Loop, Outvio, ReturnGO, …) |
return_window_days | Stated return window in days |
free_shipping_threshold_eur | Free-shipping threshold in EUR when stated |
pickup_state / pickup_vendors | Carrier PUDO / pickup point detection |
click_and_collect | Merchant store pickup |
detected_tools / detected_vendors | Shipping/returns software stack on site |
ecommerce_platform | Shopify, WooCommerce, Magento, … |
international_state | ships_intl, domestic_only_proven, or unknown |
tracking_vendor | Branded tracking platform when present |
discovered_policy_urls | Policy URLs found and fetched per category |
Every state field distinguishes proven facts from unknown — the Actor never guesses. unknown means the public pages don't say; it never fabricates a value.
Reliability
- Unreachable homepage + proxy configured → automatic retry on a fresh proxy session (new exit IP)
- Domains that still fail are listed in the
FAILED_DOMAINSrecord of the run's key-value store, so you always know exactly what to re-run - Failed domains are not pushed to the dataset by default — you never pay for empty results
- AI enhancement never overrides the rules: it only fills fields that would otherwise be
unknown, and only with values it can prove with a quote from the page. You are only charged the AI event when it actually recovered something
Limitations
- JavaScript-only storefronts may return partial profiles from plain HTTP — enable
browserFallbackto recover them - Hard WAFs: a small share of sites block all automated traffic; these end up in
FAILED_DOMAINSinstead of producing bad data - Checkout-only signals: pickup options shown only at checkout may not appear on policy pages (
pickup_state: unknown) - Free-shipping thresholds in local currency (zł, kr, Kč, Ft, lei): the deterministic parser extracts EUR thresholds only; local-currency amounts are recovered via AI enhancement when a verbatim quote is found on the page
Questions or feature requests?
Open an issue on the Actor's page — feedback on new carriers, vendors or markets to detect is welcome.