Discover/Bhphotovideo API
live

Bhphotovideo APIbhphotovideo.com

Search B&H Photo inventory, fetch product specs, pricing, stock status, category trees, and review summaries via a structured JSON API.

Endpoint health
verified 6d ago
get_category_products
search_products
get_product_detail
get_product_reviews_summary
get_category_tree
6/6 passing latest checkself-healing
Endpoints
6
Updated
21d ago

What is the Bhphotovideo API?

The B&H Photo Video API covers 6 endpoints for searching products, browsing category hierarchies, retrieving full product specifications, and pulling customer review summaries from bhphotovideo.com. The get_product_detail endpoint alone returns over a dozen distinct response objects including priceInfo, stockInfo, specifications, imageInfo, and brand — making it straightforward to build product data pipelines for cameras, audio, lighting, and other photography gear.

Try it
Page number for pagination
Sort order: BS (Best Sellers), RE (Relevance), PLH (Price Low to High), PHL (Price High to Low), CR (Customer Rating)
Search keyword
api.parse.bot/scraper/ed4a2459-d6a9-4c48-8055-6992602eecbe/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/ed4a2459-d6a9-4c48-8055-6992602eecbe/search_products?page=1&sort=BS&query=sony+camera' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace bhphotovideo-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""B&H Photo Video SDK — search, browse, and inspect products."""
from parse_apis.b_h_photo_video_api import BHPhoto, Sort, ProductNotFound

client = BHPhoto()

# Search for mirrorless cameras sorted by relevance, capped at 5 results.
for product in client.products.search(query="mirrorless camera", sort=Sort.RE, limit=5):
    print(product.name, f"${product.price}", product.stock_status)

# Drill into one product's full detail via .first()
top = client.products.search(query="sony a7", sort=Sort.BS, limit=1).first()
if top:
    detail = client.products.get(sku=top.sku)
    print(detail.name, detail.item_code, f"${detail.price}")

    # Sub-resource: review summary for that product
    reviews = detail.reviews.get()
    print(f"Rating: {reviews.average_rating} from {reviews.num_reviews} reviews")
    print("Histogram:", reviews.rating_histogram)

# Browse a category (Mirrorless Cameras = 16158)
for cam in client.products.by_category(category_id="16158", sort=Sort.PLH, limit=3):
    print(cam.name, f"${cam.price}", "used" if cam.is_used else "new")

# List top-level category departments
for cat in client.categories.list(limit=3):
    print(cat.name, cat.id)

# Typed error handling for a missing product
try:
    client.products.get(sku="0000000-REG")
except ProductNotFound as exc:
    print(f"Product not found: {exc.sku}")

print("exercised: products.search / products.get / reviews.get / products.by_category / categories.list")
All endpoints · 6 totalmissing one? ·

Search for products by keyword. Returns a paginated list of products with basic details including pricing, stock status, images, and available filters for refining results.

Input
ParamTypeDescription
pageintegerPage number for pagination
sortstringSort order: BS (Best Sellers), RE (Relevance), PLH (Price Low to High), PHL (Price High to Low), CR (Customer Rating)
queryrequiredstringSearch keyword
Response
{
  "type": "object",
  "fields": {
    "count": "integer total number of matching products",
    "items": "array of product objects with pricing, stock, images, and core info",
    "filters": "array of filter groups with available values for refining search"
  },
  "sample": {
    "data": {
      "count": 456,
      "items": [
        {
          "sku": "1970580-REG",
          "name": "Sony a7R VI Mirrorless Camera",
          "price": 4498,
          "is_used": false,
          "itemCode": "SOA7R6",
          "image_url": null,
          "review_count": null,
          "stock_status": "New Item - Coming Soon",
          "review_rating": null
        }
      ],
      "filters": [
        {
          "id": "fct_category",
          "name": "Category",
          "type": "REGULAR",
          "availableValues": [
            {
              "id": "mirrorless_system_cameras_16158",
              "name": "Mirrorless Cameras",
              "count": 356
            }
          ]
        }
      ]
    },
    "status": "success"
  }
}

About the Bhphotovideo API

Search and Browse

The search_products endpoint accepts a query string and returns a paginated list of matching products alongside a filters array you can use to drill down by brand, price range, or other attributes. Sort order is controlled by the sort parameter using codes like BS (Best Sellers), PLH (Price Low to High), or CR (Customer Rating). The count field in the response tells you total matching products, which you can use to calculate page depth. The get_category_products endpoint works the same way but is scoped to a specific category_id — for example, 9811 for Digital Cameras or 16158 for Mirrorless Cameras.

Product Detail and Specifications

get_product_detail takes a sku parameter (with or without a suffix like -REG) and returns a rich payload. The specifications object contains grouped spec items covering technical details for the product. priceInfo includes current price and savings data. stockInfo provides inventory status and a human-readable statusMessage. The brand object includes an isAuthorizedDealer flag, which is useful for filtering gray-market concerns. imageInfo returns arrays of product images.

Category Tree

get_category_tree requires no inputs and returns the full navigational category hierarchy — top-level departments with nested subcategories, images, and URLs. This is useful for building a local mirror of B&H's product taxonomy or seeding a crawl list of category IDs for use with get_category_products.

Reviews and Used Inventory

get_product_reviews_summary returns a snapshot object containing ratingHistogram, numReviews, and averageRating for a given SKU. It does not return individual review text. get_used_products returns a paginated list of used and refurbished inventory items with pricing and stock details, using the same sort parameter codes as the other listing endpoints.

Reliability & maintenanceVerified

The Bhphotovideo API is a managed, monitored endpoint for bhphotovideo.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bhphotovideo.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official bhphotovideo.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
6d ago
Latest check
6/6 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Track real-time pricing and stock status for camera gear across multiple SKUs using get_product_detail
  • Build a product comparison tool for mirrorless cameras using specifications and priceInfo fields
  • Seed a product catalog with B&H's category hierarchy via get_category_tree and then populate listings with get_category_products
  • Monitor used and refurbished equipment availability with get_used_products for resale or deal-alert applications
  • Aggregate average ratings and review counts from get_product_reviews_summary across a watchlist of SKUs
  • Power a search autocomplete or product recommendation engine using search_products with sort and filter parameters
  • Verify authorized dealer status for a brand before surfacing a product listing using the brand.isAuthorizedDealer field
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does B&H Photo Video have an official developer API?+
B&H does offer a partner affiliate API, but it is gated behind an application and approval process through their affiliate program. Public documentation is limited and access is not self-serve. This Parse API provides structured access to the same product, category, and review data without requiring affiliate approval.
What does `get_product_reviews_summary` return, and does it include individual review text?+
The endpoint returns a snapshot object containing averageRating, numReviews, and a ratingHistogram showing the distribution of ratings. It does not return individual review text, reviewer names, or review dates. The API covers aggregate review statistics only. You can fork it on Parse and revise to add an endpoint that fetches individual review content.
Can I filter search results by specific attributes like sensor size or lens mount?+
The search_products and get_category_products endpoints return a filters array in the response that shows available filter groups and their values for a given query or category. However, passing those filter values as input parameters to narrow results is not currently supported by these endpoints. You can fork it on Parse and revise to add filter input parameters.
How does pagination work across listing endpoints?+
The search_products, get_category_products, and get_used_products endpoints all accept an integer page parameter. The count field in listing responses gives the total number of matching items, which you can use alongside a known page size to calculate how many pages exist for a given query or category.
Does the API return international pricing or regional availability?+
The priceInfo and stockInfo fields reflect US pricing and US inventory status from bhphotovideo.com. International pricing, regional tax variations, and shipping availability by country are not currently exposed. You can fork it on Parse and revise to add region-specific logic if needed.
Page content last updated . Spec covers 6 endpoints from bhphotovideo.com.
Related APIs in EcommerceSee all →
bestbuy.com API
Search Best Buy's entire product catalog and get instant autocomplete suggestions while browsing, then pull up detailed pricing, availability, and stock information for any item. Easily sort through results, look up multiple products at once, and discover what's trending in real-time.
buybuybaby.com API
Search and browse buybuy BABY products across categories, view detailed product information including prices and reviews, and discover featured items from the home page. Access reliable, up-to-date inventory data to compare products and make informed purchasing decisions.
rei.com API
Search and browse REI's full catalog of outdoor gear and clothing, compare detailed product specifications, check real-time store availability, and read customer reviews to find the perfect equipment for your adventures. Explore products by category or use targeted searches to discover gear that matches your needs, all with instant access to pricing and local stock information.
backmarket.com API
Search and browse refurbished electronics across Back Market's catalog, compare pricing by condition, and read seller and product reviews to find the best deals. Filter by product categories and access detailed information about listings to make informed purchasing decisions.
keh.com API
Search and browse used cameras, lenses, and photography equipment from KEH Camera's inventory with filters for brand, price range, product grade, and type. Get autocomplete suggestions to refine your search and find the perfect gear at the right price.
amazon.com API
Search and browse Amazon products, reviews, offers, and deals, then manage your shopping cart all through a single integration. Get detailed product information, seller profiles, and best sellers to compare prices and make informed purchasing decisions.
hepsiburada.com API
Search and browse products on Hepsiburada with access to detailed product information, pricing, customer reviews, categories, and active campaigns. Retrieve comprehensive product data to power shopping, research, or price-comparison applications.
newegg.com API
Search Newegg's product catalog and retrieve listings, specifications, customer reviews, Q&A, category trees, and daily deals.