Bank of Lamps Scraper avatar

Bank of Lamps Scraper

Pricing

from $2.00 / 1,000 products

Go to Apify Store
Bank of Lamps Scraper

Bank of Lamps Scraper

Scrape Bank of Lamps wholesale electrical products: name, EAN, MPN, GTIN, brand, public list price, stock, technical specs, images, and datasheets. Paste any category, brand, or product URL on bankoflamps.com. One row per SKU. JSON or CSV out, billed per result. Caps via maxItems.

Pricing

from $2.00 / 1,000 products

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Turn bankoflamps.com into structured wholesale electrical product data. Paste a category, brand, or product URL and get EAN, MPN, brand, public list price, stock, technical specs, images, and datasheets — one row per SKU. JSON or CSV out.

How it works

How Bank of Lamps Scraper works

✨ Why use this scraper?

  • Three starting points. Category (/luminaires), brand (/philips), or a direct product URL (/{slug}-{ean}) — classified automatically.
  • JSON-LD–backed rows. Name, EAN/SKU, MPN, GTIN, list price, availability, brand, and the spec table come from the page's Product graph — the same block search engines read.
  • Specs stay structured. Socket, IP rating, wattage, CRI, colour temperature, HS code, ETIM class, and the rest land in specs[] with units.
  • Public list price, labelled as such. Guest price is in the HTML. Validated B2B net prices stay behind login and are not scraped. priceNote says so on every row.
  • Datasheets when the page has them. Energy labels and product PDFs are collected as documents[].
  • Hard cap on a 1.5M catalog. Always set maxItems. One category can run to thousands of pages.

🎯 Use cases

TeamWhat they build
Electrical distributorsAssortment overlays against Bank of Lamps stock and list price
Procurement / PIMEAN-keyed product feeds with MPN, brand, and spec attributes
Lighting project desksSpec sheets for luminaires, LED lamps, and installation gear
Market researchersBrand coverage and public list-price snapshots across the EU B2B catalog
AgenciesScheduled category dumps for a client PIM or price-watch sheet

📥 Supported inputs

Pass any mix of these in startUrls. Each URL is classified automatically.

URL patternBehaviour
https://bankoflamps.com/{category}Listing — walks ?page=N (~60 products per page)
https://bankoflamps.com/{brand}Listing — same pagination, brand-filtered
https://bankoflamps.com/search/?q=…Listing — keyword search (the site is picky; EAN/MPN in the address bar works better than a vague word)
https://bankoflamps.com/{slug}-{ean}Product detail — routed straight to the parser
https://bankoflamps.com/{de|fr|ru|lt|lv|et}/…Same patterns with a locale prefix

Easiest workflow: open the category or brand you want on bankoflamps.com, copy the address bar, paste into startUrls, set maxItems.

Not supported:

  • Login, cart, checkout, quote, or account pages
  • Validated B2B net prices (those need a company account)
  • Hosts outside bankoflamps.com

🔄 How it works

  1. Classify each startUrl as a listing or a product (/{slug}-{ean}).
  2. Fetch each listing and collect product links. Category and brand pages paginate with ?page=N.
  3. Fetch each product page in parallel via a sliding window.
  4. Parse the JSON-LD Product + Offer graph, plus MOQ, package qty, breadcrumbs, and document links from the HTML.
  5. Push one row per SKU to the dataset.

⚙️ Input parameters

ParameterTypeDefaultDescription
startUrlsarray["https://bankoflamps.com/luminaires"]Category, brand, and/or product URLs. Mix freely.
maxItemsinteger100Hard cap on products collected. The live catalog is 1.5M+ SKUs.
monitoringModebooleanfalseSkip EANs already delivered to you on a previous run. First run after enabling still returns every match (it seeds the baseline).
resetMonitoringStatebooleanfalseClear the saved "already seen" EANs at the start of this run.
maxConcurrency / minConcurrencyinteger10 / 1Parallel product-page limits.
maxRequestRetriesinteger5Retries before a request is given up.
proxyobjectApify residentialProxy configuration. The site has no interactive challenge; a small pool is enough.

📊 Output overview

Each scraped SKU is one dataset row of type: "product". Row count equals product count — no padding rows. Price is the public list price (excl. VAT). Individual B2B prices are not on the public page.

📦 Output sample

Real row from /luminaires (trimmed):

{
"type": "product",
"productId": "118444",
"ean": "4752280007892",
"mpn": "03001G3",
"gtin": "04752280007892",
"sku": "4752280007892",
"productUrl": "https://bankoflamps.com/microwave-led-sensor-lamp-9w-3000k-4000k-6000k-1100lm-4-16m-ip44-ik10-thorgeon-4752280007892",
"name": "Microwave LED Sensor Lamp 9W 3000K/4000K/6000K 1100Lm 4-8m IP44 IK10 4752280007892 — 03001G3",
"brand": "THORGEON",
"brandUrl": "https://bankoflamps.com/thorgeon",
"category": "Luminaires",
"price": 35.43,
"priceCurrency": "EUR",
"priceNote": "List price. Register for individual B2B price.",
"availability": "InStock",
"inStock": true,
"moq": 1,
"packageQty": 1,
"images": [
"https://image-cdn.bankoflamps.com/1200x1200/7e/7e8b88397969752f67d0930edd6ebe7ae288bd3c.jpg"
],
"specs": [
{ "name": "Degree of protection (IP)", "value": "IP44", "unit": null },
{ "name": "Impact strength", "value": "IK10", "unit": null },
{ "name": "Max. system power", "value": 9, "unit": "W" },
{ "name": "Rated luminous flux according to IEC 62722-2-1", "value": 1100, "unit": "lm" },
{ "name": "ETIM Class", "value": "EC002892", "unit": null }
],
"documents": [
{ "title": "Energy label", "url": "https://blob-cdn.bankoflamps.com/76/761df299237aef93554391ad2a192ea3831fea97.pdf" }
],
"scrapedAt": "2026-09-21T10:29:40.607Z"
}

🗂 Key output fields

GroupFields
IdentityproductId, ean, mpn, gtin, sku, productUrl
Merchandisingname, description, brand, brandUrl, category, categories[], keywords[]
Price & stockprice, priceCurrency, priceNote, availability, inStock, condition, moq, packageQty
Specs & mediaspecs[] (name, value, unit), images[], documents[] (title, url)
Runtype (product), scrapedAt

❓ FAQ

Which URLs are supported? Category pages, brand pages, search URLs, and product URLs that end in an 8–14 digit EAN. Login, cart, checkout, and quote pages are skipped.

Is the price the real B2B net? No. It is the public list price shown to guests. The site assigns individual net prices after a company account is validated. Every row sets priceNote so that is visible in the export.

How big is the catalog? About 1.5–2.0 million products, ~1,000 categories, ~790 brands. Set maxItems on every run.

Does keyword search work? The HTML search form is finicky from a plain GET. Prefer a category or brand URL, or a product URL / EAN you already have.

Can I scrape prices behind login? No. The actor only reads public pages.

How do I get only new products on a schedule? Turn on monitoringMode. The first run builds a per-user EAN baseline; later runs skip EANs you already received.

💬 Support

🛠 Additional services

🔎 Explore more scrapers

If this was useful, see other scrapers at memo23's Apify profile.


🤖 For AI Agents & LLM Apps

Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/bankoflamps-scraper).

Purpose: Scrapes wholesale electrical products from bankoflamps.com — category, brand, or product URLs — one dataset row per SKU with public list price, EAN/MPN, specs, and images.

Minimal input:

{
"startUrls": ["https://bankoflamps.com/luminaires"],
"maxItems": 50
}

Output: one row per product — type, productId, ean, mpn, gtin, sku, productUrl, name, description, brand, brandUrl, category, categories[], price, priceCurrency, priceNote, availability, condition, inStock, moq, packageQty, images[], specs[] {name, value, unit}, documents[] {title, url}, keywords[], scrapedAt.

Behaviors an agent should know:

  • Always set maxItems. The catalog is 1.5M+ SKUs; an uncapped category walk is huge.
  • startUrls are auto-classified: /{slug}-{ean} is a product; everything else on the host is treated as a listing and paginated with ?page=N.
  • price is the public list price (EUR, excl. VAT), not the validated B2B net.
  • monitoringMode skips EANs already delivered to that user; skipped products are not fetched and not charged.
  • Only public pages. No login, cart, or quote endpoints.
  • Pay-per-event billing — see the Pricing tab on the actor page.

⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Bank of Lamps, ATTA-1 SIA, or any of their subsidiaries or affiliates. All trademarks mentioned are the property of their respective owners.

The scraper accesses only publicly available product, category, and brand pages on bankoflamps.com — no authenticated endpoints, B2B-portal-only prices, or content behind a Bank of Lamps login. Users are responsible for ensuring their use complies with bankoflamps.com's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organisation.


SEO Keywords

bankoflamps scraper, bank of lamps scraper, scrape bankoflamps, bankoflamps api, Apify bankoflamps, wholesale lighting scraper, electrical wholesale catalog scraper, EAN product scraper, MPN lighting data, EU electrical distributor scraper, LED lamp catalog scraper, luminaire specs scraper, OSRAM Philips ABB catalog data, B2B lighting product feed, electrical PIM scraper, industrial lighting wholesale data, bankoflamps.com products