# Hwahae Scraper — K-Beauty Products, Rankings & Reviews (`hipersoft/hwahae-scraper`) Actor

Scrape Hwahae (화해), Korea's #1 cosmetics app: product search, rankings (trending, category, skin type, age, best new), ratings, review counts, prices, review topics, and full reviews with skin type, age group and gender. Export CSV/JSON.

- **URL**: https://apify.com/hipersoft/hwahae-scraper.md
- **Developed by:** [hiper soft](https://apify.com/hipersoft) (community)
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.001 / result

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Hwahae Scraper: K-Beauty Products, Rankings and Reviews from Korea's #1 Cosmetics App

**Hwahae Scraper** extracts data from **Hwahae (화해)**, **Korea's most popular cosmetics review and ranking app** with millions of users and reviews of **skincare, makeup, sunscreen, cleansers, hair care and body care**. Search products by **keyword or brand**, collect the official **Hwahae rankings** (**trending, by category, by skin type, by age group, shopping trending, best new products and brand rankings**), and pull **full reviews**. For every product you get the **product name (Korean and English), brand, rating, review count, list price, size, USD price, Hwahae shop deal price and discount, rank and rank change, top review topics, image and link**; for every review the **rating, what reviewers liked, what they disliked, usage tips, skin type, age group, gender, sensitive/acne-prone/atopic flags, likes, photos and date**. Export to **CSV, Excel or JSON**. Ideal for **K-beauty brands, importers and distributors, cosmetics retailers, market researchers, product developers and beauty marketers**.

### What does Hwahae Scraper do?

- 🔎 **Product search** in Korean or English (선크림, 토너, cica, retinol, brand names…).
- 🏆 **Rankings**: trending, category, skin type, age group, shopping, best new, brands.
- ⭐ **Ratings and review counts**, plus **top review topics** ("moisturising", "no irritation"…).
- 💰 **Prices**: list price, size, USD conversion, Hwahae shop deal and discount.
- 💬 **Reviews**: likes, dislikes and tips with **skin type, age group and gender**.
- 🧴 **Skin concern flags**: sensitive, acne-prone, atopic.
- 🌐 **English product and brand names** where available.

### What data can you scrape from Hwahae?

| Field | Description |
|---|---|
| Product | ID, name (KR/EN), brand (KR/EN), brand ID, image, link |
| Ratings | Average rating, review count, review topics |
| Price | List price (KRW), size, USD price, shop deal price, discount |
| Ranking | Rank, rank change, new in ranking, source ranking |
| Review | ID, rating, good points, bad points, tips, likes, photos, date |
| Reviewer profile | Skin type, age group, gender, sensitive / acne-prone / atopic |

### Use cases for K-beauty data

- **K-beauty brands**: monitor ratings, review sentiment and rankings for your products and competitors.
- **Importers and distributors**: find trending Korean products and rising brands before they go global.
- **Retailers and marketplaces**: pick best-sellers by category, skin type and age group.
- **Product development**: learn what users like and dislike in each category.
- **Market research**: track the Korean cosmetics market week by week.

### How to scrape Hwahae

1. Click **Try for free** to open Hwahae Scraper in Apify Console.
2. Enter **search keywords** and/or choose **rankings**.
3. Turn on **Reviews for found products** if you need reviews, and set the limits.
4. Click **Start** and download the results as **CSV, Excel or JSON**.

### Input

#### Example input

```json
{
  "searchQueries": ["선크림", "cica"],
  "rankingTypes": ["trending", "best-new"],
  "maxProductsPerSource": 50,
  "includeReviews": true,
  "maxReviewsPerProduct": 20
}
```

| Field | Description |
|---|---|
| **Search keywords** | Korean or English product searches. |
| **Rankings** | trending, category, skin, age, shopping, best-new, brand. |
| **Ranking IDs** | Specific ranking IDs (advanced). |
| **Product IDs for reviews** | Collect reviews for known products. |
| **Max products per search / ranking** | 0 = all. |
| **Reviews for found products / Max reviews per product** | Review collection. |
| **Max results** | Total row limit. |

### Output

#### Product example

```json
{
  "type": "product",
  "productId": 2043138,
  "name": "밸런스풀 시카 톤업 선크림 [SPF50+/PA++++]",
  "nameEn": "Balanceful Tone up Sun Cream [SPF50+/PA++++]",
  "brand": "토리든",
  "brandEn": "Torriden",
  "rating": 4.53,
  "reviewCount": 1308,
  "price": 25000,
  "capacity": "60ml",
  "priceUsd": 18.67,
  "rank": null,
  "url": "https://www.hwahae.co.kr/products/26cb55a574458a25fe70564e53421404",
  "source": "search: 선크림"
}
```

#### Review example

```json
{
  "type": "review",
  "reviewId": 11025739,
  "productId": 1971525,
  "rating": 4,
  "goodText": "하루종일 쌓인 먼지 시원하게 씻어주는 느낌이에요",
  "badText": "머릿결이 약간 건조하고 뻣뻣한 느낌",
  "skinType": "dry",
  "gender": "female",
  "ageGroup": "20s",
  "sensitiveSkin": true,
  "createdAt": "2026-10-06T21:02:43.000Z"
}
```

#### Output schema

| Field | Type | Description |
|---|---|---|
| `type` | string | `product`, `brand` or `review`. |
| `productId`, `name`, `nameEn`, `brand`, `brandEn`, `brandId`, `imageUrl`, `url` | mixed | Product. |
| `rating`, `reviewCount`, `reviewTopics` | mixed | Ratings. |
| `price`, `capacity`, `priceUsd`, `dealPrice`, `dealDiscountRate` | mixed | Price. |
| `rank`, `rankChange`, `isNewInRanking`, `source` | mixed | Ranking. |
| `reviewId`, `goodText`, `badText`, `tipText`, `likes`, `images`, `createdAt` | mixed | Review. |
| `skinType`, `ageGroup`, `gender`, `sensitiveSkin`, `acneProne`, `atopic` | mixed | Reviewer profile. |

### How much does it cost?

Hwahae Scraper uses **pay-per-result** pricing: a small fixed price per product or review, with automatic discounts on higher Apify plans. See the **Pricing** tab for the exact price.

### More beauty and retail data

- [kaufDA Scraper](https://apify.com/hipersoft/kaufda-scraper): German retail offers and prices.
- [Trusted Shops Scraper](https://apify.com/hipersoft/trustedshops-scraper): shop reviews and ratings.

### FAQ

**Is Hwahae data in Korean?**
Product names, brands and reviews are in Korean as published; English product and brand names are included when Hwahae provides them. Skin type and gender are translated to English.

**Are reviewer identities collected?**
No. Only the reviewer's skin type, age group, gender and skin-concern flags are kept; names and profile photos are not collected.

**What formats can I export?**
CSV, Excel, JSON, XML, HTML and RSS, or read the results through the Apify API.

**Can I integrate Hwahae Scraper with other apps?**
Hwahae Scraper can be connected with almost any cloud service or web app thanks to [integrations on the Apify platform](https://apify.com/integrations). It works with [Make](https://apify.com/integrations/make), [Zapier](https://apify.com/integrations/zapier), [Slack](https://docs.apify.com/platform/integrations/slack), [Airbyte](https://docs.apify.com/platform/integrations/airbyte), [GitHub](https://docs.apify.com/platform/integrations/github), [Google Drive](https://docs.apify.com/platform/integrations/drive) and [many more](https://apify.com/integrations), plus the [Apify API](https://docs.apify.com/api/v2), JS/Python clients and MCP. Or use [webhooks](https://docs.apify.com/platform/integrations/webhooks) to trigger an action whenever a run finishes.

**Is it legal to scrape Hwahae?**
The scraper only collects publicly visible product information and anonymised review content. You are responsible for using the data in line with Hwahae's terms and applicable privacy law.

### Related Actors

- [kaufDA Scraper](https://apify.com/hipersoft/kaufda-scraper)
- [Trusted Shops Scraper](https://apify.com/hipersoft/trustedshops-scraper)

### Notes

Original clean-room implementation. Returns only public data. Not affiliated with Hwahae or Birdview.

# Actor input Schema

## `searchQueries` (type: `array`):

Product searches in Korean or English, e.g. 선크림 (sunscreen), 토너, cica, retinol, a brand name like Torriden.

## `rankingTypes` (type: `array`):

Hwahae rankings to collect (rank, rank change, product data).

## `rankingIds` (type: `array`):

Optional specific ranking IDs from Hwahae ranking links (theme_id / ranking id).

## `productIds` (type: `array`):

Optional numeric Hwahae product IDs to collect reviews for (e.g. 2124898).

## `maxProductsPerSource` (type: `integer`):

Limit products per keyword or ranking (0 = all).

## `includeReviews` (type: `boolean`):

Also collect reviews (good points, bad points, tips, rating, skin type, age group, gender) for every product found.

## `maxReviewsPerProduct` (type: `integer`):

Newest reviews per product (0 = all).

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

Stop after this many rows in total (0 = no limit).

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

Not needed in most cases.

## Actor input object example

```json
{
  "searchQueries": [
    "선크림"
  ],
  "maxProductsPerSource": 100,
  "includeReviews": false,
  "maxReviewsPerProduct": 20,
  "maxItems": 500,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

The results as dataset items.

# 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 = {
    "searchQueries": [
        "선크림"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("hipersoft/hwahae-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 = { "searchQueries": ["선크림"] }

# Run the Actor and wait for it to finish
run = client.actor("hipersoft/hwahae-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 '{
  "searchQueries": [
    "선크림"
  ]
}' |
apify call hipersoft/hwahae-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hipersoft/hwahae-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/lhi6bpVudIZG9z0rQ/builds/l65BABCIy3szfgFev/openapi.json
