# Minne Handmade Marketplace Scraper (`maximedupre/minne`) Actor

Collect public Minne handmade listings by category or across all available categories. Get Japanese titles and descriptions, JPY prices, shop names, product links, images, review counts, and favorites.

- **URL**: https://apify.com/maximedupre/minne.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** E-commerce, Marketing, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.70 / 1,000 handmade listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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

### 🧵 Build a Minne handmade catalog

For ecommerce researchers, handmade sellers, and developers, this Actor collects public product listings from minne.com and saves one structured row per listing. Review Japanese titles and descriptions, categories, JPY prices, shop names, product links, image links, shop review counts, and favorite counts in an Apify dataset.

Use category names to focus a run, or leave Categories empty for all available categories. Set a maximum when you want a smaller sample.

**Use cases**

- Build a Japanese catalog with **[Japanese Handmade Marketplace](https://apify.com/maximedupre/minne/examples/japanese-handmade-marketplace)** for product research.
- Collect public category pages with **[Handmade Marketplace Scraper](https://apify.com/maximedupre/minne/examples/handmade-marketplace-scraper)** and review the returned rows.
- Compare Minne titles, prices, and shops with **[Minne Products](https://apify.com/maximedupre/minne/examples/minne-products)**.
- Save a focused category sample with **[Minne Listings](https://apify.com/maximedupre/minne/examples/minne-listings)** for your next run.
- Read source-native listing data through **[Minne Scraper](https://apify.com/maximedupre/minne/examples/minne-scraper)** in an Apify dataset.

#### 📦 Minne listing rows at a glance

**What each row contains**

Each dataset row is one public Minne handmade product listing. It keeps the Minne item ID, title, creator or shop name, category, price in JPY, source Japanese description or material text, product URL, image URLs, shop review count, and favorite count.

**Source text**

Titles, descriptions, and categories stay as Minne publishes them. The Actor does not translate that text.

#### ▶️ Run a focused Minne collection

**Run steps**

1. Leave Categories empty to collect listings from all available categories, or enter one or more Minne category names.
2. Set Maximum listings if you want to stop after that many listing records. Leave it empty to return all available results until the source is exhausted.
3. Start the Actor and open the run's dataset to read the structured rows.

**Access**

No Minne sign-in or buyer-supplied source credential is needed. The Actor reads public listing pages, and it handles ordinary Minne source throttling during collection.

#### ⚙️ Input

**Input fields**

| Field | Type | What it does |
| --- | --- | --- |
| `categories` | array of strings | Optional Minne category names. Leave it empty to collect listings from all available categories, or add one or more names to narrow the run. |
| `maxItems` | integer | Optional maximum number of listing records to return. Leave it empty to return all available results until the source is exhausted. |

**Example input**

This public input comes from a successful default run:

```json
{
  "maxItems": 20
}
```

#### 🧾 Output

**Run output**

| Field | Type | What it does |
| --- | --- | --- |
| `datasetUrl` | string | Links to the collected Minne listing records in the run's default dataset. |

The run output is a link. Open it to browse or download the listing rows.

**Listing rows**

| Field | Type | What it does |
| --- | --- | --- |
| `itemId` | string | Minne item identifier for the listing. |
| `title` | string | Product title as shown on Minne. |
| `shopName` | string | Creator or shop name as shown on Minne. |
| `category` | string | Minne category text as shown on Minne. |
| `priceJpy` | integer | Listing price in Japanese yen (JPY). |
| `description` | string | Product material or description text as shown on Minne. |
| `productUrl` | string | Minne product page URL. |
| `imageUrls` | array of strings | Image URLs shown on the product page. |
| `shopReviewCount` | integer | Creator shop review count. |
| `favoriteCount` | integer | Favorite count for the listing. |

**Representative listing row**

This genuine row comes from a successful default run. The Japanese text and public URLs are shown as returned.

```json
{
  "itemId": "46081947",
  "title": "大人気の一粒ミニフラワー💐　喫茶店シリーズ　ピアス　and イヤリング",
  "shopName": "yuruyuru.jp",
  "category": "ピアス",
  "priceJpy": 1760,
  "description": "【yuru.yuru （ゆるゆる）】\n\n作品をご覧いただき、\nありがとうございます😊\n\nこちらは人気のガラスフラワーシリーズです✨\n夏にピッタリのクリアなガラスが\nキラキラ輝いて耳元が華やかになります🌸\n\n作品はコラージュ梱包してお届けさせていただきます🌷\n梱包の様子は下記↓↓\n\n【yuru.yuru YouTube】\n\nhttps://youtube.com/@yuruyuru-mb5yx?si=GbZdZf1EFEJHtg3U\n\n◻︎発送までにお時間を頂いております🙇‍♀️\n◻︎ハンドメイド作品のため、\n　既製品の強度には劣ります。\n　あらかじめご了承ください🙇‍♀️\n◻︎原則キャンセルや返品は出来かねます🙇‍♀️\n　（こちらに不備がある場合を除き）\n◻︎お直しについて、3ヶ月以内の破損は無料です✨\n◻︎プレゼント用にコラージュボックスを追加する場合\n　＋250円頂戴いたします🙇‍♀️",
  "productUrl": "https://minne.com/items/46081947",
  "imageUrls": [
    "https://static.minne.com/productimages/244433803/w1600xh1600/e43ef86a07e6bf0f24aa268bb64fa76a9b33304d.jpeg?1786170477",
    "https://static.minne.com/productimages/244433558/w1600xh1600/10ddfa790d468d5e73b1b336576e8270fde762cb.jpeg?1786092990",
    "https://static.minne.com/productimages/244433557/w1600xh1600/9d6085953f289d51b7f23f340631853a81d0e502.jpeg?1786092990",
    "https://static.minne.com/productimages/244433559/w1600xh1600/04164123dc69bc72d9b7f924d5f83f6396abf7f4.jpeg?1786092990",
    "https://static.minne.com/productimages/244433560/w1600xh1600/1e8a89a0ec74a143df25bcc33b16604eddd0db7b.jpeg?1786092990",
    "https://static.minne.com/productimages/244433671/w1600xh1600/3001dc02bf4b927160f2c4fe3e101b736a1ababa.jpeg?1786093129",
    "https://static.minne.com/productimages/244433556/w1600xh1600/8038625222edebafd97ced7d4e0fee307ee4a41b.jpeg?1786092990",
    "https://static.minne.com/productimages/244433836/w1600xh1600/1732ce2b55a61549ef0acb20c95fab98c0a9f15f.jpeg?1786093338"
  ],
  "shopReviewCount": 642,
  "favoriteCount": 11
}
```

#### 💳 Pricing

This Actor uses pay-per-event pricing. The primary event charges once for each handmade listing saved to your dataset. A run that saves no listings does not trigger this listing charge.

#### 🔌 Integrations

**Dataset access**

Read the structured rows from the default Apify dataset after a run. You can browse or download the dataset from Apify.

**Video guide**

https://www.youtube.com/watch?v=bNACk1\_S\_6w\&list=PLObrtcm1Kw6MUrlLNDbK9QRg8VDJg0gOW\&index=4

#### ❓ FAQ

##### What is Minne?

Minne is a marketplace for handmade products. This Actor reads public Minne listing pages and keeps their source text.

##### Can I collect Creema listings?

No. This Actor supports minne.com only. Creema and other marketplaces are outside its scope.

##### Can I choose more than one Minne category?

Yes. Add one or more Minne category names to one run. Leave Categories empty to collect listings from all available categories.

##### What happens when Maximum listings is empty?

The Actor returns all available results until the source is exhausted. Set a positive number when you want to stop earlier.

##### Do I need a Minne account or source credential?

No. The Actor reads public listing pages and does not require a Minne sign-in or a buyer-supplied source credential.

##### Is the Japanese listing text translated?

No. Product titles, descriptions, and categories stay in the Japanese text published by Minne.

##### Can I buy products or access private shop data?

No. The Actor collects public listing data only. It does not purchase items, manage accounts, or collect private shop content.

### 📝 Changelog

**0.0: Initial release**

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~minne/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Related Actors

- [Etsy Keywords Research Tool](https://apify.com/maximedupre/etsy-keywords-research-tool) — find Etsy autocomplete phrases for handmade product SEO.
- [Allegro Scraper](https://apify.com/maximedupre/allegro-scraper) — collect marketplace product listings with prices, sellers, images, delivery, and condition.
- [Trendyol Scraper](https://apify.com/maximedupre/trendyol-scraper) — collect product, seller, review, and Q\&A rows from public Trendyol pages.
- [Amazon Price Tracker](https://apify.com/maximedupre/amazon-price-tracker) — save public Amazon price snapshots for product comparisons.
- [Minne Handmade Marketplace Scraper](https://apify.com/jungle_synthesizer/minne-handmade-marketplace-scraper) — compare another Minne listing collection with item, price, creator, category, review, favorite, and image fields.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `categories` (type: `array`):

Optional Minne category names. Leave this list empty to collect listings from all available categories.

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

Optional maximum number of listing records to return. Leave it empty to return all available listings until the source is exhausted.

## Actor input object example

```json
{
  "maxItems": 20
}
```

# Actor output Schema

## `datasetUrl` (type: `string`):

URL for the collected listing records.

# 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 = {
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/minne").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 = { "maxItems": 20 }

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/minne").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 '{
  "maxItems": 20
}' |
apify call maximedupre/minne --silent --output-dataset

```

## MCP server setup

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

```

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/QUEhrGaUMFdQ8MBki/builds/kFgbnXu1VqfP0Lrx1/openapi.json
