B&H Photo Scraper avatar

B&H Photo Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
B&H Photo Scraper

B&H Photo Scraper

Extract product prices, descriptions, specs, and reviews from B&H Photo using this Apify actor. Export data in JSON, CSV, Excel, XML, or RSS. Automate e-commerce insights and boost your product research with powerful web scraping!

Pricing

from $1.00 / 1,000 results

Rating

5.0

(5)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

2

Bookmarked

49

Total users

9

Monthly active users

5 days ago

Last modified

Share

What does B&H Photo Product Scraper do?

B&H Photo Product Scraper collects structured product listing data from B&H Photo category, search, and listing pages. Provide one or more public B&H Photo URLs in startUrls, set the result and page limits, and receive a dataset containing product names, brands, prices, stock status, ratings, images, product identifiers, and source URLs.

The dataset is useful for photography equipment research, price comparison, inventory monitoring, competitor analysis, catalog building, and e-commerce data workflows. Results can be downloaded from Apify in JSON, CSV, Excel, XML, and other supported formats.

Why use B&H Photo Product Scraper?

  • Photography catalog research - Collect cameras, lenses, lighting, audio, computers, accessories, and other products from selected B&H Photo categories.
  • Price comparison - Store current prices, displayed currency, sale information, savings, and product identifiers for comparison workflows.
  • Inventory monitoring - Track whether products are in stock, out of stock, limited, discontinued, preorder, or otherwise unavailable when B&H Photo publishes that status.
  • Product discovery - Start with search pages or category URLs to build a focused product list without manually copying each result.
  • Review and rating analysis - Capture review counts and ratings when they are available in the listing data.
  • Image and catalog enrichment - Save the featured image, gallery images, product descriptions, category paths, manufacturer part numbers, and B&H identifiers.
  • Repeatable data collection - Run on demand, schedule recurring runs, send results through webhooks, or access datasets through the Apify API.

What data can you extract from B&H Photo?

FieldTypeDescription
nameStringProduct name shown in the B&H Photo listing.
brandStringProduct brand or manufacturer name.
priceNumberCurrent numeric product price.
currencyStringCurrency code, normally USD.
price_strikethroughNumberPrevious or crossed-out price when available.
price_grayedNumberGrayed-out price value when supplied by the listing.
price_currency_displayStringFormatted price text shown by B&H Photo.
price_savingsString or NumberSavings information when published.
price_map_messageStringMAP pricing message when available.
categoryStringMain category associated with the listing page.
category_pathArrayCategory hierarchy with category names, IDs, and URLs.
in_stockBooleanNormalized stock flag.
stock_availabilityStringNormalized status such as in_stock, limited_stock, out_of_stock, or discontinued.
stock_statusStringOriginal availability status when provided.
stock_messageStringStore availability message shown for the product.
stock_descriptionStringAdditional stock description when available.
reviewsNumberNumber of customer reviews.
ratingNumberProduct rating when available.
featured_imageStringPrimary product image URL.
imagesArrayUnique product image URLs found in the listing data.
description_textStringProduct description or listing summary.
urlStringClean B&H Photo product URL.
skuNumber or StringB&H Photo SKU when available.
bhIdStringB&H product identifier.
mpnStringManufacturer part number.
brand_series_modelStringBrand, series, or model label when available.
selling_pointsArrayProduct selling points published in the listing.
_sourceStringSource identifier, normally bhphotovideo.com.

Additional listing information such as promotions, rebates, buying options, shipping, store information, financing, leasing, and product flags may be included when B&H Photo provides it. Empty values are omitted from dataset records.

How to scrape B&H Photo data

  1. Open B&H Photo Product Scraper in Apify Store.
  2. Add one or more public B&H Photo category, search, or listing URLs to startUrls.
  3. Set results_wanted and max_pages for the size of the collection.
  4. Start the run and review the dataset preview.
  5. Export the results or connect the dataset to a scheduled workflow, webhook, spreadsheet, or application.

The actor processes each supplied URL and removes duplicate products across pages and URLs. max_pages limits pagination for each starting URL, while results_wanted limits the total number of products saved in the run.

Input Parameters

ParameterTypeRequiredDefaultDescription
startUrlsArrayNoFrom INPUT.jsonB&H Photo URLs. Each entry can be a URL string or an object such as { "url": "https://..." }. At least one URL is needed when no default is available.
results_wantedIntegerNo20Maximum number of products to save. Use 0 or a negative value for no product limit.
max_pagesIntegerNo3Maximum number of listing pages to process for each starting URL. Values are limited to the supported range of 1 to 200.
proxyConfigurationObjectNoDisabledOptional proxy settings. Supports useApifyProxy, proxyUrls, apifyProxyGroups, and apifyProxyCountry.

Runtime input takes priority over the local INPUT.json defaults. Use complete public B&H Photo URLs, preferably copied from the category or search page you want to collect.

Output Data

Each dataset item represents one unique B&H Photo product listing. Fields are included when the source provides a usable value.

FieldTypeDescription
nameStringProduct title.
brandStringBrand name.
priceNumberCurrent product price.
currencyStringCurrency code.
categoryStringListing category.
in_stockBooleanNormalized availability flag.
stock_availabilityStringNormalized stock state.
reviewsNumberReview count.
ratingNumberAverage rating when available.
featured_imageStringMain image URL.
imagesArrayProduct image URLs.
description_textStringProduct summary.
urlStringProduct page URL.
skuNumber or StringB&H SKU.
bhIdStringB&H product ID.
mpnStringManufacturer part number.
_sourceStringSource website identifier.

Usage Examples

Basic Category Collection

Collect products from a B&H Photo digital cameras category:

{
"startUrls": [
{
"url": "https://www.bhphotovideo.com/c/buy/Digital-Cameras/ci/9811/N/4288586282"
}
],
"results_wanted": 50,
"max_pages": 3
}

Multiple Categories and Search Pages

Process several B&H Photo listing sources in one run:

{
"startUrls": [
{
"url": "https://www.bhphotovideo.com/c/buy/Digital-Cameras/ci/9811"
},
{
"url": "https://www.bhphotovideo.com/c/buy/Lenses/ci/9812"
},
{
"url": "https://www.bhphotovideo.com/c/search?q=video%20monitor&sts=ma"
}
],
"results_wanted": 100,
"max_pages": 5
}

Larger Collection with Apify Proxy

Collect products across more pages and enable Apify Proxy when your run needs additional connection stability:

{
"startUrls": [
{
"url": "https://www.bhphotovideo.com/c/buy/Digital-Cameras/ci/9811"
}
],
"results_wanted": 0,
"max_pages": 10,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

Sample Output

The following example shows one product record. Some optional fields may be absent when the listing does not publish them.

{
"name": "Ricoh GR IV Monochrome Digital Camera",
"brand": "Ricoh",
"price": 2196.99,
"currency": "USD",
"category": "Digital Cameras",
"category_path": [
{
"id": 9811,
"name": "Digital Cameras",
"url": "https://www.bhphotovideo.com/c/buy/Digital-Cameras/ci/9811"
}
],
"in_stock": false,
"stock_availability": "out_of_stock",
"reviews": 0,
"featured_image": "https://static.bhphoto.com/images/images500x500/ricoh_gr_iv_monochrome_digital_1768409134_1926946.jpg",
"images": [
"https://static.bhphoto.com/images/images500x500/ricoh_gr_iv_monochrome_digital_1768409134_1926946.jpg"
],
"description_text": "Ricoh GR IV Monochrome Digital Camera",
"url": "https://www.bhphotovideo.com/c/product/1926946-REG/ricoh_gr_iv_monochrome_digital.html",
"sku": 1926946,
"bhId": "RIGR4M",
"_source": "bhphotovideo.com"
}

Tips for best results

  • Use direct B&H Photo category or search URLs instead of shortened or tracking-heavy links.
  • Start with results_wanted: 20 and max_pages: 1 to confirm that a URL returns the products you need.
  • Increase both limits gradually for larger catalog collections.
  • Use multiple starting URLs when you need to compare separate categories, brands, or search terms.
  • Use sku, bhId, or url to match products between scheduled runs.
  • Expect some fields to be missing when B&H Photo does not show that information in the listing data.
  • Review the dataset preview after a run because retailer pages, categories, and availability messages can change.

Integrations

  • Google Sheets - Review product prices, stock states, and catalog changes in a spreadsheet.
  • Airtable - Build a searchable product catalog with images and identifiers.
  • Webhooks - Send completed run notifications and dataset information to another service.
  • Make or Zapier - Trigger price, stock, or catalog workflows.
  • Apify API - Start runs and retrieve dataset records programmatically.
  • JSON, CSV, Excel, and XML - Export results for analysis, reporting, imports, and data pipelines.

Frequently Asked Questions

Can I scrape multiple B&H Photo categories at once?

Yes. Add multiple category, search, or listing URLs to startUrls. Products are deduplicated across the supplied URLs before they are saved.

Does the actor collect out-of-stock products?

Yes. Products remain in the dataset when the listing includes them, with in_stock set to false and a normalized value in stock_availability when the status can be determined.

How do results_wanted and max_pages work together?

results_wanted limits the total products saved in a run, while max_pages limits pagination for each starting URL. Setting results_wanted to 0 removes the product cap, but max_pages still limits how far each URL is processed.

Can I export B&H Photo data to CSV or Excel?

Yes. Apify datasets can be downloaded as JSON, CSV, Excel, XML, and other supported formats, or accessed through the Apify API.

Why is a field missing from a product record?

Fields are omitted when the B&H Photo listing does not provide a usable value. Availability, ratings, savings, descriptions, and category details can vary by product and page type.

Can I run this Actor on a schedule?

Yes. Create an Apify schedule to collect the same categories or searches hourly, daily, weekly, or at another interval supported by your workflow.

Public web data collection may be subject to applicable laws, privacy requirements, and B&H Photo's terms. You are responsible for choosing lawful inputs, respecting access limits, and using the collected data responsibly.

  • Walmart Product Scraper - Collect product prices, ratings, availability, seller information, and listing data from Walmart.
  • Target Product Scraper - Gather structured product listings from Target for retail research and comparison workflows.
  • AutoZone Products Scraper - Extract automotive product catalogs, prices, availability, and related retail listing data from AutoZone.

Support

For issues, feature requests, or changes to supported B&H Photo page formats, use the Issues tab on the Actor page in Apify Console.

This Actor is intended for legitimate collection of publicly available product listing data. Users are responsible for complying with applicable laws, website terms, privacy rules, and any restrictions that apply to their intended use of the data.