{
  "openapi": "3.0.1",
  "info": {
    "title": "Spotify Charts Scraper: Top 200 Streams, Artists & Albums",
    "description": "Spotify Charts by country: the Top 200 with daily streams, top artists and top albums, daily or weekly, plus weekly city charts. Rank change, peak and days on chart; optional play counts and genres.",
    "version": "1.0",
    "x-build-id": "REfipQ4MaHkiXgMLp"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/eduair94~spotify-charts-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-eduair94-spotify-charts-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/eduair94~spotify-charts-scraper/runs": {
      "post": {
        "operationId": "runs-sync-eduair94-spotify-charts-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/eduair94~spotify-charts-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-eduair94-spotify-charts-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": {
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "One market per line: `global` for the worldwide chart, a 2-letter country code such as US, GB or BR, or a country name such as Brazil. Each market gives one chart per chart type. Spotify Charts covers 72 countries with the Top 200 and the top artists, and 52 of them with the top albums (the README lists them); a chart it does not publish is reported in ERRORS and never charged.",
            "default": [
              "global"
            ],
            "items": {
              "type": "string"
            }
          },
          "chartTypes": {
            "title": "Charts",
            "type": "array",
            "description": "The charts to export for every market: the Top 200 songs (with streams), the top artists and the top albums. Spotify Charts has the top albums weekly only, and for 52 of the 72 countries.",
            "items": {
              "type": "string",
              "enum": [
                "top200",
                "topArtists",
                "topAlbums"
              ],
              "enumTitles": [
                "Top 200 songs (with streams)",
                "Top artists",
                "Top albums (weekly)"
              ]
            },
            "default": [
              "top200"
            ]
          },
          "period": {
            "title": "Period",
            "enum": [
              "daily",
              "weekly"
            ],
            "type": "string",
            "description": "Daily charts (one per day) or weekly charts (one per week, dated on the Thursday that ends it). Top albums and city charts are always weekly.",
            "default": "daily"
          },
          "maxRowsPerChart": {
            "title": "Max entries per chart",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Entries kept from the top of each chart: 200 is the whole chart (smaller markets list fewer, city charts up to 100), 50 the top 50, 10 the top 10. You pay only for the entries delivered.",
            "default": 200
          },
          "cities": {
            "title": "Cities",
            "type": "array",
            "description": "Up to 20 cities, one per line, for their weekly Top 200 (up to 100 entries, no stream counts), such as São Paulo, Mexico City, Los Angeles or Jakarta. The name is sent in lower case without spaces or accents (saopaulo). Spotify Charts has city charts weekly only and for selected cities; one it does not chart is reported in ERRORS and never charged.",
            "items": {
              "type": "string"
            }
          },
          "date": {
            "title": "Chart date",
            "pattern": "^(?:\\d{4}-\\d{2}-\\d{2})?$",
            "type": "string",
            "description": "Leave empty for the latest charts. A date (YYYY-MM-DD) gives the chart of that day, or for weekly charts the chart of that week. History: the Top 200 since 2017, top albums since 2020-10-22, top artists since 2021-10-21; an earlier date is reported in ERRORS and never charged."
          },
          "includePlayCounts": {
            "title": "Include play counts",
            "type": "boolean",
            "description": "Add `playCount`, each song's all-time Spotify play count (streams since release, not just this chart's day or week).",
            "default": false
          },
          "includeGenres": {
            "title": "Include genres, moods and tempo",
            "type": "boolean",
            "description": "Add `genres`, `moods` and `tempo` (beats per minute) from Spotify's own descriptors of each song.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}