Bic Camera Scraper - Prices, Points, Specs & Reviews
Pricing
from $1.60 / 1,000 product results
Bic Camera Scraper - Prices, Points, Specs & Reviews
Scrape Bic Camera (biccamera.com) products: JPY price, list price and discount, Bic Point amount and rate, stock and delivery, spec table, image gallery, colour and capacity variants, plus review text with author, date, star rating and variant reviewed. Search by keyword, category or pasted links.
Pricing
from $1.60 / 1,000 product results
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
1
Bookmarked
1
Total users
0
Monthly active users
9 days ago
Last modified
Categories
Share
Bic Camera Scraper: Prices, Points, Specs and Reviews
Bic Camera Scraper turns biccamera.com, the online store of one of Japan's major consumer electronics chains, into a clean product data API. Get the yen price, the Bic Point reward and rate, stock and delivery status, the full specification table, image gallery, colour and capacity variants, and complete review text. Search by keyword or category, or paste product, search, category or review links, then export to JSON, CSV or Excel, or pull the results straight into your app through the API.
Why This Scraper?
- Japanese search that actually works. Keywords are encoded the way the site's own search box encodes them, not as plain UTF-8, so Japanese terms return real results instead of a silent zero.
- The full commercial picture in one row. Yen price, Bic Point amount and rate, the effective price after points, list price versus the site's common
オープン価格("open price"), and second-hand offers, all in the same record. - Availability and delivery, in the site's own words. Stock status, free shipping, the quoted delivery date and manufacturer warranty, exactly as the product page prints them.
- Deep enrichment on demand. Switch on the full spec table, image gallery, colour and capacity variants, and complete review text per product. Searches stay at the plain per-product rate unless you turn enrichment on.
- Built for monitoring. Incremental mode tracks a search over time (
NEW,UPDATED,UNCHANGED,REAPPEARED,EXPIRED), and Resume continues one interrupted run without re-charging what it already collected. - A real connection, no setup. The default proxy is the Japan-based connection this site actually accepts, so the actor works out of the box; other connection settings are refused by the site itself.
- Fails loudly, not silently. When the site cannot be reached at all, the run stops with a clear message instead of reporting an empty search as if nothing matched.
Use Cases
- Price and point tracking: watch yen price, Bic Point rate and effective price across a category or a watchlist to catch deals as they happen.
- Competitive and catalog research: pull full spec tables, variants and breadcrumbs to compare models across brands.
- Stock and delivery monitoring: alert on restocks, sold-out status or delivery-date changes for specific products.
- Review and sentiment analysis: collect full review text, star ratings and purchase channel to analyze customer feedback.
- Deal and marketplace feeds: feed price, points and availability into your own site, bot or spreadsheet.
Data You Get
Sample shape: values are illustrative placeholders, not from a live record.
| Field | Example |
|---|---|
itemId | "90000001" |
title | "サンプル Bluetoothスピーカー 防水対応 ネイビー" |
brand / modelNumber | "サンプルブランド|SampleBrand" / "SB-100" |
janCode / color | "4901234567890" / "ネイビー" |
url / breadcrumbs | product link / ["オーディオ", "スピーカー"] |
rank / isSponsored | position in the result grid / true for a PR placement |
price / currency | 6980 / "JPY" |
originalPrice / originalPriceText | filled only when the site prints a real list price / "オープン価格" when it does not |
discountPercent | filled only when both prices are numbers |
pointAmount / pointRate | 69 / 1 |
effectivePrice | 6911 (price minus points) |
usedPrice / usedOfferCount | cheapest second-hand offer, when the site lists one |
inStock / availabilityText | true / "在庫あり" |
freeShipping | true when the listing shows 送料無料 |
arrivalDate / deliveryText | quoted delivery date / the full delivery line as printed |
warranty | manufacturer warranty (メーカー保証年数), when published |
releaseDate / releaseDateText | ISO date / as printed |
thumbnail / images | main image / full gallery (with Fetch full product detail) |
specifications / description | spec table as key/value / product text (with Fetch full product detail) |
variants | colour/capacity siblings: type, title, price, stock, url (with Fetch full product detail) |
reviews | object: averageRating, totalReviewCount, ratingDistribution, items[] (with Fetch reviews) |
rating / reviewCount | 4.3 / 12 |
changeType / changedFields | "NEW", "UPDATED", "UNCHANGED", "REAPPEARED" or "EXPIRED" (incremental mode) |
firstSeenAt / lastSeenAt | ISO timestamps (incremental mode) |
source / scrapedAt | "listing" or "detail" / ISO timestamp |
Each review carries reviewId, author, date, rating, title, body, helpfulCount, variant (the colour or capacity the reviewer bought), purchaseChannel and images. A product with no reviews returns items: [] with totalReviewCount: 0, never a made-up value.
How to Use
- Pick a mode:
search(keywords and/or category) orurl(paste product, search, category or review links). - In search mode, add keywords and/or a category, then narrow with brand and sort order if you like. Switch on
Fetch full product detailand/orFetch reviewsonly for a small, targeted set: they add extra page reads and the enrichment charge. - Set Max products total to control run size and cost, then click Start.
- Download the dataset as JSON, CSV or Excel, or read it through the API.
Search a category by keyword:
{"mode": "search","searchTerms": ["カメラ"],"maxItems": 20}
Browse a category, narrowed by brand and sort order:
{"mode": "search","category": "001/120/001","brand": "ソニー|SONY","sortBy": "PRICE_ASC","maxItems": 50}
A small enrichment run on pasted product links:
{"mode": "url","urls": ["https://www.biccamera.com/bc/item/90000001/","https://www.biccamera.com/bc/item/90000002/"],"fetchDetails": true,"fetchReviews": true,"maxReviewsPerProduct": 20}
A category page filtered by price and stock:
{"mode": "url","urls": ["https://www.biccamera.com/bc/category/001/120/001/"],"minPrice": 10000,"maxPrice": 50000,"inStockOnly": true,"maxItems": 100}
Run it from your code
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("abotapi/biccamera-com-scraper").call(run_input={"mode": "search", "searchTerms": ["カメラ"]})for product in client.dataset(run["defaultDatasetId"]).iterate_items():print(product["title"], product["price"], product["currency"])
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('abotapi/biccamera-com-scraper').call({ mode: 'search', searchTerms: ['カメラ'] });const { items } = await client.dataset(run.defaultDatasetId).listItems();
Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.
What you're charged for
- Product result - once per product returned.
- Detail and review enrichment - once per product when
Fetch full product detailand/orFetch reviewsfetched extra pages for it. Charged once per product even when both toggles are on, never per review page. A pasted product link is always read from its full product page, so each product link you paste carries this charge even with both toggles off. - Actor start - the platform's standard start event.
Both enrichment toggles are off by default, so a plain search (or a pasted search or category link) only ever pays the per-product rate. This is also the recommended setting for broad searches, since enrichment adds page reads and can make a run slower. For an enrichment run, set a small Max products total, or paste the specific product URLs you want to inspect.
Resume and recurring updates
- Resume (
resumeFromRunId) continues one interrupted run: paste its run or dataset id and the actor skips everything already collected there, so you don't pay twice. - Incremental mode (
incrementalMode) is for running the same search again and again, for example daily. Each product is classifiedNEW,UPDATED(withchangedFields),UNCHANGED(suppressed and not billed unlessemitUnchangedis on),REAPPEAREDorEXPIRED(only after a run that scanned the whole tracked search, and only withemitExpired).stateKeynames or shares the stored state; left empty, the actor derives one automatically from the search, filters and detail/review settings, so different searches never mix state. With incremental mode off, output is exactly as before.
Send results into your apps (MCP connectors)
Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.
What gets written to the connector: a condensed, human-readable summary of each product, not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.
- Authorize a connector once under Apify -> Settings -> Integrations (Notion, Linear, Airtable, or Apify).
- Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
- For Notion, also set
notionParentPageUrlto the page where items should be created.
The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | search | search (keywords and/or category) or url (paste product, search-result, category or review links). |
searchTerms | array | ["カメラ"] | One keyword per line, Japanese or English. Leave empty and set only Category to browse a whole category. |
category | string | (none) | A Bic Camera category code as it appears in a category URL, e.g. 001120 or 001/120/001. |
brand | string | (none) | The site's own brand facet value, written exactly as the facet link shows it, e.g. ソニー|SONY. |
sortBy | string | RELEVANCE | One of the site's eight result orders: RELEVANCE, PRICE_ASC, PRICE_DESC, TOP_RATED, MOST_REVIEWED, FASTEST_DELIVERY, RELEASE_DATE, NEWEST. Search mode only. |
includeDiscontinued | boolean | false | Include products the site marks as no longer sold. Search mode only. |
groupVariations | boolean | false | Collapse colour/capacity siblings of the same model into a single result. Search mode only. |
urls | array | sample category link | Product, search-result or category page links to scrape. Pagination continues forward from any page number already in the URL. Search-mode settings are ignored in this mode. |
minPrice | integer | (none) | Only return products at or above this price, in yen. Applied to the products this run reads, not a native site filter. |
maxPrice | integer | (none) | Only return products at or below this price, in yen. Applied the same way as Minimum price. |
inStockOnly | boolean | false | Drop products the site shows as sold out, suspended or discontinued. |
fetchDetails | boolean | false | Optional enrichment: full spec table, description, model number, manufacturer list price, release date, breadcrumbs, full image gallery and colour/capacity variants. One extra page per product, plus the enrichment surcharge. |
fetchReviews | boolean | false | Optional enrichment: overall rating, total review count, a star-rating breakdown of the reviews fetched, and per-review author, date, rating, title, body, helpful votes, purchase channel and variant. One or more extra pages per product, plus the enrichment surcharge. |
maxReviewsPerProduct | integer | 20 | Cap on reviews fetched per product when Fetch reviews is on. 0 fetches every review the site lists. |
maxPages | integer | (none) | Stop after this many result pages per keyword, category or pasted URL. Empty = no page limit. |
maxItems | integer | 20 | Hard cap on total products returned across every keyword and URL. 0 = unlimited (still bounded by Max result pages per search). |
proxyConfiguration | object | Japan-based Apify Proxy (UNBLOCKER) | Connection settings. The default is what makes the actor work with nothing to set up; the site refuses other settings. |
resumeFromRunId | string | (none) | Paste a previous run id or dataset id to continue a large pull without returning or charging for products already collected there. |
incrementalMode | boolean | false | Turn on for daily or recurring monitoring of the same search. Returns only new and changed products on repeated runs. |
stateKey | string | (none) | Name this monitoring campaign, or share state across differently-configured runs. Left empty, the actor derives a key automatically from the search, filters and detail/review settings. |
emitUnchanged | boolean | false | Also return (and bill) products that have not changed since the last run, marked UNCHANGED. |
emitExpired | boolean | false | Also return (and bill) products from a previous run that are no longer found, marked EXPIRED. Only produced once a run has fully scanned the tracked search. |
mcpConnectors | array | (none) | Optional: send a summary of each product to apps you authorized under Integrations. |
notionParentPageUrl | string | (none) | Notion connector only: page under which item pages are created. |
maxNotifyListings | integer | 50 | Cap on items written to each connector per run. Does not affect the dataset. |
Output Example
Sample shape: values are illustrative placeholders, not from a live record.
{"itemId": "90000001","title": "サンプル Bluetoothスピーカー 防水対応 ネイビー","brand": "サンプルブランド|SampleBrand","modelNumber": "SB-100","janCode": "4901234567890","color": "ネイビー","url": "https://www.biccamera.com/bc/item/90000001/","breadcrumbs": ["オーディオ", "スピーカー"],"price": 6980,"currency": "JPY","originalPriceText": "オープン価格","pointAmount": 69,"pointRate": 1,"effectivePrice": 6911,"inStock": true,"availabilityText": "在庫あり","freeShipping": true,"releaseDate": "2025-04-01","specifications": {"防水性能": "IPX4","連続再生時間": "12時間","重量": "180g"},"variants": [{"optionType": "色", "title": "ブラック", "price": 6980, "inStock": true,"url": "https://www.biccamera.com/bc/item/90000002/"}],"images": ["https://image.biccamera.com/img/00000090000001_A01.jpg"],"rating": 4.3,"reviewCount": 12,"reviews": {"averageRating": 4.3,"totalReviewCount": 12,"ratingDistribution": {"1": 0, "2": 0, "3": 1, "4": 4, "5": 7},"items": [{"reviewId": "0000001","author": "サンプルユーザー","date": "2026-01-15","rating": 5,"title": "レビュータイトルの例","body": "これはサンプルのレビュー本文です。実際の投稿内容ではありません。","helpfulCount": 2,"variant": "色:ネイビー","purchaseChannel": "ビックカメラ.comで購入","images": []}]},"source": "detail","scrapedAt": "2026-01-20T03:00:00Z"}
Plan Requirement
The default proxy setting is the Japan-based connection this site requires, and it works out of the box. If a run is ever started on a different connection setting, the site refuses it and the run switches itself back to the working tier automatically, so you still get results. For large or frequent runs, keep the default; it is also the tier that best fits this site's own protection.
FAQ
How much does it cost?
You pay per product returned, with detail and review enrichment billed only when you switch those on or paste individual product links (which are always read from the full product page). The Pricing tab shows the current rates. Use Max products total to cap the cost of any run.
Is it legal to scrape Bic Camera?
This actor collects only publicly available catalogue data. You are responsible for how you use it: follow Bic Camera's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Bic Camera is a trademark of its owner; this actor is not affiliated with or endorsed by Bic Camera.
Can I get only new or changed products on a schedule?
Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new and updated products, and unchanged ones are not billed.
Why does a product show オープン価格 instead of a list price?
Japanese electronics are commonly sold at オープン価格 ("open price"), meaning the manufacturer publishes no list price at all. When that is what the product page prints, originalPriceText reports it exactly; originalPrice and discountPercent are filled in only when there is a real number to compare against, never invented.
Why did my run fail instead of returning an empty dataset?
If the site refuses every request, the run stops with a clear message so "no products found" is never confused with "nothing could be read". Run it again in a few minutes.
Can I use it with AI agents or MCP?
Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.
🔗 Want more electronics data?
Pair this actor with these related scrapers from the same team:
| 🔌 Thegioididong Scraper Scrape thegioididong.com products with full specifications, current & original price... | 🔌 Boulanger.com Scrape Boulanger (boulanger.com) electronics and home-appliance products: current price... |
| 🔌 Yodobashi Scraper Scrape yodobashi.com electronics and appliances: JPY price, list price and discount... | 🔌 Fnac Scraper Scrape Fnac (fnac.com) products: current price plus strike-through discount, colour/model... |
| 🔌 Dienmayxanh Scraper Scrape dienmayxanh.com home appliances and electronics with full specifications, current... | 🔌 A101 Turkey Scraper Scrape A101.com.tr products across A101 Ekstra and A101 Kapıda. Extract 80+ fields... |
💬 Support & custom scrapers
- 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
- 🛠️ Need another site, extra fields or a private build? Email abotapi@proton.me or message Telegram @abotapi.
- ⭐ Enjoying it? A quick review on the actor page helps other users find it.