# 통합 음원차트 API (Korean Music · K-pop Chart) – 멜론·지니·벅스·FLO·VIBE 올킬 (`k-data-lab/korean-music-chart-scraper`) Actor

멜론·지니·벅스·FLO·VIBE 실시간·일간·주간 차트를 한 번에 가져와 곡마다 플랫폼별 순위, 통합 순위, 올킬 여부를 하나의 표로. 5개 플랫폼 곡 검색과 곡 ID 매칭도. 로그인 없이 JSON·CSV, $0.25/1K행, 매달 500행 무료.

- **URL**: https://apify.com/k-data-lab/korean-music-chart-scraper.md
- **Developed by:** [K-Data Lab](https://apify.com/k-data-lab) (community)
- **Categories:** Social media, AI, Developer tools
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.15 / 1,000 결과 행 (unified or platform chart row)s

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

## 통합 음원차트 API (Korean Music · K-pop Chart) – 멜론·지니·벅스·FLO·VIBE 올킬

**멜론 · 지니 · 벅스 · FLO · 바이브(VIBE)의 실시간 · 일간 · 주간 차트를 한 번에 가져와 하나의 표로 합칩니다.** 곡마다 플랫폼별 순위, 통합 순위와 점수, 몇 개 플랫폼에 올랐는지, **올킬 여부**가 한 행에 나옵니다. 플랫폼별 원본 행도 같은 열 구성(`source` 칸으로 구분)으로 함께 받을 수 있고, 검색어 하나로 5개 플랫폼을 동시에 검색해 **플랫폼별 곡 ID를 서로 맞춰** 줍니다. 로그인도, 브라우저도 필요 없습니다.

| | |
|---|---|
| 💰 **가격** | 결과 행 **$0.25 / 1,000행** (약 350원). 5개 플랫폼 실시간 TOP100 통합 순위 ≈ 170행 ≈ $0.04 (약 60원) |
| 🎁 **무료** | 매달 결과 500행 무료 |
| ⚡ **속도** | 5개 플랫폼 차트 동시 수집: 실시간 TOP100 = 약 5초, 일간 최대 순위(950곡) = 약 7초 |
| 🔓 **로그인** | 필요 없음 (각 플랫폼에서 로그아웃 상태로 보이는 공개 차트·검색 결과만) |

**결과 미리보기**: 실제 실행 결과 (2026-11-02, 주간 차트, `outputMode: "unified"`). 1위 NEON은 멜론·지니·벅스·FLO 주간 1위라 `isAllKill: true`입니다.

| 통합 순위 | 곡 | 아티스트 | 멜론 | 지니 | 벅스 | FLO | 플랫폼 수 | 올킬 |
|---|---|---|---|---|---|---|---|---|
| 1 | NEON | A2O, A2O LITE | 1 | 1 | 1 | 1 | 4 | ✅ |
| 2 | 퇴사할게여 (Narr. 기안84) | 소연 (SOYEON) | 2 | 2 | 5 | 2 | 4 | – |
| 3 | 꿈꾸던 어른이 되었나요? | 머무르 | 3 | 3 | 2 | 4 | 4 | – |
| 4 | LOVE ATTACK | RESCENE (리센느) | 4 | 4 | 6 | 3 | 4 | – |
| 5 | 갑자기 | 아이오아이 (I.O.I) | 6 | 5 | 10 | 5 | 4 | – |

**바로 실행**: **Try for free**를 누르고 기본 입력 그대로 **Start** → 약 5초 뒤 5개 플랫폼 실시간 통합 순위가 나옵니다. 곡마다 플랫폼별 곡 ID·링크, ISRC, 발매일, 커버도 함께 들어갑니다 (전체 열은 아래 출력 예시).

> 비공식(unofficial) 도구입니다. Not affiliated with, endorsed or sponsored by Melon, Genie, Bugs, FLO, NAVER VIBE or their operators.

#### 🎵 무엇을 가져오나요?

- **통합 차트 (곡당 1행)**: `melonRank` · `genieRank` · `bugsRank` · `floRank` · `vibeRank`, 플랫폼별 순위 변동, `unifiedRank`(통합 순위), `unifiedScore`(통합 점수), `platformCount`(오른 플랫폼 수), `bestRank` · `averageRank`, `numberOneCount`(1위 플랫폼 수), **`isAllKill`(올킬: 모든 플랫폼 1위)**, 멜론 좋아요 수, FLO 차트 점수, ISRC, 발매일, 커버, 플랫폼별 곡 ID와 링크.
- **플랫폼별 행**: 5개 플랫폼이 같은 열 구성 — `source`, 차트 이름·기준 시각, `rank`, `rankChange`(+상승 / -하락 / 0), `rankStatus`(up · down · same · new), 곡·아티스트(ID 포함)·앨범, 커버, 곡 링크, 그리고 플랫폼 고유 값(멜론 `likes`, FLO `chartScore`·발매일, VIBE `isrc`·발매일).
- **차트 종류**: 실시간(멜론 TOP100 · 지니 TOP200 · 벅스 실시간 TOP100 · FLO 차트 · VIBE 오늘 Top 100), 일간(멜론 · 지니 TOP200 · 벅스 · FLO TOP250 · VIBE 300위), 주간(멜론 · 지니 · 벅스 · FLO).
- **5개 플랫폼 동시 검색**: 곡명·아티스트로 검색해, 같은 곡을 하나의 통합 행으로 묶고 `songIds`(예: `{"melon": "603382333", "genie": "117256249", …}`)를 돌려줍니다. 플랫폼 간 곡 ID 매칭·카탈로그 정리에 바로 쓸 수 있습니다.

#### 💡 왜 이 액터인가요?

- **5개 플랫폼을 한 번에**: Apify 스토어의 다른 K-pop 차트 도구는 멜론·지니·벅스 실시간 TOP100만 다루고, FLO·VIBE는 없습니다. 이 액터는 5개 플랫폼의 실시간·일간·주간을 모두 다룹니다.
- **이미 합쳐진 통합 순위**: 플랫폼별 결과를 따로 받아 엑셀에서 맞출 필요가 없습니다. 같은 곡을 곡명 + 아티스트로 자동으로 묶습니다 (`(Feat. …)`, `IVE (아이브)` / `IVE(아이브)` 같은 표기 차이도 처리).
- **올킬 체크 자동화**: `isAllKill`, `numberOneCount`, `platformCount`로 "올킬", "퍼펙트 올킬 후보", "5개 플랫폼 TOP100 동시 진입"을 한 번에 확인합니다.
- **저렴**: $0.25 / 1,000행, 매달 500행 무료. 다른 K-pop 차트 피드($2 / 1,000행, 3개 플랫폼)보다 8배 저렴합니다. 통합 순위만 받으면(`outputMode: "unified"`) 곡당 1행만 과금됩니다.
- **믿을 수 있는 데이터**: K-Data Lab의 멜론·지니·벅스·FLO·VIBE 개별 액터와 같은 수집 코드를 씁니다. 테스트에서 5개 플랫폼 TOP20이 개별 액터 결과와 100% 일치했습니다. 플랫폼 하나가 실패해도 나머지 결과는 정상으로 나오고, 실패한 플랫폼은 `RUN_SUMMARY`에 이유와 함께 남습니다.

#### 📥 입력 예시

5개 플랫폼 실시간 차트 → 통합 순위 + 플랫폼별 행 (기본값):

```json
{ "chartType": "realtime" }
```

일간 차트, 플랫폼마다 가능한 최대 순위까지, 통합 순위만:

```json
{ "chartType": "daily", "maxRank": 300, "outputMode": "unified" }
```

멜론·지니·벅스만 (3사 올킬 체크):

```json
{ "chartType": "realtime", "platforms": ["melon", "genie", "bugs"], "maxRank": 10, "outputMode": "unified" }
```

5개 플랫폼 동시 검색 (곡 ID 매칭):

```json
{ "chartType": "none", "searchKeywords": ["아이유", "aespa"], "maxSearchResults": 50 }
```

| 입력 | 설명 |
|---|---|
| `chartType` | `realtime`(실시간) · `daily`(일간) · `weekly`(주간, VIBE 제외) · `none`(검색만) |
| `platforms` | `melon` · `genie` · `bugs` · `flo` · `vibe` (기본값: 5개 전부) |
| `maxRank` | 플랫폼별 최대 순위 1~300 (기본 100). 상한: 멜론·벅스 100, 지니 200, FLO 100(일간 250), VIBE 300 |
| `searchKeywords`, `maxSearchResults` | 5개 플랫폼 동시 검색어와 검색어·플랫폼별 곡 수 (기본 30, 최대 500) |
| `outputMode` | `both`(통합 + 플랫폼별, 기본) · `unified`(곡당 1행) · `perPlatform`(플랫폼별 행만) |

#### 📤 출력 예시

통합 실시간 차트 1위 (실제 실행 결과, 2026-11-01 12시):

```json
{
  "type": "unified",
  "mode": "chart",
  "source": "unified",
  "chartType": "realtime",
  "chartName": "통합 실시간 차트 (멜론·지니·벅스·FLO·VIBE)",
  "unifiedRank": 1,
  "unifiedScore": 494,
  "platformCount": 5,
  "platforms": ["melon", "genie", "bugs", "flo", "vibe"],
  "bestRank": 1,
  "averageRank": 2.2,
  "numberOneCount": 4,
  "isAllKill": false,
  "title": "NEON",
  "artist": "A2O, A2O LITE",
  "albumTitle": "NEON",
  "releaseDate": "2026-10-13",
  "isrc": "KRMIM2655904",
  "melonRank": 1, "genieRank": 1, "bugsRank": 1, "floRank": 7, "vibeRank": 1,
  "melonRankChange": 0, "genieRankChange": 0, "bugsRankChange": 0, "floRankChange": 0, "vibeRankChange": 0,
  "melonLikes": 60549,
  "floChartScore": 121091,
  "songIds": { "melon": "603382333", "genie": "117256249", "bugs": "6511885", "flo": "611656860", "vibe": "108385046" },
  "songUrls": { "melon": "https://www.melon.com/song/detail.htm?songId=603382333", "vibe": "https://vibe.naver.com/track/108385046", "…": "…" },
  "imageUrl": "https://cdnimg.melon.co.kr/cm2/album/images/146/44/795/14644795_20261012141441_500.jpg",
  "scrapedAt": "2026-11-01T03:08:50+00:00"
}
```

플랫폼별 행 (FLO 차트 1위):

```json
{
  "type": "song", "mode": "chart", "source": "flo", "sourceName": "FLO", "chartType": "realtime",
  "chartName": "FLO 차트 TOP100 (최근 24시간, 매시 갱신)", "chartPeriod": "12시 기준", "chartDate": "2026-11-01T12:59:59+09:00",
  "rank": 1, "rankChange": 0, "rankStatus": "same", "isNew": false, "unifiedRank": 32,
  "songId": "568152509", "title": "이 밤을 빌려 말해요", "artist": "PLAVE", "artistId": "406705114",
  "albumId": "447921948", "releaseDate": "2025-12-29", "chartScore": 154729,
  "songUrl": "https://www.music-flo.com/detail/track/568152509/details"
}
```

같은 날 같은 시각에도 1위가 플랫폼마다 다를 수 있습니다 (FLO는 최근 24시간 집계). 그래서 통합 점수는 순위가 아니라 플랫폼마다 최대 100점(1위 = 100점, N위까지 받았다면 마지막 순위 = 100/N점)을 더해 계산합니다.

실행이 끝나면 키-값 저장소의 `RUN_SUMMARY`에 플랫폼별 결과(OK · NOT_AVAILABLE · NO_RESULTS · ERROR), 차트 기준 시각, 올킬 곡, 이번 달 남은 무료 분량, 요청 수가 남습니다. 콘솔의 **Output** 탭에서 통합 순위 · 플랫폼별 · 검색 매칭 보기를 고를 수 있습니다.

#### 💰 가격 (Pay per event)

| 이벤트 | 가격 | 무료 (매달) |
|---|---|---|
| 결과 행 (통합 곡 1행 또는 플랫폼별 곡 1행) | $0.25 / 1,000행 (약 350원) | 500행 |
| 실행 시작 | $0.005 / 실행 (약 7원) | – |

예: 5개 플랫폼 실시간 TOP100을 매시간 통합 순위만(`unified`, 약 170행) 한 달 모으면 ≈ 122,000행 ≈ $30 (약 42,000원) + 시작 $3.6. 하루 한 번 일간 통합 순위(약 450행)는 한 달 ≈ $3.4 (약 4,700원).
Apify 등급(Bronze · Silver · Gold)에 따라 행 가격은 최대 $0.15 / 1,000행까지 내려갑니다. 실행 옵션의 **최대 비용**(Max cost)을 정하면 그 금액에서 깨끗하게 멈춥니다 (통합 행이 먼저 저장됩니다).

#### 🎯 이런 분께 좋아요

- **기획사·A\&R·팬 커뮤니티**: 신곡 발매 후 5개 플랫폼 순위와 올킬 여부를 매시간 자동 기록.
- **음악 미디어·뉴스**: "오늘의 통합 차트", "올킬 달성" 기사·카드뉴스용 표를 한 번에.
- **마케팅·광고**: 플랫폼마다 다른 청취층(멜론 vs FLO vs VIBE)의 반응을 한 표에서 비교.
- **음악 데이터 분석**: 플랫폼별 점유·순위 편차, TOP100 동시 진입 곡 수 같은 지표를 매일 쌓기.
- **카탈로그·저작권 관리**: 검색으로 같은 곡의 멜론·지니·벅스·FLO·VIBE 곡 ID와 ISRC를 한 번에 매칭.
- **AI 에이전트·챗봇**: "지금 올킬 곡 있어?", "NEON 플랫폼별 순위는?" 같은 질문에 답하기 (Apify MCP).

#### 🔌 API · 연동

```bash
curl -X POST "https://api.apify.com/v2/acts/k-data-lab~korean-music-chart-scraper/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"chartType":"realtime","maxRank":10,"outputMode":"unified"}'
```

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_TOKEN>")
run = client.actor("k-data-lab/korean-music-chart-scraper").call(run_input={"chartType": "realtime", "outputMode": "unified"})
for song in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(song["unifiedRank"], song["title"], song["artist"], song["melonRank"], song["genieRank"], song["isAllKill"])
```

Google Sheets, Make, n8n, Zapier, Slack 연동과 웹훅도 Apify 콘솔의 **Integrations** 탭에서 바로 연결됩니다. 매시·매일 수집은 **Schedules**에서 설정하세요.

#### 🤖 AI 에이전트에서 쓰기 (Use it from AI agents · MCP)

Give Claude, ChatGPT, Cursor, VS Code or n8n a ready-made `korean-music-chart-scraper` tool through [Apify's MCP server](https://mcp.apify.com): the agent reads the input schema, runs this actor and gets the dataset back. AI 에이전트가 입력 항목을 읽고 직접 실행해 결과를 받아 옵니다.

- 이 액터만 (this actor only): `https://mcp.apify.com?tools=actors,docs,k-data-lab/korean-music-chart-scraper`
- K-chart 6종 묶음 (K-chart bundle): `https://mcp.apify.com?tools=actors,docs,k-data-lab/melon-scraper,k-data-lab/genie-scraper,k-data-lab/bugs-scraper,k-data-lab/flo-scraper,k-data-lab/vibe-scraper,k-data-lab/korean-music-chart-scraper`

**Claude Code**

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=actors,docs,k-data-lab/korean-music-chart-scraper"
```

Claude Desktop: Settings → Connectors → Add custom connector, paste the same URL.

**Cursor / VS Code** (`.cursor/mcp.json`; in `.vscode/mcp.json` use `"servers"` and add `"type": "http"`)

```json
{"mcpServers": {"apify": {
  "url": "https://mcp.apify.com?tools=actors,docs,k-data-lab/korean-music-chart-scraper",
  "headers": {"Authorization": "Bearer <YOUR_APIFY_TOKEN>"}
}}}
```

**Try asking / 이렇게 물어보세요**

- "Which songs are all-killing the Korean charts right now? Show their rank on Melon, Genie, Bugs, FLO and VIBE."
- "Get this week's weekly charts and list the top 10 songs by average rank across platforms."
- "Search all five Korean music platforms for aespa and give me each song's ID and link per platform."
- "지금 실시간 음원차트 올킬한 곡 있어? 플랫폼별 순위 같이 보여줘."

#### ❓ 자주 묻는 질문

**같은 곡은 어떻게 묶나요?** 곡명(대소문자·띄어쓰기·기호 무시, 필요하면 `(Feat. …)` 같은 괄호 부분 제외)이 같고 아티스트 이름이 하나 이상 겹치면 같은 곡으로 봅니다. `IVE (아이브)`, `IVE(아이브)`, `A2O & A2O LITE`, `A2O LITE, A2O` 같은 표기 차이를 처리하고, 한 플랫폼의 두 곡이 한 행으로 합쳐지지는 않습니다. 테스트에서 5개 플랫폼 실시간 TOP100(500행)의 같은 곡 중 놓친 짝은 없었습니다.

**올킬(`isAllKill`)의 기준은?** 이번 실행에서 차트를 돌려준 모든 플랫폼(2개 이상)에서 1위면 `true`입니다. 멜론·지니·벅스만 골라 실행하면 3사 올킬, 5개를 고르면 5개 플랫폼 올킬입니다. 업계에서 말하는 "퍼펙트 올킬"(일간·주간·실시간 모두 1위 등)은 여러 차트 종류를 실행해 `numberOneCount`로 직접 판단하세요.

**VIBE 실시간 차트가 왜 일간인가요?** VIBE에는 실시간 종합 차트가 없고 매일 아침 갱신되는 "오늘 Top 100"이 종합 차트입니다. 그래서 실시간에도 오늘 Top 100을 쓰고, 주간에는 VIBE가 빠집니다 (`RUN_SUMMARY`에 `NOT_AVAILABLE`로 표시).

**차트 기준 시각이 플랫폼마다 달라요.** 플랫폼마다 갱신 시각이 다릅니다 (예: 2026-11-01 12시 실행에서 멜론 일간은 10.30, 지니·벅스 일간은 10.31 차트였고, FLO 일간은 최근 7일 집계입니다). 각 행의 `chartPeriod`·`chartDate`에 플랫폼이 표시한 기준이 그대로 들어갑니다.

**지난 날짜 차트, 장르 차트, 곡 상세(크레딧·재생수)는요?** 이 액터는 5개 플랫폼을 같은 기준으로 비교하는 데 집중합니다. 지난 차트·장르 차트·곡 상세는 개별 액터를 쓰세요: [멜론](https://apify.com/k-data-lab/melon-scraper)(좋아요·장르 차트), [지니](https://apify.com/k-data-lab/genie-scraper)(재생수·청취자수), [벅스](https://apify.com/k-data-lab/bugs-scraper)(지난 차트·크레딧), [FLO](https://apify.com/k-data-lab/flo-scraper)(차트 점수·인기 지수), [VIBE](https://apify.com/k-data-lab/vibe-scraper)(2008년~ 지난 차트·ISRC).

**검색 결과의 통합 행은 어떻게 정렬되나요?** 각 플랫폼 검색 결과의 순서(정확도순)를 차트 순위처럼 점수로 더해 정렬합니다. 여러 플랫폼에서 상위에 나온 곡이 위로 옵니다.

**가사도 가져오나요?** 아니요. 가사는 저작권이 있는 콘텐츠라 넣지 않습니다.

**결과가 비어 있으면 요금이 나가나요?** 결과 행이 없으면 행 요금은 없습니다 (실행 시작 요금만). 검색 결과가 없는 플랫폼은 `NO_RESULTS`로 표시되고 실행은 정상 종료됩니다. 모든 플랫폼에 접속하지 못하면 실행이 실패로 끝나고 이유가 상태 메시지에 나옵니다.

**프록시가 필요한가요?** 보통 필요 없습니다. 플랫폼이 요청을 거절하면 자동으로 Apify 프록시로 다시 시도합니다.

**개인정보·이용 범위는?** 각 플랫폼에 공개된 차트·검색 결과의 곡 정보만 가져옵니다. 회원 정보, 플레이리스트, 가사, 댓글은 가져오지 않습니다. 플랫폼마다 동시 접속 3개 이하로 천천히 요청합니다. 수집한 데이터는 각 플랫폼 이용약관과 저작권법을 지켜 사용하시고, AI 모델 학습에는 쓰지 마세요. 비공식 도구이며 각 플랫폼 운영사와 관계가 없습니다.

#### 🧰 K-Data Lab의 다른 액터 (More from K-Data Lab)

- [멜론 차트·곡·앨범 스크래퍼 (Melon Chart API)](https://apify.com/k-data-lab/melon-scraper): 멜론 TOP100·HOT100·장르 차트와 좋아요 수
- [지니뮤직 차트·곡·앨범 스크래퍼 (Genie Music Chart API)](https://apify.com/k-data-lab/genie-scraper): 지니 TOP200과 곡별 재생수·청취자수
- [벅스 차트·곡·앨범 스크래퍼 (Bugs Music Chart API)](https://apify.com/k-data-lab/bugs-scraper): 벅스 TOP100·장르 29개·지난 차트와 좋아요·크레딧
- [FLO 차트·곡·앨범 스크래퍼 (FLO Music Chart API)](https://apify.com/k-data-lab/flo-scraper): FLO 차트·일간 TOP250과 차트 점수·인기 지수
- [바이브 차트·곡·앨범 스크래퍼 (NAVER VIBE Music Chart API)](https://apify.com/k-data-lab/vibe-scraper): VIBE TOP300·성·연령별 차트·2008년~ 지난 차트·ISRC
- [Amazon ASIN Rating & Review Count Scraper](https://apify.com/k-data-lab/amazon-asin-rating-scraper): 아마존 ASIN별 별점·리뷰 수·별점 분포·BSR, 19개 마켓, 로그인 불필요
- [Amazon Seller Central Review Scraper](https://apify.com/k-data-lab/amazon-seller-central-review-scraper): 셀러 센트럴(브랜드 레지스트리)의 내 브랜드 리뷰 전체 수집·모니터링, 직접 로그인
- [Google Play Scraper API](https://apify.com/k-data-lab/google-play-scraper): 구글 플레이 앱 정보와 리뷰, 국가별, 로그인 불필요
- [Agoda Scraper](https://apify.com/k-data-lab/agoda-scraper): 아고다 호텔 가격, 객실 요금, 리뷰
- [Google Ads Transparency & Ad Library Scraper](https://apify.com/k-data-lab/google-ad-library-scraper): 경쟁사가 집행하는 구글 광고 전체

#### 💬 문의

빠진 필드, 잘못 묶인 곡, 틀린 값이 있으면 **Issues** 탭에 남겨 주세요. 당일에 답변드립니다.

***

#### English summary

**Korean Music Charts API (Melon, Genie, Bugs, FLO, VIBE)**: one run fetches the realtime, daily or weekly overall chart from all five Korean streaming platforms at once and merges them into **one unified ranking**. Each song gets one row with its Melon / Genie / Bugs / FLO / VIBE rank and rank change, a cross-platform score and unified rank, the number of platforms it charts on, the number of #1s, an **all-kill flag** (#1 on every platform), Melon like count, FLO chart score, ISRC and every platform's song ID and URL. Platform rows come in one normalized column set with a `source` field. Keyword search runs on all five platforms and **matches the same song's IDs across platforms**. No login, no browser; JSON/CSV/Excel or API. **$0.25 per 1,000 rows**, 500 rows free every month. Unofficial, not affiliated with Melon, Genie, Bugs, FLO or NAVER VIBE. No lyrics, no user data.

**Quick start (English):** run the prefilled input, or send `{"chartType": "realtime", "outputMode": "unified"}` for one row per song, `{"chartType": "daily", "platforms": ["melon", "genie", "bugs"], "maxRank": 10, "outputMode": "unified"}` for a Melon × Genie × Bugs all-kill check, or `{"chartType": "none", "searchKeywords": ["NewJeans"]}` to match one song's IDs across all five platforms. `chartType`: `realtime` · `daily` · `weekly` (no VIBE) · `none`. `outputMode`: `both` · `unified` · `perPlatform`. Field names in the output are English.

Tags: korean music chart api, kpop chart, k-pop chart data, melon chart api, korean streaming charts, kpop chart api, k-pop all-kill, melon genie bugs flo vibe, 통합 음원차트, 음원 차트 올킬, 실시간 차트, 멜론 차트, 지니 차트, 벅스 차트, 플로 차트, 바이브 차트, 케이팝 차트

# Actor input Schema

## `chartType` (type: `string`):

"realtime"(실시간·기본값), "daily"(일간), "weekly"(주간), "none"(차트 없이 검색만) 중 하나. 예: "realtime" = 지금 올킬 현황, "none" + searchKeywords = 곡 검색만. 고른 모든 플랫폼에서 같은 시점의 종합 차트를 한 번에 가져와 하나의 통합 순위로 합칩니다. 실시간 = 멜론 TOP100 · 지니 TOP200 · 벅스 실시간 · FLO 차트(최근 24시간) · VIBE 오늘 Top 100 (VIBE는 실시간 종합 차트가 없어 일간을 씁니다). 주간에는 VIBE가 빠집니다(주간 차트 없음). '차트 없음'은 아래 검색어만 실행합니다.

## `platforms` (type: `array`):

차트와 검색을 실행할 음원 플랫폼 (여러 개 선택). 기본값은 5개 전부입니다. 예: \["melon", "genie"] = 멜론·지니만. (Platforms: melon, genie, bugs, flo, vibe.)

## `maxRank` (type: `integer`):

각 플랫폼 차트에서 몇 위까지 가져올지 (1~300). 플랫폼마다 상한이 있습니다: 멜론·벅스 100위, 지니 200위, FLO 100위(일간 250위), VIBE 300위. 예: 100 = 각 차트 TOP100, 10 = 상위 10위만 비교.

## `searchKeywords` (type: `array`):

곡명·아티스트로 5개 플랫폼을 한 번에 검색합니다. 같은 곡을 하나의 통합 행으로 묶어 플랫폼별 곡 ID·링크를 함께 돌려줍니다 (플랫폼 간 곡 ID 매칭). 예: 아이유, Golden 비워 두면 검색하지 않습니다. (Song/artist search keywords, e.g. \["아이유", "aespa"].)

## `maxSearchResults` (type: `integer`):

검색어 하나당 플랫폼마다 가져올 곡 수 (1~500, 정확도순 상위). 예: 30(기본값), 5 = 플랫폼마다 상위 5곡만. searchKeywords를 넣었을 때만 쓰입니다.

## `outputMode` (type: `string`):

"both"(기본값), "unified", "perPlatform" 중 하나. 예: 올킬 순위표만 원하면 "unified". 통합 = 곡마다 1행 (플랫폼별 순위·점수·올킬 여부), 플랫폼별 = 플랫폼마다 곡 1행 (`source` 칸으로 구분, 같은 열 구성), 둘 다 = 통합 행 + 플랫폼별 행. 결과 행 수만큼 요금이 나갑니다.

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

보통은 필요 없습니다. 비워 두면 직접 접속하고, 거절되면 자동으로 Apify 프록시로 다시 시도합니다. 예: {"useApifyProxy": false} (기본값 그대로 두면 됩니다).

## Actor input object example

```json
{
  "chartType": "realtime",
  "platforms": [
    "melon",
    "genie",
    "bugs",
    "flo",
    "vibe"
  ],
  "maxRank": 100,
  "searchKeywords": [
    "아이유",
    "aespa"
  ],
  "maxSearchResults": 30,
  "outputMode": "both",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `unified` (type: `string`):

No description

## `perPlatform` (type: `string`):

No description

## `search` (type: `string`):

No description

## `all` (type: `string`):

No description

## `summary` (type: `string`):

No description

# 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 = {
    "chartType": "realtime",
    "platforms": [
        "melon",
        "genie",
        "bugs",
        "flo",
        "vibe"
    ],
    "maxRank": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("k-data-lab/korean-music-chart-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 = {
    "chartType": "realtime",
    "platforms": [
        "melon",
        "genie",
        "bugs",
        "flo",
        "vibe",
    ],
    "maxRank": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("k-data-lab/korean-music-chart-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 '{
  "chartType": "realtime",
  "platforms": [
    "melon",
    "genie",
    "bugs",
    "flo",
    "vibe"
  ],
  "maxRank": 100
}' |
apify call k-data-lab/korean-music-chart-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,k-data-lab/korean-music-chart-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/5zOsSvQxRacXbKeCw/builds/Tl2ON6nGpoKXUMbTJ/openapi.json
