Mall Store Directory — Multi-Country, Unified Schema
Pricing
from $3.00 / 1,000 store record extracteds
Mall Store Directory — Multi-Country, Unified Schema
Extract store directories from major mall operators across the US, UK and Europe (Simon, CBL, Landsec, Westfield/URW, NEPI Rockcastle, AFI, Iulius and more). One unified schema with mall, country, operator, floor, category, contact data and anchor-tenant flags.
Pricing
from $3.00 / 1,000 store record extracteds
Rating
0.0
(0)
Developer
Oaida Adrian
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Mall Store Directory — Multi-Country, One Dataset
Extract store directories from major mall operators across the US, UK and Europe as a single unified dataset. One crawl covers Simon Property Group, CBL Properties, Landsec (Bluewater), Westfield (URW), NEPI Rockcastle (Romania + CEE), AFI Europe, Iulius Group, Sun Plaza, Băneasa, ParkLake, Veranda and Colosseum — one record per store with a consistent 20-field schema no operator publishes on its own. Every record carries mall_country (ro/us/gb/hu), mall_operator, store, category, floor/unit, contact data and an anchor-tenant flag; first_seen / last_seen / is_closed turn repeat runs into a vacancy & churn time-series.
Input
{"countries": ["gb", "us"],"operators": ["landsec", "simon"],"includeAnchor": true,"extractDetails": true,"output": "json"}
| Field | Type | Default | Description |
|---|---|---|---|
countries | array | ["all"] | ro, us, gb (or uk), hu, or ["all"] |
operators | array | ["all"] | nepi, afi, iulius, sunplaza, baneasa, parklake, veranda, colosseum, simon, cbl, landsec, westfield (alias urw) |
malls | array | ["all"] | Specific mall ids (overrides countries/operators) |
includeAnchor | boolean | true | Set false to exclude anchor tenants |
extractDetails | boolean | false | Visit store pages for floor/phone/hours/email (slower, richer). NEPI, Băneasa and Landsec always carry full detail |
output | string | json | json, csv or xlsx (csv/xlsx via Console export) |
Output
One dataset item per store:
{"mall_id": "king-of-prussia","mall_name": "King of Prussia","mall_city": "King of Prussia","mall_address": "160 N Gulph Rd, King of Prussia, PA 19406","mall_country": "us","mall_operator": "Simon Property Group","store_name": "Zara","store_brand": "Zara","category": "Women's Fashions / Men's Fashions","floor": "","unit_number": "2036CT","website": "https://www.zara.com","phone": "(484) 673-1851","email": "","opening_hours": "","store_url": "https://www.simon.com/mall/king-of-prussia/stores/zara","anchor_tenant": true,"first_seen": "2026-08-14T10:00:00+00:00","last_seen": "2026-08-14T10:00:00+00:00","is_closed": false}
Unpublished fields return empty strings — records always have the same shape, so CSV/Excel exports stay clean.
Coverage by operator
| Country | Operator | Malls | Source type |
|---|---|---|---|
| RO | NEPI Rockcastle | 19 (Mega Mall, Promenada, Shopping City…) | Strapi CMS JSON API |
| RO | AFI Europe | 2 (Cotroceni, Ploiești) | WordPress brand sitemap |
| RO | Iulius Group | 4 (Cluj, Iași, Suceava, Iulius Town) | Shopping index HTML |
| RO | Sun Plaza, Băneasa, ParkLake, Veranda, Colosseum | 5 | WordPress / Laravel / Inertia |
| US | Simon Property Group | 10 flagship malls (King of Prussia, Lenox Square…) | tenant JSON API |
| US | CBL Properties | 6 malls | featured-store lists (partial) |
| GB | Landsec | Bluewater | Umbraco content API |
| GB | Westfield (URW) | London, Stratford City | retailer index + schema.org |
Use cases
- Retail analytics / site selection — store mix, anchor presence, category density
- Vacancy & churn monitoring — stores that disappear get
is_closed: truenext run - Cross-border brand tracking — brand footprints across countries
- Leasing / REIT analysis — unit-level occupancy signal
- Local SEO & citations — accurate store lists with floor/unit refs
Run from your code
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("darknezz/mall-store-directory").call(run_input={"countries": ["gb", "us"], "operators": ["landsec", "simon"]})for store in client.dataset(run["defaultDatasetId"]).iterate_items():print(store["mall_country"], store["mall_name"], store["store_name"])
Pricing
Pay-per-event: $0.002 per store extracted, plus Apify's standard compute. A full multi-country run costs a few dollars; a single-mall run costs cents.
FAQ
Which countries are covered? Romania (full directory), the US (Simon + CBL), the UK (Landsec Bluewater + Westfield London/Stratford) and Hungary (NEPI Mammut). More operators are added as their structures are verified.
What is an anchor tenant? Foot-traffic drivers — hypermarkets (Auchan, Tesco, Walmart, Carrefour…), cinemas (AMC, Odeon, Cinema City…), department stores (Macy's, Nordstrom, John Lewis…) and big electronics/DIY/sport anchors. Flag derived from name and category with a multi-country brand list.
Why is ParkLake sometimes empty? ParkLake (Sonae Sierra) runs a JS-challenge WAF serving datacenter IPs an HTTP 202 challenge (verified 2026-08-13). From residential/proxy IPs its REST API returns ~223 stores; from Apify's default egress it contributes 0. The adapter tries curl_cffi impersonation then the sitemap, and logs honestly. Run with a residential proxy for full coverage.
Why does CBL return only a handful of stores? CBL publishes only "Featured Stores" paragraphs, not a full directory. The adapter extracts those featured tenants (exactly the anchors the schema flags) and logs the partial-coverage caveat.
Is crawling respectful? Yes — robots.txt is honoured, requests are paced with backoff, and operator-owned public JSON APIs (NEPI Strapi, Simon tenant API, Landsec Umbraco) are queried politely with small pages.
Why is is_closed false on my first run? is_closed becomes meaningful from the second run (previous snapshot diff). First runs are a baseline. Some operators (Simon) expose comingSoon / closedForRenovation / temporarilyClosed, mapped to is_closed immediately.