{
  "openapi": "3.0.1",
  "info": {
    "title": "벅스 차트·곡·앨범 스크래퍼 (Bugs Music Chart API) – 좋아요·크레딧",
    "description": "Get Bugs Music (벅스) chart data as JSON or CSV, no login: Korean music and K-pop realtime, daily and weekly TOP100, 29 genre charts, album charts, past charts by date and hour, song search, likes and songwriter credits. Kpop chart API for analysts and AI agents. $0.25/1K songs, 500 free monthly.",
    "version": "0.3",
    "x-build-id": "JscfXE9GAng5UPQZ3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/k-data-lab~bugs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-k-data-lab-bugs-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~bugs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-k-data-lab-bugs-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~bugs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-k-data-lab-bugs-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": "Charts (차트)",
            "type": "array",
            "description": "Which Bugs Music charts to fetch. Pass a list of chart IDs: realtime (song TOP100, updated hourly), day (daily song TOP100), week (weekly song TOP100), albumDay and albumWeek (album TOP100). Leave empty to skip charts and use only the search, song, album and artist fields below. Examples: [\"realtime\"] or [\"day\",\"albumWeek\"]. 가져올 벅스 차트 (여러 개 선택 가능).",
            "items": {
              "type": "string",
              "enum": [
                "realtime",
                "day",
                "week",
                "albumDay",
                "albumWeek"
              ],
              "enumTitles": [
                "Realtime song TOP100 (곡 실시간)",
                "Daily song TOP100 (곡 일간)",
                "Weekly song TOP100 (곡 주간)",
                "Daily album TOP100 (앨범 일간)",
                "Weekly album TOP100 (앨범 주간)"
              ]
            },
            "default": []
          },
          "genres": {
            "title": "Genres (장르)",
            "type": "array",
            "description": "Genre filter for song charts, as a list of genre codes. Empty means all genres. Realtime charts accept kpop (all Korean songs) and pop (all foreign songs). Daily and weekly charts accept the 29 genre codes in this list, such as nb (Korean ballad), nid (K-pop idol), nrh (Korean hip-hop) and ntrot (trot). Each genre returns its own chart, and a genre that does not exist for a chart is skipped. Album charts have no genres. Examples: [\"kpop\"] for realtime, [\"nb\",\"nid\"] for daily or weekly. 비워 두면 전체 장르.",
            "items": {
              "type": "string",
              "enum": [
                "ALL",
                "kpop",
                "pop",
                "nb",
                "ndp",
                "nfa",
                "nid",
                "nrh",
                "nrs",
                "nkelec",
                "nkrock",
                "nkjazz",
                "nindie",
                "ntrot",
                "nfpop",
                "nfhiphop",
                "nfrnb",
                "nfelec",
                "nfrock",
                "nfmetal",
                "nfjazz",
                "nost",
                "nclassic",
                "nnewage",
                "njpop",
                "nwpop",
                "nkclassic",
                "nccm",
                "nchildren",
                "nprenatal",
                "ncarol"
              ],
              "enumTitles": [
                "All genres (전체) [ALL]",
                "All Korean, realtime only (국내 전체) [kpop]",
                "All foreign, realtime only (해외 전체) [pop]",
                "Korean ballad (국내 발라드) [nb]",
                "Korean dance/pop (국내 댄스/팝) [ndp]",
                "Korean folk/acoustic (국내 포크/어쿠스틱) [nfa]",
                "Korean idol (국내 아이돌) [nid]",
                "Korean rap/hip-hop (국내 랩/힙합) [nrh]",
                "Korean R&B/soul (국내 알앤비/소울) [nrs]",
                "Korean electronic (국내 일렉트로닉) [nkelec]",
                "Korean rock/metal (국내 락/메탈) [nkrock]",
                "Korean jazz (국내 재즈) [nkjazz]",
                "Korean indie (국내 인디) [nindie]",
                "Trot (성인가요(트로트)) [ntrot]",
                "Foreign pop (해외 팝) [nfpop]",
                "Foreign rap/hip-hop (해외 랩/힙합) [nfhiphop]",
                "Foreign R&B/soul (해외 알앤비/소울) [nfrnb]",
                "Foreign electronic (해외 일렉트로닉) [nfelec]",
                "Foreign rock (해외 락) [nfrock]",
                "Foreign metal (해외 메탈) [nfmetal]",
                "Foreign jazz (해외 재즈) [nfjazz]",
                "OST (OST) [nost]",
                "Classical (클래식) [nclassic]",
                "New age (뉴에이지) [nnewage]",
                "J-POP (J-POP) [njpop]",
                "World music (월드뮤직) [nwpop]",
                "Korean traditional (국악) [nkclassic]",
                "CCM/religious (CCM/종교) [nccm]",
                "Children (어린이) [nchildren]",
                "Prenatal (태교) [nprenatal]",
                "Carol (캐롤) [ncarol]"
              ]
            }
          },
          "chartDate": {
            "title": "Past chart date (과거 차트 날짜)",
            "pattern": "^$|^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Fill in only for a past chart, as YYYY-MM-DD. Example: 2026-01-01. Daily returns that day's chart, weekly returns the Monday-to-Sunday week containing that date, and realtime returns that date at the hour in 'Past realtime chart hour'. Leave empty for the latest chart. If Bugs has no chart for the date, the actor tells you instead of returning another day's chart. 비워 두면 최신 차트."
          },
          "chartHour": {
            "title": "Past realtime chart hour, 0-23 (과거 실시간 차트 시각)",
            "minimum": 0,
            "maximum": 23,
            "type": "integer",
            "description": "Hour of the past realtime chart, from 0 to 23. Example: 9 for the 09:00 chart. With a past date and no hour you get the 23:00 chart. Not needed for the latest realtime chart. 과거 날짜의 실시간 차트 시각."
          },
          "maxResults": {
            "title": "Max results per chart or keyword (최대 결과 수)",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Maximum songs or albums for each chart or search keyword. Bugs charts stop at rank 100 and search stops at 2,000 songs. Examples: 100 for the full TOP100, 10 for the top 10. 차트·검색어마다 최대 결과 수.",
            "default": 100
          },
          "includeSongDetails": {
            "title": "Include song details: likes, release date, credits (곡 상세 포함)",
            "type": "boolean",
            "description": "Opens each song's page to add its like count, release date, genre and style, duration, audio quality (FLAC), lyricists, composers, arrangers and the full credit list with artist IDs. Adds the song-details event charge per song and makes the run longer. Example: true when you need likes or songwriter credits, false (default) when you only need ranks. 좋아요·작사·작곡·편곡이 필요할 때 켜세요.",
            "default": false
          },
          "searchKeywords": {
            "title": "Song search keywords (곡 검색어)",
            "type": "array",
            "description": "Keywords for Bugs song search, in Korean or English. Each keyword returns up to the max results, in Bugs search order. Leave empty to skip search. Example: [\"아이유\", \"aespa\"]. 벅스 곡 검색어.",
            "items": {
              "type": "string"
            }
          },
          "songs": {
            "title": "Songs: ID or link (곡)",
            "type": "array",
            "description": "Bugs song IDs or links, such as 6511885 or https://music.bugs.co.kr/track/6511885. Returns song details for each: likes, release date, genre and credits. Leave empty to skip. Example: [\"6511885\"]. 벅스 곡 ID 또는 링크.",
            "items": {
              "type": "string"
            }
          },
          "albums": {
            "title": "Albums: ID or link (앨범)",
            "type": "array",
            "description": "Bugs album IDs or links, such as 4156473 or https://music.bugs.co.kr/album/4156473. Returns album type, release date, genre and style, distributor, agency, likes, description and the tracklist with title tracks marked. Leave empty to skip. Example: [\"4156473\"]. 벅스 앨범 ID 또는 링크.",
            "items": {
              "type": "string"
            }
          },
          "artists": {
            "title": "Artists: ID or link (아티스트)",
            "type": "array",
            "description": "Bugs artist IDs or links, such as 80049126 (IU) or https://music.bugs.co.kr/artist/80049126. Returns artist type, genre, members and likes, plus their song list. Leave empty to skip. Example: [\"80049126\"]. 벅스 아티스트 ID 또는 링크.",
            "items": {
              "type": "string"
            }
          },
          "maxSongsPerArtist": {
            "title": "Max songs per artist (아티스트당 최대 곡 수)",
            "minimum": 0,
            "maximum": 2000,
            "type": "integer",
            "description": "Songs to fetch for each artist. Use 0 for artist info only. Examples: 50 (default), 0. 아티스트마다 가져올 곡 수.",
            "default": 50
          },
          "artistSongOrder": {
            "title": "Artist song order (아티스트 곡 정렬)",
            "enum": [
              "popular",
              "latest",
              "name"
            ],
            "type": "string",
            "description": "Order of each artist's song list, using the same sort options as the Bugs artist page: popular (default), latest or name. Example: \"latest\". 인기순·최신순·이름순.",
            "default": "popular"
          },
          "proxyConfiguration": {
            "title": "Proxy (프록시)",
            "type": "object",
            "description": "Usually not needed: if Bugs refuses a request, the actor retries through Apify Proxy on its own. Examples: {\"useApifyProxy\": false} (default), or {\"useApifyProxy\": true} to force 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}