{
  "openapi": "3.0.1",
  "info": {
    "title": "Deezer Scraper: Tracks, Artists, Albums & Charts",
    "description": "Scrape Deezer without an API key: search tracks, artists and albums, pull the global Top 100 charts, and get artist profiles with fan counts, top tracks and discographies. Export CSV, Excel, JSON, XML. No login. Pay per row, 5.2M fans tracked for Daft Punk.",
    "version": "0.1",
    "x-build-id": "uORnq1mXGu2qs4zdO"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/recordsdata~deezer-music-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-recordsdata-deezer-music-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/recordsdata~deezer-music-scraper/runs": {
      "post": {
        "operationId": "runs-sync-recordsdata-deezer-music-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/recordsdata~deezer-music-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-recordsdata-deezer-music-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": {
          "searchQuery": {
            "title": "Search query (optional)",
            "type": "string",
            "description": "Keyword to search the Deezer catalog for tracks, artists, albums or playlists, for example daft punk or reggaeton 2026. Leave empty and enable charts or add IDs, ISRC or UPC codes to skip search. If everything is empty the actor runs a 10-row demo search for daft punk."
          },
          "searchType": {
            "title": "Search type",
            "enum": [
              "track",
              "artist",
              "album",
              "playlist"
            ],
            "type": "string",
            "description": "Type of Deezer record the search query returns: track, artist, album or playlist. Default is track.",
            "default": "track"
          },
          "sortBy": {
            "title": "Sort tracks by",
            "enum": [
              "relevance",
              "ratingDesc",
              "durationAsc",
              "durationDesc",
              "titleAsc",
              "artistAsc",
              "albumAsc"
            ],
            "type": "string",
            "description": "Order of track rows (track search, artist top tracks, playlist tracks). Relevance keeps the order Deezer returns. For a track search the other orders look at up to 1,000 matches first, then deliver the first rows of the sorted list.",
            "default": "relevance"
          },
          "includeCharts": {
            "title": "Deezer charts",
            "type": "boolean",
            "description": "Set to true to scrape Deezer's Top charts (positions 1 to 100) for the chart types and genre selected below. Charts are global unless you pick a genre.",
            "default": false
          },
          "chartTypes": {
            "title": "Chart types",
            "type": "array",
            "description": "Which charts to pull: tracks, albums, artists and/or playlists. Used only when Deezer charts is enabled.",
            "items": {
              "type": "string",
              "enum": [
                "tracks",
                "albums",
                "artists",
                "playlists"
              ],
              "enumTitles": [
                "Top tracks",
                "Top albums",
                "Top artists",
                "Top playlists"
              ]
            },
            "default": [
              "tracks"
            ]
          },
          "chartGenre": {
            "title": "Chart genre",
            "enum": [
              "0",
              "132",
              "116",
              "122",
              "152",
              "113",
              "165",
              "85",
              "106",
              "466",
              "144",
              "129",
              "98",
              "464",
              "173",
              "169",
              "153",
              "71",
              "95",
              "197",
              "2",
              "16",
              "75",
              "81"
            ],
            "type": "string",
            "description": "Genre of the charts above. All genres is the global Top 100. Used only when Deezer charts is enabled.",
            "default": "0"
          },
          "chartCountries": {
            "title": "Country charts (optional)",
            "type": "array",
            "description": "Countries whose official Deezer Top 100 playlist (Top Brazil, Top Mexico, Top Spain, Top France, Top Germany, Top Argentina, Top Chile, Top USA and more) you want, one per line. Rows are track rows with chartCountry and chartPosition. Works without enabling Deezer charts.",
            "items": {
              "type": "string"
            }
          },
          "artistIds": {
            "title": "Artist IDs (profiles)",
            "type": "array",
            "description": "Deezer artist IDs or artist URLs, one per line, for profiles with fan counts and album counts, for example 27 for Daft Punk. Find IDs by searching with type artist.",
            "items": {
              "type": "string"
            }
          },
          "albumIds": {
            "title": "Album IDs",
            "type": "array",
            "description": "Deezer album IDs or album URLs, one per line, for example 6575789 for Random Access Memories. Each album returns its full record (UPC, label, genres, fans).",
            "items": {
              "type": "string"
            }
          },
          "trackIds": {
            "title": "Track IDs",
            "type": "array",
            "description": "Deezer track IDs or track URLs, one per line, for example 67238732. Each track returns its full record (ISRC, BPM, contributors, release date, available countries).",
            "items": {
              "type": "string"
            }
          },
          "playlistIds": {
            "title": "Playlist IDs",
            "type": "array",
            "description": "Deezer playlist IDs or playlist URLs, one per line. Each playlist returns its record (fans, creator, description) and, when Playlist tracks is on, its tracks in playlist order.",
            "items": {
              "type": "string"
            }
          },
          "isrcs": {
            "title": "ISRC codes",
            "type": "array",
            "description": "International Standard Recording Codes (12 characters, for example USQX91300105), one per line. Each code returns the matching Deezer track with its full record. Codes that Deezer does not know come back as a free error row.",
            "items": {
              "type": "string"
            }
          },
          "upcs": {
            "title": "UPC / barcode codes",
            "type": "array",
            "description": "Album barcodes (UPC or EAN, 8 to 14 digits, for example 886443927087), one per line. Each code returns the matching Deezer album with its full record. Codes that Deezer does not know come back as a free error row.",
            "items": {
              "type": "string"
            }
          },
          "includeArtistTopTracks": {
            "title": "Top tracks per artist",
            "type": "boolean",
            "description": "For each artist ID, also export up to 50 top tracks with duration, rank and preview URL.",
            "default": true
          },
          "includeArtistAlbums": {
            "title": "Discography per artist",
            "type": "boolean",
            "description": "For each artist ID, also export up to 100 albums (discography) with release date and track count.",
            "default": false
          },
          "includeRelatedArtists": {
            "title": "Related artists",
            "type": "boolean",
            "description": "For each artist ID, also export up to 50 related artists (fans, album count, link), with the source artist in relatedToArtistId.",
            "default": false
          },
          "includePlaylistTracks": {
            "title": "Playlist tracks",
            "type": "boolean",
            "description": "For each playlist ID, also export the tracks of the playlist in playlist order, with their position and the date each was added.",
            "default": true
          },
          "includeDetails": {
            "title": "Full details per row",
            "type": "boolean",
            "description": "Adds one extra Deezer request per track, album or playlist row. Tracks get BPM, gain, release date, track and disc position, contributors and the countries where the track is available. Albums get UPC, label, genres, fans and duration. Playlists get fans, description and total duration. Slower, no extra charge.",
            "default": false
          },
          "excludeExplicit": {
            "title": "Exclude explicit rows",
            "type": "boolean",
            "description": "Drop tracks and albums marked explicit by Deezer. Dropped rows are never charged.",
            "default": false
          },
          "minDurationSec": {
            "title": "Minimum track duration (seconds)",
            "minimum": 0,
            "type": "integer",
            "description": "Drop tracks shorter than this many seconds, for example 120. Dropped rows are never charged. Leave empty for no minimum."
          },
          "maxDurationSec": {
            "title": "Maximum track duration (seconds)",
            "minimum": 0,
            "type": "integer",
            "description": "Drop tracks longer than this many seconds, for example 600. Dropped rows are never charged. Leave empty for no maximum."
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of rows to export across all sources. Free users are limited to 10 rows (preview). Paid users: optional, up to 1,000,000. Set a low value to control cost."
          },
          "onlyNew": {
            "title": "Only new rows (monitor mode)",
            "type": "boolean",
            "description": "Skip every row this same search already delivered in an earlier run. Chart rows come back again when their chart position changed (changeType moved), anything not seen before is marked new. Scheduled runs then return just what changed, and skipped rows are not charged.",
            "default": false
          },
          "stateKey": {
            "title": "Monitor name (optional)",
            "type": "string",
            "description": "Optional label to keep several independent monitors for the same search. Runs that share the same inputs and name share one list of seen rows. Leave empty to use the default monitor.",
            "default": ""
          },
          "resetSeen": {
            "title": "Reset seen rows",
            "type": "boolean",
            "description": "Clear the stored list of already-delivered rows for this search and monitor name before the run, so every matching row counts as new again.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}