{
  "openapi": "3.0.1",
  "info": {
    "title": "SoundCloud Scraper — Tracks, Artists, Playlists & Comments",
    "description": "Export public SoundCloud tracks, artists, playlists, albums, trending charts and comments: plays, likes, reposts, comments, genre, tags, ISRC, label and release data. Search beyond the 300-result cap, artist catalogs, playlists with all tracks. No login, no API key.",
    "version": "0.1",
    "x-build-id": "gpEML4z53JvlECJ5W"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/teodor_banea~soundcloud-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-teodor_banea-soundcloud-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/teodor_banea~soundcloud-scraper/runs": {
      "post": {
        "operationId": "runs-sync-teodor_banea-soundcloud-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/teodor_banea~soundcloud-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-teodor_banea-soundcloud-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": {
          "mode": {
            "title": "What to scrape",
            "enum": [
              "search",
              "startUrls",
              "artistCatalog",
              "trending",
              "comments"
            ],
            "type": "string",
            "description": "Choose what the run collects. Search: tracks, artists, playlists or albums matching your words. Start URLs: the tracks, artists, playlists, albums or trending lists you paste. Artist catalog: every track of the artists you list. Trending: SoundCloud's trending charts. Comments: the comments of the tracks you list.",
            "default": "search"
          },
          "searchQueries": {
            "title": "Search queries",
            "type": "array",
            "description": "Enter the words to search for, one search per line. A result found by several queries is delivered once, under the first query (sourceQuery).",
            "items": {
              "type": "string"
            }
          },
          "searchType": {
            "title": "Search for",
            "enum": [
              "tracks",
              "users",
              "playlists",
              "albums"
            ],
            "type": "string",
            "description": "Choose what the search returns: tracks, artists (users), playlists or albums.",
            "default": "tracks"
          },
          "genreOrTag": {
            "title": "Genre or tag",
            "type": "string",
            "description": "Keep only tracks with this genre or tag (e.g. \"techno\", \"Hip-hop & Rap\"). Track searches only."
          },
          "createdWithin": {
            "title": "Posted within",
            "enum": [
              "any",
              "lastHour",
              "lastDay",
              "lastWeek",
              "lastMonth",
              "lastYear"
            ],
            "type": "string",
            "description": "Keep only tracks posted within this period (SoundCloud's \"posted\" date, which can be later than the upload date for tracks made public later). Track searches only.",
            "default": "any"
          },
          "duration": {
            "title": "Duration",
            "enum": [
              "any",
              "short",
              "medium",
              "long",
              "epic"
            ],
            "type": "string",
            "description": "Keep only tracks of this length: short (under 2 min), medium (2-10 min), long (10-30 min) or epic (over 30 min). Track searches only.",
            "default": "any"
          },
          "license": {
            "title": "License",
            "enum": [
              "any",
              "toShare",
              "toUseCommercially",
              "toModifyCommercially",
              "ccBy"
            ],
            "type": "string",
            "description": "Keep only tracks with a Creative Commons license that allows this use. Track searches only.",
            "default": "any"
          },
          "maxResultsPerQuery": {
            "title": "Maximum results per query",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Limit the results of each search query. Above 300, track searches are split automatically (by posted date and genre). Set to 0 for as many as SoundCloud gives.",
            "default": 300
          },
          "startUrls": {
            "title": "SoundCloud URLs",
            "type": "array",
            "description": "Enter SoundCloud page URLs: tracks (https://soundcloud.com/artist/track), artists (https://soundcloud.com/artist), playlists and albums (https://soundcloud.com/artist/sets/name) or genre trending lists (https://soundcloud.com/discover/sets/trending-by-genre:house). Up to 1,000 per run.",
            "items": {
              "type": "string"
            }
          },
          "includePlaylistTracks": {
            "title": "Include playlist tracks",
            "type": "boolean",
            "description": "Also deliver every track of each playlist / album as a track row (with sourcePlaylistId): for playlist and album URLs here and for playlist / album searches. Costs one row per track; the tracks count toward Maximum results.",
            "default": false
          },
          "artistUrls": {
            "title": "Artist URLs",
            "type": "array",
            "description": "Enter artist page URLs (https://soundcloud.com/artist) or usernames. Each gives one artist row plus the artist's tracks, newest first. Up to 1,000 per run.",
            "items": {
              "type": "string"
            }
          },
          "uploadedAfter": {
            "title": "Posted after",
            "type": "string",
            "description": "Stop each artist's catalog at the first track posted before this date (YYYY-MM-DD) or period (e.g. \"6 months\")."
          },
          "maxTracksPerArtist": {
            "title": "Maximum tracks per artist",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Limit the tracks taken from each artist (newest first). Set to 0 for all.",
            "default": 200
          },
          "trendingGenres": {
            "title": "Trending lists",
            "type": "array",
            "description": "Choose the trending lists: all music (about 100 tracks) and / or a genre (about 50 tracks each). Each track carries its trendingGenre and trendingRank.",
            "items": {
              "type": "string",
              "enum": [
                "all-music",
                "all-genres",
                "afrobeat",
                "alternative-hip-hop",
                "alternative-rock",
                "ambient",
                "dancehall",
                "dubstep",
                "electronic",
                "folk",
                "hardcore",
                "hip-hop",
                "house",
                "indie",
                "latin",
                "metal",
                "pop",
                "r-n-b",
                "reggae",
                "rock",
                "trap"
              ],
              "enumTitles": [
                "All music (chart)",
                "All genres",
                "Afrobeat",
                "Alternative hip hop",
                "Alternative rock",
                "Ambient",
                "Dancehall",
                "Dubstep",
                "Electronic",
                "Folk",
                "Hardcore",
                "Hip hop",
                "House",
                "Indie",
                "Latin",
                "Metal",
                "Pop",
                "R&B",
                "Reggae",
                "Rock",
                "Trap"
              ]
            },
            "default": [
              "all-music"
            ]
          },
          "trackUrls": {
            "title": "Track URLs",
            "type": "array",
            "description": "Enter the track URLs (https://soundcloud.com/artist/track) whose comments you want. Up to 1,000 per run.",
            "items": {
              "type": "string"
            }
          },
          "maxCommentsPerTrack": {
            "title": "Maximum comments per track",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Limit the comments taken from each track. Set to 0 for all.",
            "default": 500
          },
          "includeArtistDetails": {
            "title": "Include artist details",
            "type": "boolean",
            "description": "Add the full name, city, bio and web profile links to artist rows (one extra request per artist). Off by default: artist rows carry username, counts, verification, Pro tier and country only.",
            "default": false
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Limit the rows of the whole run (tracks, artists, playlists and comments together). Set to 0 for all (capped at 10,000 per run).",
            "default": 200
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}