{
  "openapi": "3.0.1",
  "info": {
    "title": "멜론 차트·곡·앨범 스크래퍼 (Melon Chart API) – 좋아요 수",
    "description": "Get Melon (멜론) chart data: realtime TOP100, HOT100, daily, weekly, monthly and genre charts, past charts, song search, songwriter credits, album ratings and artist fans, with like counts. Korean music and K-pop chart API, no login. $0.25/1K songs, 500 free monthly. 멜론 차트 API.",
    "version": "0.3",
    "x-build-id": "zwzMlmhqsCvXHjAFq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/k-data-lab~melon-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-k-data-lab-melon-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/k-data-lab~melon-scraper/runs": {
      "post": {
        "operationId": "runs-sync-k-data-lab-melon-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/k-data-lab~melon-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-k-data-lab-melon-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "charts": {
            "title": "Melon charts (차트)",
            "type": "array",
            "description": "Melon charts to fetch. Pass chart IDs as a list: realtime (TOP100, updated hourly), hot100, day (daily), week (weekly), month (monthly). Leave empty to skip charts and use only the search, song, album and artist inputs below. Example: [\"realtime\"] or [\"day\",\"week\"]. 가져올 멜론 차트 (여러 개 선택 가능). 비워 두면 차트는 건너뜁니다.",
            "items": {
              "type": "string",
              "enum": [
                "realtime",
                "hot100",
                "day",
                "week",
                "month"
              ],
              "enumTitles": [
                "TOP100, realtime (실시간)",
                "HOT100",
                "Daily (일간)",
                "Weekly (주간)",
                "Monthly (월간)"
              ]
            },
            "default": []
          },
          "genres": {
            "title": "Genres for daily/weekly/monthly charts (장르)",
            "type": "array",
            "description": "Genre codes for the daily, weekly and monthly charts; realtime and HOT100 ignore this. Empty = all genres (GN0000). Each genre returns its own chart. Example: [\"DM0000\"] = all Korean songs, [\"GN0100\",\"GN0200\"] = ballad and dance. 비워 두면 장르종합입니다.",
            "items": {
              "type": "string",
              "enum": [
                "GN0000",
                "DM0000",
                "AB0000",
                "GN0100",
                "GN0200",
                "GN0300",
                "GN0400",
                "GN0500",
                "GN0600",
                "GN0700",
                "GN0800",
                "GN0900",
                "GN1000",
                "GN1100",
                "GN1200",
                "GN1300",
                "GN1400",
                "GN1500",
                "GN1700",
                "GN1800",
                "GN1900",
                "GN2000",
                "GN2100",
                "GN2200",
                "GN2300",
                "GN2400"
              ],
              "enumTitles": [
                "All genres · 장르종합 (GN0000)",
                "Korean (all) · 국내종합 (DM0000)",
                "International (all) · 해외종합 (AB0000)",
                "Ballad · 발라드 (GN0100)",
                "Dance · 댄스 (GN0200)",
                "Rap/Hip-hop · 랩/힙합 (GN0300)",
                "R&B/Soul · R&B/Soul (GN0400)",
                "Indie · 인디음악 (GN0500)",
                "Rock/Metal · 록/메탈 (GN0600)",
                "Trot · 트로트 (GN0700)",
                "Folk/Blues · 포크/블루스 (GN0800)",
                "International Pop · 해외 POP (GN0900)",
                "International Rock/Metal · 해외 록/메탈 (GN1000)",
                "International Electronica · 해외 일렉트로니카 (GN1100)",
                "International Rap/Hip-hop · 해외 랩/힙합 (GN1200)",
                "International R&B/Soul · 해외 R&B/Soul (GN1300)",
                "International Folk/Blues/Country · 해외 포크/블루스/컨트리 (GN1400)",
                "OST · OST (GN1500)",
                "Jazz · 재즈 (GN1700)",
                "New Age · 뉴에이지 (GN1800)",
                "J-POP · J-POP (GN1900)",
                "World Music · 월드뮤직 (GN2000)",
                "CCM · CCM (GN2100)",
                "Kids/Prenatal · 어린이/태교 (GN2200)",
                "Religious · 종교음악 (GN2300)",
                "Gugak (Korean traditional) · 국악 (GN2400)"
              ]
            }
          },
          "chartDate": {
            "title": "Past chart date, weekly/monthly only (과거 차트 날짜)",
            "pattern": "^$|^\\d{4}-\\d{2}(-\\d{2})?$",
            "type": "string",
            "description": "Only for past weekly or monthly charts. Weekly: any day of that week as YYYY-MM-DD, e.g. 2026-10-08 returns the chart for Oct 5-11. Monthly: YYYY-MM, e.g. 2026-07. Empty = latest chart. Realtime, HOT100 and daily charts are always the latest. 지난 주간·월간 차트를 가져올 때만 입력합니다."
          },
          "maxResults": {
            "title": "Max songs per chart or keyword (최대 곡 수)",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Maximum songs for each chart or search keyword. Charts stop at rank 100, search stops at 2,000 songs. Example: 100 = full TOP100, 10 = top 10 only (cheapest test). 차트 하나 또는 검색어 하나당 최대 곡 수입니다.",
            "default": 100
          },
          "includeLikes": {
            "title": "Include like counts (좋아요 수 포함)",
            "type": "boolean",
            "description": "Adds the Melon like count to every song at no extra charge (one extra request per 100 songs). Example: true (default); false if you do not need likes. 추가 요금 없음.",
            "default": true
          },
          "includeSongDetails": {
            "title": "Include song details and credits (곡 상세: 발매일·장르·작사·작곡·편곡)",
            "type": "boolean",
            "description": "Opens each song page to add release date, genre, FLAC info, lyricists, composers, arrangers and yesterday's rank. Adds the song-details event charge per song. Example: true if you need credits or release dates, false (default) for ranks only. 곡당 곡 상세 요금이 추가됩니다.",
            "default": false
          },
          "searchKeywords": {
            "title": "Song search keywords (곡 검색어)",
            "type": "array",
            "description": "Search Melon songs by keyword, such as an artist or song name. Returns up to the max songs setting per keyword. Empty = no search. Example: [\"IU\", \"NewJeans\"] or [\"아이유\", \"밤양갱\"]. 멜론 곡 검색어입니다.",
            "items": {
              "type": "string"
            }
          },
          "searchIn": {
            "title": "Search scope (검색 범위)",
            "enum": [
              "all",
              "song",
              "artist",
              "album"
            ],
            "type": "string",
            "description": "Where to look for the keyword. all = everything (default), song = song titles, artist = artist names, album = album titles. Example: \"artist\". 검색어를 어디에서 찾을지 고릅니다.",
            "default": "all"
          },
          "songs": {
            "title": "Songs by ID or link (곡)",
            "type": "array",
            "description": "Melon song IDs or song page links. Returns details and the like count for each song. Empty = skip. Example: [\"603382333\"] or [\"https://www.melon.com/song/detail.htm?songId=603382333\"]. 멜론 곡 ID 또는 링크.",
            "items": {
              "type": "string"
            }
          },
          "albums": {
            "title": "Albums by ID or link (앨범)",
            "type": "array",
            "description": "Melon album IDs or album page links. Returns album info, rating, like count and tracklist. Empty = skip. Example: [\"14535765\", \"https://www.melon.com/album/detail.htm?albumId=14535765\"]. 멜론 앨범 ID 또는 링크.",
            "items": {
              "type": "string"
            }
          },
          "artists": {
            "title": "Artists by ID or link (아티스트)",
            "type": "array",
            "description": "Melon artist IDs or artist page links. Returns the profile, fan count and song list. Empty = skip. Example: [\"261143\"] (IU). 멜론 아티스트 ID 또는 링크.",
            "items": {
              "type": "string"
            }
          },
          "maxSongsPerArtist": {
            "title": "Max songs per artist (아티스트당 최대 곡 수)",
            "minimum": 0,
            "maximum": 2000,
            "type": "integer",
            "description": "Songs to fetch for each artist; 0 = profile only. Example: 50 (default), or 0 for the profile only. 0이면 아티스트 정보만 가져옵니다.",
            "default": 50
          },
          "artistSongOrder": {
            "title": "Artist song order (아티스트 곡 정렬)",
            "enum": [
              "latest",
              "popular"
            ],
            "type": "string",
            "description": "Order of the artist song list: latest (newest first, default) or popular. Example: \"popular\". 최신순 또는 인기순.",
            "default": "latest"
          },
          "proxyConfiguration": {
            "title": "Proxy (프록시)",
            "type": "object",
            "description": "Usually not needed. If Melon refuses a request, the actor retries through Apify Proxy on its own. Example: {\"useApifyProxy\": false} (default); {\"useApifyProxy\": true} forces the proxy. 보통 필요 없습니다.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}