# Tackleberry B-net Japan Fishing Tackle Scraper (`fruitful_quintessence/tackleberry-scraper`) Actor

Scrape Tackleberry B-net, Japan's new & used fishing tackle marketplace. Get product prices, stock status, and discount data for JDM reels, rods, and lures.

- **URL**: https://apify.com/fruitful\_quintessence/tackleberry-scraper.md
- **Developed by:** [atushi ino](https://apify.com/fruitful_quintessence) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Tackleberry B-net Japan Fishing Tackle Scraper — JDM Reels, Rods & Lures

> **Scrape Tackleberry B-net (`b-net.tackleberry.co.jp`) — Japan's largest hybrid new & used fishing tackle marketplace.** Capture real-time product prices, discount rates, stock status, and category metadata for JDM (Japan Domestic Market) reels, rods, lures, lines, and accessories. Built for resellers, price-monitoring dashboards, and market research on Japanese fishing gear.

🎣 JDM fishing tackle · 🪝 Used & new reels · 📉 Price drop alerts · 📦 Stock tracking · 🇯🇵 Japan ecommerce data

***

### 🚀 Hero

Tackleberry operates **200+ retail stores across Japan** plus a growing network of physical outlets in **Taiwan, Hong Kong, Vietnam, Thailand, and Cambodia**. Their B-net marketplace lists tens of thousands of items — a mix of new factory-fresh gear and pre-owned tackle from trade-ins. Pricing for rare discontinued rods and collector-grade reels fluctuates daily.

- **11 structured fields** per product (price, regularPrice, discountRate, inStock, isUsed, etc.)
- **Keyword + category search** with optional **used-item filter** (`sale_type[]=3`)
- **Pagination** through all result pages (60 items/page)
- **Stock detection** from listing-page text
- **Cloudflare-free** — server-side rendered HTML, httpx-only, no Playwright needed
- **robots.txt compliant** — respects the site's published crawling rules

***

### 💡 Use Cases

#### 1. Price Monitoring & Reseller Flipping

Track price drops on high-value JDM items like **Shimano Antares**, **Daiwa Steez**, or **Megabass Orochi** rods. Schedule a daily run with a keyword list, then pipe results into Slack or Google Sheets to alert when an item crosses your buy threshold. Useful for cross-border resellers shipping from Japan to overseas buyers on eBay, Buyee, or ZenMarket.

```json
{ "keyword": "アンタレス", "maxItems": 200 }
```

#### 2. Used Tackle Inventory Surveillance

Collectors hunt for **discontinued lures, vintage reels, and rare rods** that only show up briefly on B-net before being snapped up. Run this Actor on a 6-hour schedule filtered to `sale_type[]=3` (used only) to catch new listings the moment they appear. Pair with a webhook for instant notification when a target SKU becomes available.

```json
{ "categoryId": 12, "maxItems": 100 }
```

#### 3. Japan Fishing-Gear Market Research

Build historical price datasets for JDM tackle categories to analyze **seasonal discount patterns, brand pricing tiers, and category-level supply**. Ideal input for a price-comparison site, an affiliate deal aggregator, or a B2B data product sold to fishing retailers and proxy-buying services like OneMall or Sendico.

```json
{ "categoryId": 30, "maxItems": 1000 }
```

***

### 📥 Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `keyword` | string | one of these | Search keyword (Japanese), e.g. `シマノ`, `アンタレス`, `エギング`, `バス` |
| `categoryId` | integer | one of these | Category ID from the B-net category URL |
| `maxItems` | integer | optional | Maximum results to return. Default: `100`. Ceiling: `5000` |
| `proxyConfiguration` | object | optional | Apify proxy config. Use `country: "JP"` for a Japanese origin IP |

> You must provide **either** `keyword` **or** `categoryId`. Supplying both runs keyword first, then category as a follow-up batch.

#### Example Category IDs

| Category | ID |
|----------|-----|
| Rods (ロッド) | `30` |
| Reels (リール) | `12` |
| Lures (ルアー) | `45` |
| Lines (ライン) | `60` |
| Tackle Box / Bag | `75` |

***

### 📤 Output

```json
{
  "productId": "1234888",
  "title": "エメラルダスXボート65LS-S・E",
  "name": "エメラルダスXボート65LS-S・E",
  "price": 15246,
  "regularPrice": 21780,
  "discountRate": 30,
  "imageUrl": "https://b-net.tackleberry.co.jp/html/upload/save_image/no_image_product.png",
  "productUrl": "https://b-net.tackleberry.co.jp/products/detail/1234888",
  "isUsed": true,
  "categoryId": 12,
  "inStock": true
}
```

| Field | Type | Description |
|-------|------|-------------|
| `productId` | string | Unique product ID extracted from the detail URL |
| `title` / `name` | string | Product name (Japanese) |
| `price` | int | Current tax-included sale price (JPY) |
| `regularPrice` | int | Original list price before discount (JPY) |
| `discountRate` | int | Percentage discount (0–100) |
| `imageUrl` | string | Absolute image URL (may be a `no_image` placeholder) |
| `productUrl` | string | Absolute product detail page URL |
| `isUsed` | bool | `true` if pre-owned, `false` if new |
| `categoryId` | int | Echo of the `categoryId` used (or `0` for keyword-only) |
| `inStock` | bool | `true` if in stock, `false` if sold out |

***

### 💰 Pricing

Published on the **Apify Store** at standard marketplace rates:

- **Pay-per-result**: `$0.50` per 1,000 results downloaded
- **Compute**: Apify platform units consumed (typically a few cents for 100 items)
- **No monthly minimum** — pay only for what you use
- **Free trial** with every new Apify account

A typical 100-item run costs **$0.05–$0.10**. Heavy users (10k+ results/month) can apply **rental pricing** via the Apify Store listing. Apify takes a 20% platform fee; the rest supports ongoing maintenance.

***

### ⚠️ Limitations

- **Listing-page data only.** Parses B-net search-results pages. For deep per-product detail (full description, multiple photos, seller info), pair this Actor with a separate detail-page scraper.
- **Japanese-language site.** All product titles are returned in Japanese. Add a translation layer downstream if you need English titles.
- **Soft rate limiting.** Waits **1–3 seconds** between page requests to be polite to B-net. Large jobs (5,000 items) take several minutes.
- **No login required.** All scraped data is publicly accessible without an account.
- **`imageUrl` placeholder.** Items without an uploaded image return the site's `no_image_product.png` URL.
- **Category coverage.** Deep sub-categories (`categoryId > 100`) may have sparser inventory. Run a small test first.
- **Currency.** All prices are in **Japanese Yen (JPY)**.

***

### ❓ FAQ

**Q1. Can I filter for used items only?**
Yes. Pass `categoryId` and the Actor automatically appends `sale_type[]=3` to the URL, restricting results to pre-owned listings. Recommended for collectors hunting rare discontinued gear.

**Q2. How fresh is the data?**
Real-time. Every run fetches live data directly from B-net — no caching layer. A 09:00 JST scheduled run sees exactly what shoppers see at that moment.

**Q3. Can I schedule recurring runs?**
Yes. Open the **Schedule** tab in Apify Console and set any interval (hourly, daily, weekly). Pair with a webhook → Slack notification for price-drop alerts.

**Q4. What proxy should I use?**
B-net does not block datacenter IPs, so the default Apify proxy works. For a Japanese origin IP (occasionally the site serves slightly different inventory by region), use `country: "JP"`.

**Q5. Is this Actor TOS-compliant?**
Yes. B-net's `robots.txt` permits general crawler access to the search and product pages this Actor targets. We respect `Crawl-delay` and identify ourselves with a descriptive User-Agent. The site has no published prohibition on automated data collection for non-commercial research.

**Q6. Can I export results to Google Sheets or Notion?**
Yes. Use Apify's **Connectors** integration — one-click export to Slack, Google Sheets, Notion, Supabase, or any HTTP webhook.

**Q7. Do you offer an API or bulk data feed?**
This Actor is the API. Run it on a schedule, accumulate results in Apify's dataset, and download as JSON/CSV/Excel on demand. For continuous bulk feeds, contact the developer via Apify.

**Q8. What happens if B-net changes its HTML structure?**
The Actor includes regex-based fallbacks and is monitored weekly. If a structural change breaks parsing, the maintainer ships a fix within 48 hours and the version is bumped in the Changelog below.

***

### 🔌 Integrations

- **Apify Connectors** — push results to Slack, Notion, Supabase, Google Sheets, or GitHub automatically.
- **Scheduling** — set any cron interval via the Schedule tab (e.g. `0 9 * * *` for daily at 09:00).
- **Webhooks** — receive a POST request to your endpoint on every successful run.
- **MCP / AI agents** — pipe the dataset into Claude, GPT, or any MCP-compatible agent for downstream analysis.

***

### 📝 Changelog

#### 0.1.0 (2026-08-08)

- Initial release.
- Keyword search (Japanese text).
- Category search with optional used-item filter (`sale_type[]=3`).
- Pagination support (60 items per page).
- Stock detection from listing-page text.
- 11-field structured output.

***

### 🏷️ Tags

`japan` · `fishing` · `tackle` · `reel` · `rod` · `lure` · `used` · `b-net` · `tackleberry` · `ecommerce` · `price-monitoring` · `inventory-tracking` · `jdm` · `shimano` · `daiwa` · `megabass` · `marketplace` · `webscraping` · `apify-actor` · `japan-ecommerce` · `fishing-gear` · `outdoor`

> 日本語キーワード例: 釣り具、ルアー、リール、ロッド、シマノ、ダイワ、中古釣具、タックルベリー、釣具相場

***

### ⚖️ Disclaimer

This Actor is an independent data-collection tool. It is not affiliated with, endorsed by, or partnered with Tackleberry Co., Ltd. or `@Berry Net`. All trademarks (Shimano, Daiwa, Megabass, etc.) belong to their respective owners. Use of scraped data must comply with applicable laws and the target website's published terms.

# Actor input Schema

## `keyword` (type: `string`):

Search term, e.g. シマノ

## `categoryId` (type: `integer`):

Category ID from the category search URL

## `maxItems` (type: `integer`):

Maximum number of products to scrape

## `proxyConfiguration` (type: `object`):

Apify proxy configuration

## Actor input object example

```json
{
  "maxItems": 100
}
```

# Actor output Schema

## `productId` (type: `string`):

Product ID from URL

## `title` (type: `string`):

Product title

## `name` (type: `string`):

Alt text of product image

## `price` (type: `string`):

Tax-included price

## `regularPrice` (type: `string`):

Original price

## `discountRate` (type: `string`):

Discount percentage

## `imageUrl` (type: `string`):

Absolute image URL

## `productUrl` (type: `string`):

Absolute product page URL

## `isUsed` (type: `string`):

Whether the item is used

## `categoryId` (type: `string`):

Category ID used in query

## `inStock` (type: `string`):

Whether the item is in stock

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("fruitful_quintessence/tackleberry-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("fruitful_quintessence/tackleberry-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call fruitful_quintessence/tackleberry-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,fruitful_quintessence/tackleberry-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/VCKdDJ5BdT9Z8aIDf/builds/80dEakyQ65Pbnmpsd/openapi.json
