{
  "openapi": "3.0.1",
  "info": {
    "title": "FLO 차트·곡·앨범 스크래퍼 (FLO Music Chart API) – 차트 점수·인기 지수",
    "description": "Get FLO (플로) Korean music chart data via API, no login: K-pop (kpop) TOP100 updated hourly, daily TOP250, weekly and 17 genre charts, rising artists, song search, credits, albums and artists, each song with its FLO chart score. 500 songs free monthly, then $0.25/1K. 플로 차트 API.",
    "version": "0.3",
    "x-build-id": "pmXFivn2ZgLgwsAAA"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/k-data-lab~flo-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-k-data-lab-flo-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~flo-scraper/runs": {
      "post": {
        "operationId": "runs-sync-k-data-lab-flo-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~flo-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-k-data-lab-flo-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": "FLO chart IDs to fetch; pick several. Example: [\"flo\"] = FLO Chart TOP100 (last 24 h, updated hourly); [\"day\", \"kr-ballad\"] = daily overall TOP250 + Korean ballad TOP100. \"week\" = weekly TOP100; genre IDs (kr-ballad, kr-dance, kr-hiphop, kr-rnb, trot, kr-indie, kr-pop-acoustic, pop, hiphop, rnb, electronic, ost, classic, newage, kids, jpop, ccm) are daily TOP100s; \"rising\" = Rising Artists TOP100 (artists, not songs). Every song row has rank, rankChange and FLO chartScore. FLO publishes current charts only (no past dates): schedule daily runs to build history. Leave empty to skip charts. / 가져올 FLO 차트 (여러 개 선택). FLO 차트 = 최근 24시간·매시 갱신, 일간 종합 = TOP250, 장르 17개 = 매일 TOP100, rising = 라이징 아티스트. 지난 날짜 차트는 없습니다.",
            "items": {
              "type": "string",
              "enum": [
                "flo",
                "day",
                "week",
                "kr-ballad",
                "kr-dance",
                "kr-hiphop",
                "kr-rnb",
                "trot",
                "kr-indie",
                "kr-pop-acoustic",
                "pop",
                "hiphop",
                "rnb",
                "electronic",
                "ost",
                "classic",
                "newage",
                "kids",
                "jpop",
                "ccm",
                "rising"
              ],
              "enumTitles": [
                "FLO 차트 TOP100 – 최근 24시간, 매시 갱신",
                "일간 종합 TOP250 – 최근 7일 집계, 매일 갱신",
                "주간 종합 TOP100",
                "장르: 국내 발라드 TOP100",
                "장르: 국내 댄스/일렉 TOP100",
                "장르: 국내 힙합 TOP100",
                "장르: 국내 알앤비 TOP100",
                "장르: 트로트 TOP100",
                "장르: 국내 인디 TOP100",
                "장르: 국내 팝/어쿠스틱 TOP100",
                "장르: 해외 팝 TOP100",
                "장르: 해외 힙합 TOP100",
                "장르: 해외 알앤비 TOP100",
                "장르: 해외 일렉트로닉 TOP100",
                "장르: OST/BGM TOP100",
                "장르: 클래식 TOP100",
                "장르: 뉴에이지 TOP100",
                "장르: 키즈 TOP100",
                "장르: J-POP TOP100",
                "장르: CCM TOP100",
                "라이징 아티스트 TOP100 (아티스트 순위)"
              ]
            },
            "default": []
          },
          "maxResults": {
            "title": "Max results per chart or keyword (최대 결과 수)",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Max songs per chart or per search keyword. Example: 100 = full TOP100, 10 = top 10 only (cheapest test). Daily overall goes to 250, other charts to 100, search to 2,000. / 차트·검색어마다 최대 곡 수.",
            "default": 100
          },
          "includeSongDetails": {
            "title": "Include song details: genre, credits, MV (곡 상세)",
            "type": "boolean",
            "description": "Adds genre, service start time, lyricist/composer/arranger, full credits and music-video info to every chart, search and artist song (extra \"song details\" event per song). No lyrics (copyright). Example: true if you need songwriters or genres, false (default) for ranks only. / 장르·작사·작곡·편곡·뮤직비디오 추가 (곡 상세 요금 추가).",
            "default": false
          },
          "searchKeywords": {
            "title": "Song search keywords (곡 검색어)",
            "type": "array",
            "description": "Search FLO songs by keyword, in Korean or English (artist, title). Example: [\"아이유\", \"aespa\"]. Results come in FLO relevance order, up to Max results per keyword, deduplicated. Leave empty to skip. / FLO 곡 검색어 (예: 아이유, 에스파, 밤양갱).",
            "items": {
              "type": "string"
            }
          },
          "songs": {
            "title": "Songs: FLO IDs or links (곡)",
            "type": "array",
            "description": "FLO song IDs or music-flo.com track links. Example: \"611656860\" or \"https://www.music-flo.com/detail/track/611656860/details\". Always includes song details (song + song details events). Leave empty to skip. / FLO 곡 ID 또는 링크.",
            "items": {
              "type": "string"
            }
          },
          "albums": {
            "title": "Albums: FLO IDs or links (앨범)",
            "type": "array",
            "description": "FLO album IDs or links. Example: \"464803660\" or \"https://www.music-flo.com/detail/album/464803660/albumtrack\". One row per album: type, release date, genre, distributor, labels, description and full tracklist. Leave empty to skip. / FLO 앨범 ID 또는 링크.",
            "items": {
              "type": "string"
            }
          },
          "artists": {
            "title": "Artists: FLO IDs or links (아티스트)",
            "type": "array",
            "description": "FLO artist IDs or links. Example: \"80049126\" (IU / 아이유) or \"https://www.music-flo.com/detail/artist/80049126/track\". Returns artist info plus their songs, each with FLO popularity index. Leave empty to skip. / FLO 아티스트 ID 또는 링크.",
            "items": {
              "type": "string"
            }
          },
          "maxSongsPerArtist": {
            "title": "Songs per artist (아티스트당 곡 수)",
            "minimum": 0,
            "maximum": 2000,
            "type": "integer",
            "description": "How many songs to fetch per artist (0 = artist info only). Example: 50 = top 50 songs, 0 = profile only. Used only when Artists is set. / 아티스트마다 가져올 곡 수.",
            "default": 50
          },
          "artistSongOrder": {
            "title": "Artist song order (아티스트 곡 정렬)",
            "enum": [
              "popular",
              "latest"
            ],
            "type": "string",
            "description": "Order of each artist's song list: \"popular\" (default, most popular first) or \"latest\" (newest releases first). / 인기순 또는 최신순.",
            "default": "popular"
          },
          "proxyConfiguration": {
            "title": "Proxy (프록시)",
            "type": "object",
            "description": "Usually not needed: leave the default. If FLO refuses a direct request, the actor retries through Apify Proxy automatically. Example: {\"useApifyProxy\": false}. / 보통 필요 없습니다.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}