# Mixcloud Scraper: Show & Creator Monitor (`getascraper/mixcloud-media-monitor`) Actor

Scrape public Mixcloud show, creator, search, genre, and comment metadata through the official API. Export flat JSON/CSV and monitor new or updated records by state key. No audio extraction. $0.00263 per metadata row.

- **URL**: https://apify.com/getascraper/mixcloud-media-monitor.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Social media, Automation, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.97 / 1,000 metadata records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Mixcloud Scraper: Show & Creator Monitor

**Scrape public Mixcloud show, creator, search, genre, and comment metadata into flat JSON/CSV, then monitor new or updated records by state key.** Built for music publishers, catalog teams, and researchers who need structured public Mixcloud data without manual checks or audio extraction.

<table width="100%">
<tr>
<td style="padding:22px 26px;background:#F5F3FF;border:1px solid #C4B5FD;border-top:4px solid #6D28D9;border-radius:12px">
<span style="font-size:22px;font-weight:800;color:#1C1917;line-height:1.3">Public Mixcloud metadata, ready for repeat monitoring.</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Collect shows, creators, searches, genres, and comments. Reuse a state key to receive only new or changed records on later runs.</span>
</td>
</tr>
</table>

<table width="100%">
<tr>
<td style="padding:14px 12px;width:33%;background:#FFFFFF;border:1px solid #C4B5FD;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#5B21B6">Public metadata</span><br>
<span style="font-size:12px;color:#57534E">Shows, creators, tags, engagement, and optional public comments.</span>
</td>
<td style="padding:14px 12px;width:33%;background:#FFFFFF;border:1px solid #C4B5FD;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#5B21B6">Five collection modes</span><br>
<span style="font-size:12px;color:#57534E">Exact shows, creator catalogs, search, latest genre, and popular genre.</span>
</td>
<td style="padding:14px 12px;width:33%;background:#FFFFFF;border:1px solid #C4B5FD;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#5B21B6">Change-focused runs</span><br>
<span style="font-size:12px;color:#57534E">A stable state key marks first-seen and changed records for follow-up.</span>
</td>
</tr>
</table>

### What it collects

- **Show metadata** for public Mixcloud show URLs.
- **Creator shows** from public creator profile URLs.
- **Search shows** matching a query.
- **Latest in genre** and **Popular in genre** public feeds.
- Optional public creator details and comment rows, within one shared output limit.

All collection uses `https://api.mixcloud.com`. The Actor does not download audio, resolve stream URLs, use credentials, access private accounts, or bypass access controls.

### How monitoring works

Set `onlyNewItems` to `true` and reuse the same `stateKey` for one scope. The first run emits records as `new`; later runs omit unchanged records and label changed records as `updated`. The latest totals, errors, and unchanged count are stored in `RUN_SUMMARY`.

### Input

| Field                   | Default                  | Use                                                                                                                                        |
| ----------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `mode`                  | `showMetadata`           | Select show metadata, creator shows, search, latest genre, or popular genre collection.                                                    |
| `startUrls`             | Sample public show URL   | Public show URLs for show metadata or creator profile URLs for creator shows.                                                              |
| `query`                 | `jazz`                   | Search phrase used only in search mode.                                                                                                    |
| `genre`                 | `jazz`                   | Genre slug used only in the two genre modes.                                                                                               |
| `maxItems`              | `10`                     | Hard cap across show, comment, and status rows, from 1 to 1,000.                                                                           |
| `since`                 | Empty                    | Optional ISO 8601 lower bound for creator and genre feeds.                                                                                 |
| `until`                 | Empty                    | Optional ISO 8601 upper bound for creator and genre feeds.                                                                                 |
| `includeCreatorDetails` | `false`                  | Add available public creator bio, location, flags, and counts.                                                                             |
| `includeComments`       | `false`                  | Add public comment rows after show rows, within `maxItems`.                                                                                |
| `onlyNewItems`          | `false`                  | Return only first-seen or changed records for the selected `stateKey`.                                                                     |
| `stateKey`              | `mixcloud-media-monitor` | Stable identifier for one monitoring scope.                                                                                                |
| `authorizedStreamLinks` | `false`                  | Returns a structured `unsupported_policy` status row while public metadata collection continues. It never returns an audio or stream link. |
| `proxyConfiguration`    | Apify datacenter proxy   | Optional connection routing.                                                                                                               |

### Output

The default dataset contains flat `show`, `comment`, and `status` rows, downloadable as JSON or CSV. Missing source fields are omitted. `RUN_SUMMARY` is available from the default key-value store.

```json
{
    "recordType": "show",
    "status": "ok",
    "mode": "showMetadata",
    "sourceUrl": "https://www.mixcloud.com/spartacus/party-time/",
    "sourceKey": "/spartacus/party-time/",
    "title": "Party Time",
    "durationSeconds": 3361,
    "playCount": 9422,
    "tags": ["Funky house", "Funk", "Soul"],
    "creatorUsername": "spartacus",
    "creatorName": "Spartacus",
    "fetchedAt": "2026-07-28T00:00:00.000Z",
    "stateKey": "mixcloud-media-monitor"
}
```

| Row or field            | Meaning                                                                                                                                               |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| `recordType` / `status` | `show`, `comment`, or `status`; outcome is `ok`, `error`, or `unsupported_policy`.                                                                    |
| Show fields             | `sourceUrl`, `sourceKey`, `title`, `description`, `slug`, timestamps, duration, public engagement counts, tags, and public artwork URL when supplied. |
| Creator fields          | Public username, name, URL, and optional details and aggregate counts.                                                                                |
| Comment fields          | Public comment text, timestamp, author details, and related show fields when supplied.                                                                |
| `monitoringStatus`      | `new` or `updated` when `onlyNewItems` is enabled.                                                                                                    |
| `message`               | Honest diagnostic on `error` or `unsupported_policy` status rows.                                                                                     |

### Policy boundary

`authorizedStreamLinks` is intentionally supported only as a structured policy response. When selected, it emits one `status: "unsupported_policy"` row and continues collecting the requested public metadata. It does not resolve, expose, download, archive, or bypass access restrictions for audio or private streams.

### Pricing

**$0.00263 per metadata row.** A billable metadata row is a supported public show, creator, search, genre, or comment record returned to the dataset. An `unsupported_policy` status row is an honest capability notice, not an audio or stream result. Set `maxItems` to control the maximum dataset size.

### Feedback

<table width="100%">
<tr>
<td style="padding:20px 24px 14px;background:#F5F3FF;border:1px solid #C4B5FD;border-left:5px solid #6D28D9;border-radius:10px 10px 0 0">
<span style="font-size:17px;font-weight:800;color:#1C1917">Was this Mixcloud metadata useful?</span><br>
<span style="font-size:14px;color:#57534E">A neutral review helps other catalog and research teams evaluate whether this public-metadata workflow fits their needs.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#6D28D9;border:1px solid #C4B5FD;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/mixcloud-media-monitor/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px">Review this Actor on Apify</a>
</td>
</tr>
</table>

### FAQ

##### Does this Actor download Mixcloud audio?

No. It collects public metadata and public page links only.

##### What happens if I request authorized stream links?

The Actor returns an `unsupported_policy` status row and continues with public metadata collection. No stream or audio link is returned.

##### Can I monitor a creator or genre over time?

Yes. Run the same input with `onlyNewItems: true` and a stable `stateKey`.

# Actor input Schema

## `startUrls` (type: `array`):

Public show URLs for Show metadata, or creator profile URLs for Creator shows.

## `mode` (type: `string`):

Choose exact shows, a creator feed, search results, or a genre feed.

## `query` (type: `string`):

Search phrase used only in Search shows mode.

## `genre` (type: `string`):

Genre used only in Latest in genre or Popular in genre mode, for example jazz.

## `since` (type: `string`):

Optional inclusive calendar-date lower bound for feed results.

## `until` (type: `string`):

Optional inclusive calendar-date upper bound for feed results.

## `includeCreatorDetails` (type: `boolean`):

Add available public creator bio, location, flags, and aggregate counts.

## `includeComments` (type: `boolean`):

Add public comment records after show records, within the item limit.

## `maxItems` (type: `integer`):

Hard limit across show, comment, and policy-status records.

## `onlyNewItems` (type: `boolean`):

Compare the previous state snapshot and emit only first-seen or changed records.

## `stateKey` (type: `string`):

Stable name that isolates one monitoring scope from another.

## `authorizedStreamLinks` (type: `boolean`):

Returns a policy-status record, no stream links are resolved.

## `proxyConfiguration` (type: `object`):

Optional proxy settings for public Mixcloud API requests.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.mixcloud.com/spartacus/party-time/"
    }
  ],
  "mode": "showMetadata",
  "query": "jazz",
  "genre": "jazz",
  "since": "",
  "until": "",
  "includeCreatorDetails": false,
  "includeComments": false,
  "maxItems": 10,
  "onlyNewItems": false,
  "stateKey": "mixcloud-media-monitor",
  "authorizedStreamLinks": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `runSummary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.mixcloud.com/spartacus/party-time/"
        }
    ],
    "mode": "showMetadata",
    "query": "jazz",
    "genre": "jazz",
    "since": "",
    "until": "",
    "includeCreatorDetails": false,
    "includeComments": false,
    "maxItems": 10,
    "onlyNewItems": false,
    "stateKey": "mixcloud-media-monitor",
    "authorizedStreamLinks": false,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/mixcloud-media-monitor").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://www.mixcloud.com/spartacus/party-time/" }],
    "mode": "showMetadata",
    "query": "jazz",
    "genre": "jazz",
    "since": "",
    "until": "",
    "includeCreatorDetails": False,
    "includeComments": False,
    "maxItems": 10,
    "onlyNewItems": False,
    "stateKey": "mixcloud-media-monitor",
    "authorizedStreamLinks": False,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/mixcloud-media-monitor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.mixcloud.com/spartacus/party-time/"
    }
  ],
  "mode": "showMetadata",
  "query": "jazz",
  "genre": "jazz",
  "since": "",
  "until": "",
  "includeCreatorDetails": false,
  "includeComments": false,
  "maxItems": 10,
  "onlyNewItems": false,
  "stateKey": "mixcloud-media-monitor",
  "authorizedStreamLinks": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call getascraper/mixcloud-media-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=getascraper/mixcloud-media-monitor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/PeXb8PIBSXO7ZhdwE/builds/9krb2T1DlC9n3FnAG/openapi.json
