# Spotify Artist Scout – Monthly Listeners, Play Counts, AI Score (`rich_minds/spotify-artist-scout-ai`) Actor

First 25 artists free. Spotify artist scout, pay per qualified artist - junk never charged by us: monthly listeners, listener growth, signing status, AI scouting note, from Spotify Play Count Scraper. Free demo on any plan; live search runs on your Apify account, any plan that runs Store Actors.

- **URL**: https://apify.com/rich\_minds/spotify-artist-scout-ai.md
- **Developed by:** [Rich Minds](https://apify.com/rich_minds) (community)
- **Categories:** Social media, Marketing, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 qualified artist (rules only)s

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Spotify Artist Scout – Monthly Listeners, Play Counts, AI Score

**New emerging artists worth signing — scored, explained and pitched — in your inbox every week.**

⚡ First **25 artists free** · 💵 **$0.004** per qualified artist · 🤖 **$0.01** with AI assessment · ⏱️ demo in seconds

![One row per qualified artist — scout score, tier, monthly listeners, growth since the last run, top city, signing status and the scouting note](https://api.apify.com/v2/key-value-stores/utajx68wGu1EtoHfg/records/shortlist.svg)

> **Try it in 30 seconds.** Click **Try it** — the form runs a free demo on 8 sample artists; your first **25
> qualified artists** are free. We charge only per qualified artist; the Spotify scan (≈ $0.004 per artist, capped)
> runs on your Apify account.
> → [Presets per niche](#-try-it-for-your-niche) · [What a run costs](#-pricing--what-a-run-really-costs) · [What the AI adds](#-what-the-ai-tier-adds) · [Run it weekly](#-run-it-weekly) · [A\&R tracker sheet](https://api.apify.com/v2/key-value-stores/utajx68wGu1EtoHfg/records/ar-tracker.csv)

### ⚡ At a glance

| | |
|---|---|
| **What you get** | a ranked A\&R shortlist: listeners, growth, signing status, socials, a 0–100 scout score, an AI note and pitch line |
| **You provide** | 1–5 Spotify artists you like — or just your brief ("UK indie, like Wet Leg"), a watchlist or playlists |
| **Output** | a ranked sheet — Excel, CSV or Google Sheets — best first, plus an e-mail digest and a report page to forward |
| **Typical run** | 5 seeds → 100 related artists scanned → ≈ 25 qualified, 1 in 4 (estimate), a few minutes |
| **Cost of that run** | **$0.60 rules only · $0.90 with the AI** ($0.50 source on your account + 25 × $0.004 / 25 × $0.01 here + ≈ $0.15 tokens) |
| **Free tier** | first 25 qualified artists per account |
| **Keys / setup** | none where your Apify plan includes model access — otherwise your own key; a free Gemini key works |
| **Works with** | Schedules, e-mail digest, webhooks, Google Sheets, Slack, Discord, Make / n8n / Zapier, MCP & AI agents |

### 🎯 What this Actor does

A Spotify artist scout for A\&R scouting at labels, managers, curators and bookers. It runs **Spotify Play Count
Scraper** (`beatanalytics/spotify-play-count-scraper`) on your account and turns raw counts into a verdict — we charge
only for the artists that pass your filters:

- **Discovery** — seeds become their "Fans also like" artists; playlists, Viral 50, names or just your brief become
  artist lists (`eduair94/spotify-scraper`).
- **Growth since your last run** — listener snapshots per artist; an artist you have returns only as a growth alert.
- **A scout score you can read** — band, momentum, growth, cadence, socials, with `scoreBreakdown` and risk flags.
- **Signing status with evidence** — `independent` / `signed` from the label or the bio, plus the decision-makers
  (label, management) from the bio in `bioFacts`.
- **AI scouting note and pitch line** — career stage, fit to *your* brief, a 2-sentence note and a first DM.

#### 🎧 Emerging artists by Spotify monthly listeners

Free filters: listener band (1,000–500,000), `releasedWithinDays` (365), `targetCountries`, `requireSocialLink`,
`minGrowthPct`, `suppressionList`, `targetFlags`.

#### 🔎 Spotify play count, momentum and risks

Spotify artist analytics per artist: top-10 tracks with streams, `topTrackShare`, `releasesLast180d`, `riskFlags`;
`followReleases` adds the `recordLabel` and the newest release's streams per day.

### 🚀 How to use it

1. **Click `Try it`** — the form runs the free demo on 8 sample artists as is.
2. **Paste 1–5 artists you like into `seedArtistUrls`**, pick a niche in `preset`, or write only `scoutBrief` (its
   markets and named artists become the seeds). Keep `enableAi` on — your first 25 artists show the AI tier free.
3. **Press Start** — qualified artists land best first; the Outreach view adds a contact route per pitch.
4. **Schedule it weekly** (open the saved task → Schedule) with `notifyEmail` — only new artists and growth alerts are
   delivered and charged.

![Outreach view — contact route (Instagram first), tier and the pitch line per artist](https://api.apify.com/v2/key-value-stores/utajx68wGu1EtoHfg/records/outreach.svg)

📚 **Learn more:** [Step-by-step tutorial — how to scout emerging artists on Spotify with this Actor](https://api.apify.com/v2/key-value-stores/utajx68wGu1EtoHfg/records/tutorial.html)

### 🆚 Why this instead of Spotify Play Count Scraper?

| | [Spotify Play Count Scraper (`beatanalytics/spotify-play-count-scraper`)](https://apify.com/beatanalytics/spotify-play-count-scraper) | **Spotify Artist Scout (us)** |
|---|---|---|
| **Price** | $0.004 per URL · 166 users / 30 days | $0.004 per qualified artist, first 25 free |
| **Same 100 artists, all in** | $0.40 for 100 unsorted rows of raw counts | 100 scanned → ≈ 25 ranked, explained artists: **$0.60 rules only · $0.90 with the AI** ($0.10 / $0.25 here + $0.50 source you pay either way) |
| **Finding artists** | URLs only | seeds → related artists, playlists, Viral 50, names |
| **Growth between runs** | none | listener history, growth %, growth alerts |
| **Verdict** | raw counts | scout score, risk flags, signing status, AI note + pitch |

**Rivals next to our card** (Store cards, 2026-09-27):

| Actor | Per artist | 100 usable artists (≈ 400 scanned) | Users / 30 d | They charge for · AI · dedupe |
|---|---|---|---|---|
| **Spotify Artist Scout (us)** | $0.004 per *qualified* | **$2.40 rules only · $3.60 with the AI**, scan + tokens included | new | qualified, scored artists · AI note · across runs |
| `delectable_incubator/spotify-artists-scraper-low-cost` | $0.00249 + start | $1.00 + hand sort | 1 | every keyword hit · no · no |
| `parseforge/spotify-artists-scraper` | $0.0035 | $1.40 + hand sort | 1 | every scanned artist · no · no |
| `nifty.codes/spotify-artistdetails-scraper` | $0.002 + $0.005 start | $0.81 + hand sort | 21 | every scanned artist · no · no |
| `khadinakbar/spotify-artist-scraper` | $0.005 + start | $2.00 + hand sort | 16 | every scanned artist · no · no |
| `s-r/free-spotify-artist-analytics` | $0.015 | $6.00 + hand sort | 10 | every scanned artist · no · no |

Raw rows cost less; the difference buys discovery, growth, the score and the note instead of a 400-row hand sort; a
measured head-to-head is dated 2026-10-15.

#### 💸 Cheaper than a Chartmetric or Soundcharts seat

| | Chartmetric Premium | Soundcharts PRO | This Actor, weekly |
|---|---|---|---|
| **Price** | $150 / month — [chartmetric.com/pricing](https://chartmetric.com/pricing), 2026-09-27 | $129 / month — [soundcharts.com/pricing](https://soundcharts.com/pricing), 2026-09-27 | ≈ $3.60 / month (4 × $0.90 with the AI) |
| **Covers** | Spotify, Apple Music, TikTok, Instagram, YouTube, Shazam, radio | Spotify, TikTok, Instagram, YouTube, radio | Spotify + the artist's links; Instagram / TikTok counts dated 2026-11-15 |

<details><summary>Free tools you already use — where they win, where they stop</summary>

| Free tool | Where it wins | What it lacks |
|---|---|---|
| Spotify artist page | free, official, live — our numbers come from the same page | one artist at a time, no export, history, score or alerts |
| kworb.net | free daily listener rankings for charting artists | not the 1k–500k band; no socials, no API |
| Spotify for Artists | exact first-party data (saves, playlist adds) | only artists you manage |

</details>

### 💵 Pricing — what a run really costs

Pay per result: **one event per qualified artist, nothing else.** No start fee.

| Event | When it is charged | Price |
|---|---|---|
| `free-tier` | your first 25 qualified artists on this Actor, in any mode | **$0.00** |
| `qualified-artist-basic` | AI off — metrics, flags, scout score, signing status, rule note and pitch | **$0.004** |
| `qualified-artist-ai` | AI on — plus fit score, reasons, career stage, bio facts, AI note and pitch line | **$0.01** |

**One free tier:** your first 25 qualified artists are free, whatever the tier.

**Never charged by us:** artists below `minScore` or failing a filter, excluded or already received artists (unless a
growth alert), sample rows; compute is included. Discovery and the scan are the source Actors' charges, capped.

**How that compares** — the Actors next to our card in the Store charge a median $0.00425 per scanned artist; $0.004
here is 0.94× that, but only per *qualified* artist — one replaces ≈ 4 scanned: $0.001 per raw-row equivalent.

**Worked example** — 5 seeds, AI on: discovery 100 rows ($0.10 at eduair94's $0.001 per row) + source scan of 100
artists ($0.40 at $0.004 per artist, your account) → ≈ 25 qualified (1 in 4, estimate): 25 × $0.01 = $0.25 here +
≈ $0.15 tokens = **$0.90**, ≈ $0.036 per qualified artist. Rules only: $0.50 + 25 × $0.004 = **$0.60**. Run 1's 25
artists are free, so it costs the $0.50 source (+ tokens).

**AI tier, all in:** ≈ $0.016 per artist ($0.01 + ≈ $0.006 tokens for 2 candidates, not yet measured) — 4× the basic
price; each AI run reports its tokens in `OUTPUT.aiTokens`.

### 🤖 What the AI tier adds

The same sample artist, AI **off** — metrics, flags, a rule score, a template note and pitch:

```json
{"name": "Maren Holt (sample)", "monthlyListeners": 84200, "listenersGrowthPct": 36.9, "isGrowthAlert": true,
 "signingStatus": "independent", "ruleScore": 89, "score": 89, "tier": "hot",
 "summary": "Maren Holt (sample): 84,200 monthly listeners, 9.25× followers, +36.9 % since the last snapshot, last release 2026-09-12, strongest in London.",
 "generatedText": "Loved “Glasshouse”; your London listeners clearly agree. Open to a quick chat?"}
```

AI **on** (`qualified-artist-ai`, $0.01), against the demo brief *"Emerging indie and alt-pop acts with a release in
the last 6 months and real momentum in the UK or Ireland, not signed to a major"*:

```json
{"name": "Maren Holt (sample)", "fitScore": 91, "score": 91, "tier": "hot", "careerStage": "emerging",
 "scoreReasons": ["listenersGrowthPct +36.9 since the last snapshot", "primaryCity London — the brief's UK market"],
 "bioFacts": {"pressOrAwards": [{"value": "BBC Radio 1's Future Artists", "quote": "Her single Glasshouse was picked for BBC Radio 1's Future Artists in 2026."}]},
 "summary": "Self-releasing London alt-pop writer whose monthly listeners grew 36.9% in a week on the back of Glasshouse. Independent, releasing every two months and strongest in London, Manchester and Dublin.",
 "generatedText": "Hi Maren, Glasshouse has been on repeat here, and it is great to see London catching on. We're an indie label in London that signs and develops alt-pop acts - we fund recording and radio plugging. Open to a coffee?"}
```

A fictional demo artist (`isSample: true`); your own search gets these fields from `anthropic/claude-haiku-4.5`.
Reading the bio and writing a first DM takes a scout ≈ 7 minutes per artist — ≈ 3 h for 25; each run's digest says so.

**Try the AI on any plan:** without model access the demo shows labelled sample verdicts (`aiModel: "sample"`) and
your first real search gets **5 live AI verdicts on us**; then your own key (`llmProvider: byok`) — a free Gemini key
([aistudio.google.com/apikey](https://aistudio.google.com/apikey)) assesses a few artists per run, a paid one every artist.

### ⚙️ Input

```json
{"seedArtistUrls": ["https://open.spotify.com/artist/7Ln80lUS6He07XvHI8qqHH"], "scoutBrief": "Unsigned UK indie acts",
 "yourOffer": "Indie label in London", "targetCountries": ["GB", "IE"], "maxDiscoveryChargeUsd": 0.5}
```

<details><summary>Input options — the fields a buyer decides on</summary>

| Field | Type | Default | What it does |
|---|---|---|---|
| `seedArtistUrls` | string\[] | — | Artists like these: their "Fans also like" artists are scanned and scored |
| `sourceMode` | `actor` | `dataset` | `list` | `actor` | Live scout, a dataset, or pasted records (the form and `{}` start the free `list` demo); the chosen mode always runs — only the untouched sample next to a typed seed switches to the live scout |
| `scoutBrief` | string | — | What the AI scores each artist against; alone (no seeds) it starts the live scout — its markets → Viral 50, named artists → search |
| `minScore` | 0–100 | `50` | The field that decides what you pay: below this = not delivered, not charged |
| `maxQualified` | integer | `100` | Hard cap on output and on this Actor's charges |
| `maxDiscoveryChargeUsd` | number | `0.5` | Caps what the two Spotify Store Actors charge your account per run |
| `enableAi` | boolean | `true` | AI scouting note and pitch line on/off |
| `artistUrls` | string\[] | — | Watchlist scanned as is; a delivered artist returns only as a growth alert |
| `minMonthlyListeners`, `maxMonthlyListeners` | integer | `1000`, `500000` | Listener band; ceiling 0 = none |
| `releasedWithinDays` | integer | `365` | Drops artists with no release in this window; 0 = off |

`playlistUrls`, `viralChartCountries` and `artistSearchTerms` find artists from playlists, Viral 50 charts and names;
`yourOffer` feeds the pitch line; every other field is explained in the **Input** tab — keys and hook URLs are stored
encrypted.

</details>

#### Flags

Put a flag name into `targetFlags` (`growthAlert` works too); an unknown name stops the run with the valid list.

<details><summary>All flags</summary>

| Flag (`targetFlags` value) | Meaning |
|---|---|
| `independent` | self-released or on a distributor (DistroKid, TuneCore, AWAL …) |
| `growth_alert` | listeners grew ≥ `alertGrowthPct` (20 %) since the last run |
| `recent_release` | a release in the last 30 days |
| `high_momentum` | listeners ≥ 5 × followers |
| `one_hit` | one track ≥ 80 % of the top-10 streams |
| `stale` | no release within `releasedWithinDays` |
| `inflated_listeners` | listeners ≥ 25 × followers and one track ≥ 90 % of streams |
| `no_socials` | no social link or website |
| `already_big` | > 500,000 listeners (when `maxMonthlyListeners` is 0) |

</details>

### 📤 Output

One dataset item per qualified artist — JSON, CSV, Excel or a webhook. Views: `Shortlist` (best first),
`Outreach` (contact route + pitch line), `Momentum & risks` (listeners, ratio, growth, cadence, one-hit share).

<details><summary>A demo row (AI off, fields shortened)</summary>

```json
{
  "itemId": "3b0aa10b07b1", "artistId": "5aMpL3sAmpLeHoLtArT001", "name": "Maren Holt (sample)",
  "url": "https://open.spotify.com/artist/5aMpL3sAmpLeHoLtArT001", "monthlyListeners": 84200, "followers": 9100,
  "listenerFollowerRatio": 9.25, "listenersGrowthPct": 36.9, "isGrowthAlert": true, "primaryCity": "London",
  "topTrackName": "Glasshouse", "topTrackShare": 0.489, "releasesLast180d": 3, "signingStatus": "independent",
  "contactRoute": "https://instagram.com/marenholt.sample", "riskFlags": [],
  "scoreBreakdown": {"bandFit": 20, "momentum": 20, "growth": 18, "cadence": 15, "diversity": 6, "social": 5, "verified": 5},
  "ruleScore": 89, "score": 89, "tier": "hot", "careerStage": "emerging", "assessedBy": "rules",
  "chargedEvent": "demo", "billedAs": "qualified-artist-basic", "isSample": true, "dedupeKey": "id:5aMpL3sAmpLeHoLtArT001"
}
```

</details>

#### Output fields

<details><summary>Every field of a row</summary>

| Field | Description |
|---|---|
| `itemId`, `artistId`, `name`, `url` | Identity: 12-char row id, Spotify artist ID, name, Spotify page |
| **Canonical fields** | map `url`, `score` and `tier`; `label` = same value as `tier` until 0.4; `contactRoute` is the reach-out link, not a twin of `url` |
| `imageUrl`, `verified` | Largest artist image, verified checkmark |
| `monthlyListeners`, `followers`, `worldRank`, `listenerFollowerRatio` | Audience and momentum |
| `listenersGrowthPct`, `followersGrowthPct`, `daysSincePreviousSnapshot`, `isGrowthAlert` | Growth since the previous snapshot (null on the first run) |
| `topCities`, `primaryCity`, `primaryCountry`, `countryCount` | Where the listeners are |
| `topTracks`, `topTrackName`, `topTrackStreams`, `top10Streams`, `topTrackShare` | Top-10 tracks with streams and the one-hit share |
| `releaseCount`, `releasesLast180d`, `lastReleaseName`, `lastReleaseDate`, `lastReleaseType`, `daysSinceLastRelease`, `latestReleaseStreamsPerDay` | Release cadence (`latestReleaseStreamsPerDay` with `followReleases`) |
| `recordLabel`, `signingStatus`, `signingEvidence` | Label (with `followReleases` or from the bio) and independent / signed / unknown with its evidence |
| `instagramUrl`, `tiktokUrl`, `youtubeUrl`, `twitterUrl`, `facebookUrl`, `websiteUrl`, `socialLinks`, `contactRoute` | Socials; `contactRoute` = Instagram → TikTok → website → X → Facebook → YouTube → Spotify page |
| `discoveredVia`, `discoverySeed` | input / related / playlist / viral\_chart / search / dataset, and the seed that found it |
| `bioFacts` | hometown, label, management, genres, members, collaborators, pressOrAwards — each `{value, quote}` from the bio |
| `flags`, `riskFlags`, `targetFlagsMatched` | Rule flags, the risk subset, your target flags matched |
| `ruleScore`, `scoreBreakdown`, `score`, `tier`, `label` | Rule scout score and its parts, the final score (AI fit when assessed), hot / warm / cold (`label`: alias) |
| `fitScore`, `scoreReasons`, `careerStage`, `aiRisks`, `recommendedNextStep`, `aiModel` | AI verdict (null / empty when AI is off; `careerStage` falls back to the listener band) |
| `summary`, `generatedText` | Scouting note and pitch line — AI or rule template; no pitch for cold artists |
| `assessedBy`, `chargedEvent`, `billedAs`, `isSample`, `dedupeKey`, `source`, `scrapedAt` | Provenance and billing (`billedAs` = the price tier) |

</details>

**Upsert key for a CRM or Sheet:** `dedupeKey` (`id:` + the Spotify artist ID, also the cross-run memory key);
`itemId` is its hash.

**Two scales:** sort a run on `score`; trend across runs on `ruleScore` (`score` follows `assessedBy`).

**Which record to read:** `OUTPUT` is the full run record; `RUN_SUMMARY` is the same record — funnel, charges,
`runReport`, `aiCoverage`, `aiTokens`, `seedsFromBrief`, `sourceError` / `aiError`. `DIGEST` ("vs last run: qualified
41 → 55") and the client-ready `REPORT` page sit next to it.

⭐ **Found it useful? A review on the Store helps others find it** — it takes a minute on the Actor's page.

### 🔁 Run it weekly

1. **Open the saved task and click Schedule** after your first real run (`OUTPUT.scheduleTaskUrl`), with `notifyEmail`
   — every run with new artists e-mails you the digest and the trend.
2. Keep `dedupeAcrossRuns: true` — the next run delivers **only new artists and growth alerts** (memory per search;
   one `dedupeStoreName` per client).
3. `slackWebhookUrl` / `discordWebhookUrl` post the digest; `webhookUrl` or Google Sheets take the rows — start from the
   [A\&R tracker sheet](https://api.apify.com/v2/key-value-stores/utajx68wGu1EtoHfg/records/ar-tracker.csv) (Shortlist columns + your `status`, upserted on `dedupeKey`).
4. From run 2, `OUTPUT.history` and the `REPORT` show each run's qualified, hot, alerts and median listeners.
5. A scheduled run doubles `maxArtistsToScan` (unless you set it), inside the spend cap.
6. **Rolling discovery:** a scheduled run adds up to 5 of the last run's hot / warm artists as seeds
   (`OUTPUT.seedsRolled`) — their "Fans also like" is new ground, not a re-read of week 1.

Weekly cost: week 1 of the 5-seed scout ≈ 25 qualified (1 in 4, estimate) = $0.90 with the AI; from week 2 known
artists are skipped, rolled seeds bring new ones — ≈ $3.60 a month.

#### 🎯 Try it for your niche

One click: pick it in `preset` and press Start — your own values win.

| Niche | What it looks for | Input |
|---|---|---|
| Indie label, UK / Ireland | related artists of a seed + UK / IE Viral 50, 2k–200k listeners, released in 180 days | [preset-indie-label-uk.json](docs/img/preset-indie-label-uk.json) |
| Playlist curator | the artists of a new-music playlist, 1k–150k listeners, with socials | [preset-playlist-curator.json](docs/img/preset-playlist-curator.json) |
| Booking agent / promoter | a watchlist + GB Viral 50, audience in GB, 5k–300k listeners | [preset-booking-agent.json](docs/img/preset-booking-agent.json) |

### 🔌 Integrations, automation and API

- **Webhook** — `webhookUrl` (auth in `webhookHeaders`) POSTs `{"event": "artist.qualified", "artist": {…}, "runId": "…"}`
  per artist, or one `artists.qualified` batch per `webhookBatchSize` artists; failures never fail the run
  (`OUTPUT.webhook.failed`).
- **Google Sheets / Slack** — one click from the **Integrations** tab.
- **HubSpot / Pipedrive** — a Make / Zapier "create or update" step on `dedupeKey`: contact = `name` + `contactRoute`,
  note = `summary` + `generatedText` (native push dated 2026-11-30).
- **AI agents / MCP** — plain typed inputs; the first call `{}` (or `list` mode) is free.

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("rich_minds/spotify-artist-scout-ai").call(
    run_input={
        "seedArtistUrls": ["https://open.spotify.com/artist/7Ln80lUS6He07XvHI8qqHH"],
        "scoutBrief": "Unsigned UK indie acts with a release this year",
        "maxQualified": 50,
        "maxDiscoveryChargeUsd": 0.5,  # spend cap for the Spotify scan on your account
    },
    # free first call: run_input={} or {"sourceMode": "list", "itemsList": [<your artist rows>]}
    timeout_secs=3600,  # sized for the AI path with your own key — see "How long does a run take?"
    # build="0.3",  # pin the build your pipeline was tested with (Changelog below); omit for the latest
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["name"], item["score"], item["tier"], item["url"])
```

<details><summary>JavaScript</summary>

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

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('rich_minds/spotify-artist-scout-ai').call({
    seedArtistUrls: ['https://open.spotify.com/artist/7Ln80lUS6He07XvHI8qqHH'],
    scoutBrief: 'Unsigned UK indie acts with a release this year',
    maxQualified: 50,
    maxDiscoveryChargeUsd: 0.5, // spend cap for the Spotify scan on your account
    // free first call: .call({}) or { sourceMode: 'list', itemsList: [/* your artist rows */] }
}, { timeout: 3600 /* , build: '0.3' — pin the build your pipeline was tested with */ });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((i) => [i.name, i.score, i.tier, i.url]));
```

</details>

**Use it from Claude, ChatGPT or any MCP client:**

```json
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?actors=rich_minds/spotify-artist-scout-ai"}}}
```

Ask: *"Run spotify-artist-scout-ai with `{}` first (free), then scout artists like <Spotify link>."*

**Minimal agent input:** `{"seedArtistUrls": ["https://open.spotify.com/artist/…"], "scoutBrief": "…", "maxQualified": 25, "maxDiscoveryChargeUsd": 0.5}`
— the rest at its default.

#### List-mode rows — what a pasted record needs

`sourceMode: "list"` runs on any Apify plan: paste Spotify Play Count Scraper artist rows (or automation-lab /
eduair94 `artist_play_counts` rows) into `itemsList`. A row needs `name` and `monthlyListeners`.

<details><summary>Every field a row can carry</summary>

| Field | Needed? | What it enables |
|---|---|---|
| `name` (or `artistName`) | required | the row's title |
| `monthlyListeners` | required | band, growth, score (rows without it are skipped, never charged) |
| `id` / `artistId`, `_url` / `url` / `spotifyUrl` | optional | stable `dedupeKey`, `url`, `artistId` |
| `followers`, `worldRank`, `verified` | optional | `listenerFollowerRatio`, momentum, verified points |
| `topTracks[]` (`id` / `trackId`, `name` / `title`, `streamCount` / `playCount`) | optional | `topTrackName`, `topTrackShare`, `one_hit` |
| `topCities[]` (`city`, `country`, `numberOfListeners`) | optional | `primaryCity`, `targetCountries` |
| `albums[]`, `singles[]`, `latest` / `latestRelease` (`releaseDate`) | optional | cadence, `stale`, `recent_release` |
| `releases[]` (album rows: `label`, `copyright`, `tracks[].streamCount`) | optional | `recordLabel`, signing, streams per day |
| `biography` / `bio` | optional | `bioFacts`, signing from the bio, the AI note |
| `externalLinks[]` / `socialLinks[]` (`label` / `name`, `url`) | optional | socials, `contactRoute` |
| `coverArt[]` / `imageUrl` / `image` / `images` | optional | `imageUrl` |
| `discoveredVia`, `discoverySeed` (or `_discoveredVia`, `_discoverySeed`) | optional | provenance, `OUTPUT.yieldByQuery` |
| `previousSnapshot` (`date`, `monthlyListeners`, `followers`), `sampleAsOf` | optional | growth without history; a fixed "today" for sample rows |

</details>

#### Run outcomes — what your integration sees

<details><summary>Every outcome: run status, dataset, <code>OUTPUT</code> field, charged?, what to do</summary>

| Outcome | Run status | Dataset | `OUTPUT` | Charged? | What to do |
|---|---|---|---|---|---|
| Free demo (the pre-filled sample) | SUCCEEDED | sample artists, `isSample: true` | `qualified` | no | paste your own seed artists |
| Success | SUCCEEDED | qualified artists, best first | funnel, `chargedEvents`, `aiCoverage`, `runReport` | per qualified artist | — |
| Nothing matched (the demo too) | SUCCEEDED | empty | `qualified: 0` | no | loosen `minScore` / the listener band |
| Demo text still in place | SUCCEEDED | empty | `inputNeeded` | no | replace the field the status names with your own text |
| Invalid input | FAILED | empty | — | no | fix the field the status message names |
| Discovery failed | SUCCEEDED | artists from your `artistUrls` (or the seeds themselves) | `runReport.warnings`, `discoveryFallback` | per qualified artist | retry, or add `artistUrls` |
| Source failed (nothing loaded) | FAILED | empty | `sourceError` | no | follow the reason (plan, timeout); on any plan paste [list-mode rows](#list-mode-rows--what-a-pasted-record-needs) |
| Source partial (timed out / aborted after scraping) | SUCCEEDED | qualified artists from the rows scraped | `sourceStatus` (`status`, `partial: true`) | per qualified artist | raise `discoveryTimeoutSecs` or lower `maxArtistsToScan` |
| AI unavailable | SUCCEEDED | rule-scored artists (the free demo: labelled sample AI verdicts, `aiModel: sample`) | `aiError`, `freeAiReserve`, `aiCoverage.sampleVerdicts` | free while your free artists last, then basic price | `llmProvider: byok` with your own key |

</details>

### 👥 Who is it for?

| You are… | You run it to… | Start with |
|---|---|---|
| A\&R scout at a label, publisher or management | each Monday, the unsigned artists that grew fastest, with why | seeds + `targetFlags: ["independent"]` |
| Playlist curator, blog or radio | rising artists like the ones you play | `playlistUrls`, `requireSocialLink` |
| Booking agent or promoter | emerging artists with an audience in your city | `viralChartCountries`, `targetCountries` |
| Music marketing, PR or sync agency | independent artists with momentum to DM | `recent_release` flag, one `dedupeStoreName` per client |

### 🧠 How the AI works

- **Grounded.** Bio facts need a verbatim bio quote; a sentence with a number the input lacks is removed; cold artists
  get no pitch.
- **Your brief.** `fitScore` moves the rule score for your `scoutBrief`; the pitch names `yourOffer` only as written.
- **Tokens where they matter.** The best rule-scored candidates, up to `aiCandidateMultiplier` × `maxQualified`.
- **Model and fallback.** `anthropic/claude-haiku-4.5` via Apify's model access or your own key; on a failure the
  artist keeps its rule score, note and pitch.

### 🔒 Data, compliance and limits

- Public artist pages only; no login, no fan data, no e-mail guessing. Not affiliated with Spotify.
- Top 10 tracks and top 5 cities only; play counts read 0 below 1,000 streams; growth needs a previous snapshot. Use
  it within Spotify's terms and the law (GDPR, CCPA).

### ❓ FAQ

**What will my first real search cost?** One seed: ≈ 20 related artists = $0.02 discovery + $0.08 scan on your account,
capped by `maxDiscoveryChargeUsd` ($0.50 — five seeds reach it). The qualified artists are free up to 25.

**Is this a Spotify Play Count Scraper?** It runs `beatanalytics/spotify-play-count-scraper` ($0.004 per scanned artist,
billed by it) and `eduair94/spotify-scraper` for discovery on your account, then adds filters, history, scoring and AI.

**Is this a Chartmetric alternative?** For Spotify scouting: Chartmetric Premium is $150 and Soundcharts PRO $129 a
month per seat (vendor pages, 2026-09-27); a weekly 5-seed scout here is ≈ $3.60 a month. They cover more platforms.

**How do I find unsigned artists?** `targetFlags: ["independent"]` keeps artists on a distributor or their own label,
or whose bio says they self-release; `signingEvidence` shows why. Its precision on 50 artists with known deals (half
signed) is dated 2026-10-15; without a label the status is `unknown` — `followReleases` reads it.

<details><summary>More questions: free tools, run time, plans, free units, charges, legality</summary>

**Why not the Spotify artist page, kworb.net or Spotify for Artists?** Free, and they win for one artist, charting
artists' daily ranks (kworb.net) and your own roster. None scans 100 related artists, keeps history or writes a note.

**How long does a run take?** One row per mode (`OUTPUT.timing` of each run) — size `timeoutSecs` from it:

| Mode | Time | `timeoutSecs` |
|---|---|---|
| Free demo, 8 samples | measured 2026-09-27: 3.1 s; 6.1 s with AI | 120 |
| Your own records, rules | seconds — no source run | 300 |
| Live scout, 5 seeds, rules | source ≈ 1–3 min (estimate, measured run dated 2026-10-15) | 600 |
| + AI, Apify model access | ≈ 10–25 s per call, 8 at a time (estimate) | 1800 |
| + AI, free own key | measured 2026-09-27: ≈ 40.2 s per artist (1.5 per minute), 1–3 per run; rule scores after 2 min of rate-limit waiting | 900 |
| + AI, paid own key | every artist; worst case per 100: 100 × 40.2 s = 4020 s — stops before the 3600 s timeout, rows pushed | 3600 |

**Which Apify plan do I need?** Any plan runs the demo and `list` / `dataset` mode. The live scout runs two Store Actors
on your plan; if it refuses them, the run stops with nothing charged and says so — then use `list` / `dataset` and your
own AI key (a free key assesses a few artists per run, a paid one every artist).

**Do rule-scored artists use my free ones?** Yes, while the AI is unavailable — except the last 5, the AI reserve, so
your first AI-assessed artists are free too (`OUTPUT.chargeSplit.freeKeptForAi`).

**What does "qualified" mean?** In your listener band and countries, released recently enough, not excluded, not
already delivered (unless a growth alert), and scoring at least `minScore`.

**What happens if nothing matches my filters?** The run succeeds with 0 rows and charges nothing.

**Will I be charged for the same artist twice?** Only when it returns as a growth alert.

**Can I schedule it?** Yes — see [Run it weekly](#-run-it-weekly).

</details>

### 🧩 More Actors from the same developer

- **[Instagram Influencer Finder](https://apify.com/rich_minds/instagram-creator-qualifier)** — Check an artist's Instagram engagement and real audience before you DM them.
- **[YouTube Outlier Videos Finder](https://apify.com/rich_minds/youtube-video-research-ai)** — Spot the music videos and covers breaking out on YouTube before the charts do.

### 🆘 Support

Something missing or wrong? Open an issue on the Actor's page or message the developer in the Apify Console — buyers'
requests ship first.

### 📝 Changelog

Newest build first — what changed for you: output, status messages, prices.

- **0.3.2** (2026-09-27) — 2026-09-27.md — M-01.
- **0.3.1** (2026-09-27) — tier field `tier` (`label` = same value until 0.4); rolling seeds; `preset`; time saved.
- **0.2.2** (2026-09-27) — `OUTPUT.aiTokens`: tokens per AI-assessed artist.
- **0.2.1** (2026-09-27) — your brief alone starts the live scout (`OUTPUT.seedsFromBrief`); `ruleScore` in the Shortlist;
  A\&R tracker sheet.
- **0.1.1** (2026-09-27) — first release: discovery, growth alerts, scout score, signing status, AI note and pitch.

# Actor input Schema

## `seedArtistUrls` (type: `array`):

Paste 1–5 Spotify artists whose fans you want. Their 'Fans also like' artists are found, scanned and scored; the seeds themselves are not charged. The live search runs on your Apify plan; typing here next to the free demo starts it.

## `sourceMode` (type: `string`):

<b>actor</b> — live scout through two Store Actors on your account (seeds, a watchlist or just your brief). <b>dataset</b> — score an existing artist dataset. <b>list</b> — score records you paste. <code>{}</code> runs the free demo. The mode you choose always runs as chosen; only the untouched sample next to a typed seed switches to the live scout (spend-capped).

## `preset` (type: `string`):

Pick a niche and press Start: it fills the search fields and filters you left empty (seeds, Viral 50 charts, listener band, brief) and runs the live scout on your Apify plan, spend-capped by <code>maxDiscoveryChargeUsd</code>. Your own values always win. <b>Custom</b> = fill the fields yourself.

## `scoutBrief` (type: `string`):

Genre, scene, stage and market in plain words — the AI scores every artist against it (fitScore) and explains why. No seeds? With the live scout picked, the brief alone starts it: markets it names (UK, Dublin, afrobeats) become Viral 50 charts, artists named after “like” are searched.

## `minScore` (type: `integer`):

The field that decides what you pay: artists scoring below this are dropped and <b>not charged</b>. 75+ = hot, 50+ = warm.

## `maxQualified` (type: `integer`):

Hard cap on results — and the ceiling of what <b>this Actor</b> charges: at most this many × $0.01 with AI on (× $0.004 with AI off), e.g. 100 × $0.01 = $1. The source spend has its own cap right below. Best scores first.

## `maxDiscoveryChargeUsd` (type: `number`):

Hard cap on what the two Spotify Store Actors may charge your account per run (≈ $0.004 per scanned artist, $0.001 per discovery row) — $0.50 in the form and for an API call that leaves it out. Raise it for bigger scouts.

## `enableAi` (type: `boolean`):

Adds the AI verdict per artist: fit to your brief, career stage, bio facts quoted from Spotify, a 2-sentence scouting note and a pitch line. <b>On = $0.01 per qualified artist + AI tokens; off = $0.004</b> (rule score and template note only).

## `notifyEmail` (type: `string`):

After every run with at least one new artist, the digest (how many are new, growth alerts, the top 10 with links) is e-mailed here through Apify's send-mail Actor. Schedule the run weekly and only new or fast-growing artists reach your inbox. Never sent for the free demo.

## `artistUrls` (type: `array`):

Spotify artist links, <code>spotify:artist:</code> URIs or IDs scanned as they are (no discovery cost). On a weekly schedule an artist already delivered comes back only as a growth alert. Track / album / playlist links are skipped with a note. The live search runs on your Apify plan; typing here next to the free demo starts it.

## `playlistUrls` (type: `array`):

Spotify playlist links (e.g. an editorial new-music playlist or an indie curator's list). Every credited artist on the playlist is scanned. The live search runs on your Apify plan; typing here next to the free demo starts it.

## `viralChartCountries` (type: `array`):

Countries whose Viral 50 chart feeds the scout — the artists behind the tracks going viral there. The live search runs on your Apify plan; typing here next to the free demo starts it.

## `artistSearchTerms` (type: `array`):

Spotify's artist search matches artist <b>names</b> (not genres): each term returns the 10 best-matching artists. The live search runs on your Apify plan; typing here next to the free demo starts it.

## `minMonthlyListeners` (type: `integer`):

Artists below this are dropped before any charge.

## `maxMonthlyListeners` (type: `integer`):

Artists above this are dropped before any charge (already too big to scout). 0 = no upper limit — big artists then carry the <code>already\_big</code> flag.

## `releasedWithinDays` (type: `integer`):

Drops artists whose newest album or single is older than this. 0 = off.

## `targetCountries` (type: `array`):

Keep only artists with at least one of their top-5 listener cities in these countries (the booker's and the label's home market). Empty = any country.

## `minGrowthPct` (type: `number`):

From the second run on (the history is kept per artist): drops artists that grew less. 0 = off.

## `alertGrowthPct` (type: `number`):

An artist you already received comes back (and is charged once more) only when its monthly listeners grew at least this much since the last snapshot — <code>isGrowthAlert: true</code>. 0 = never re-deliver.

## `requireSocialLink` (type: `boolean`):

Drops artists without any social link on their Spotify page — nobody to DM.

## `targetFlags` (type: `array`):

Only deliver artists with at least one of these flags, e.g. <code>independent</code>, <code>growth\_alert</code>, <code>recent\_release</code>, <code>high\_momentum</code> (<code>growthAlert</code> works too). An unknown name stops the run with the valid list.

## `suppressionList` (type: `array`):

Artist names, Spotify links or IDs to never output (your roster, artists you passed on). Skipped before the scan, never charged.

## `yourOffer` (type: `string`):

One line about you (label, manager, promoter, playlist). The pitch line names it exactly as written — never an invented deal.

## `llmProvider` (type: `string`):

<b>Apify (no keys)</b> — the AI runs through Apify's built-in OpenRouter proxy; tokens are billed to your Apify account at OpenRouter's rates. <b>My own key</b> — your OpenAI / Anthropic / Gemini / Groq key instead; a free-tier key assesses only a few artists per run — expect 1–3 AI checks (measured 2026-09-27: ≈ 40.2 s per artist with a free google:gemini-3.6-flash key, 2 of 6 assessed); the AI stops after 2 minutes of rate-limit waiting and the rest keep their rule score, so the run stays short. A paid Groq / Gemini key (billing on) assesses every artist. README → “How long does a run take?” gives the <code>timeoutSecs</code> per mode.

## `llmModel` (type: `string`):

Leave empty for the default (<code>anthropic/claude-haiku-4.5</code>). Apify mode takes an OpenRouter slug such as <code>openai/gpt-4.1-mini</code>; own-key mode takes <code>provider:model</code>, e.g. <code>anthropic:claude-haiku-4-5-20251001</code>.

## `llmApiKey` (type: `string`):

Required when <b>AI model access</b> is <i>My own API key</i>. Stored encrypted by Apify, never logged.

## `aiCandidateMultiplier` (type: `integer`):

The best rule-scored artists get the AI pass, up to this multiple of <b>Max qualified</b> — the AI can lift a borderline artist over <b>Minimum scout score</b> or drop it. Higher = more thorough, more tokens.

## `slackWebhookUrl` (type: `string`):

A Slack incoming-webhook URL (<code>https://hooks.slack.com/services/…</code>). After every run with at least one new artist, the digest (new artists, growth alerts, the top 10 with links) is posted as a readable message. Never sent for the free demo.

## `discordWebhookUrl` (type: `string`):

A Discord channel webhook URL (<code>https://discord.com/api/webhooks/…</code>). The same digest as Slack, posted after every run with at least one new artist. Never sent for the free demo.

## `webhookUrl` (type: `string`):

Qualified artists are POSTed here as JSON (Zapier, Make, n8n, your CRM or A\&R sheet). Stored encrypted — Zapier / Make hook URLs carry their secret in the path.

## `webhookHeaders` (type: `object`):

Extra HTTP headers for the webhook, e.g. <code>{"Authorization": "Bearer …"}</code>. Stored encrypted by Apify, never logged.

## `webhookBatchSize` (type: `integer`):

1 = one POST per artist the moment it is ready. Higher = one POST per N artists.

## `dedupeAcrossRuns` (type: `boolean`):

Keeps every delivered artist and a monthly-listener snapshot per artist in a named key-value store on your account: the next run skips what you already have (never charged twice) and computes growth since the last run.

## `dedupeStoreName` (type: `string`):

Key-value store for the cross-run memory. Left at the default, the delivered-artist memory is kept per search (seeds, watchlist, playlists, charts, names): rewording <code>scoutBrief</code> keeps it. Scouting for several clients on one account? Type one name per client.

## `followReleases` (type: `boolean`):

Also scrapes each album and single: the record label (independent vs signed from the distributor) and the newest release's streams per day. Each release is one more $0.004 source row on your account — off by default.

## `maxArtistsToScan` (type: `integer`):

Upper bound on artists sent to the source per run (≈ $0.004 each on your account); discovered artists beyond it, and ones you already received, are never scanned.

## `datasetId` (type: `string`):

Only for <b>dataset</b> mode: a dataset of Spotify Play Count Scraper, automation-lab/spotify-scraper (artist items) or eduair94/spotify-scraper (artist\_play\_counts). Pick it so the Actor is granted read access.

## `itemsList` (type: `array`):

Only for <b>list</b> mode. JSON array of artist objects in the Spotify Play Count Scraper shape (at least <code>name</code> and <code>monthlyListeners</code>; README → List-mode rows). Prefilled with 8 fictional sample artists — the free demo.

## `discoveryActorId` (type: `string`):

Actor used for the artist scan in <b>actor</b> mode. Any Actor with the Spotify Play Count Scraper input (<code>urls</code>) and artist output works.

## `discoveryInput` (type: `object`):

Only for <b>actor</b> mode. Extra input merged into the source run as-is (its <code>urls</code> are scanned too). The live search runs that Store Actor on your Apify plan — if your plan cannot run Store Actors, use <b>dataset</b> mode.

## `maxToProcess` (type: `integer`):

Upper bound on how many loaded artists are scored in one run (controls run time). Default = 3 × max qualified.

## Actor input object example

```json
{
  "sourceMode": "list",
  "preset": "custom",
  "scoutBrief": "Emerging indie and alt-pop acts with a release in the last 6 months and real momentum in the UK or Ireland, not signed to a major",
  "minScore": 50,
  "maxQualified": 100,
  "maxDiscoveryChargeUsd": 0.5,
  "enableAi": true,
  "minMonthlyListeners": 1000,
  "maxMonthlyListeners": 500000,
  "releasedWithinDays": 365,
  "minGrowthPct": 0,
  "alertGrowthPct": 20,
  "requireSocialLink": false,
  "yourOffer": "Indie label in London that signs and develops alt-pop acts - we fund recording and radio plugging",
  "llmProvider": "apify",
  "aiCandidateMultiplier": 2,
  "webhookBatchSize": 1,
  "dedupeAcrossRuns": true,
  "dedupeStoreName": "spotify-artist-scout-ai-seen",
  "followReleases": false,
  "maxArtistsToScan": 200,
  "itemsList": [
    {
      "_type": "artist",
      "id": "5aMpL3sAmpLeHoLtArT001",
      "name": "Maren Holt (sample)",
      "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeHoLtArT001",
      "sampleAsOf": "2026-09-27",
      "verified": true,
      "followers": 9100,
      "monthlyListeners": 84200,
      "worldRank": null,
      "topCities": [
        {
          "country": "GB",
          "city": "London",
          "numberOfListeners": 9800
        },
        {
          "country": "GB",
          "city": "Manchester",
          "numberOfListeners": 4100
        },
        {
          "country": "IE",
          "city": "Dublin",
          "numberOfListeners": 3200
        },
        {
          "country": "DE",
          "city": "Berlin",
          "numberOfListeners": 2100
        },
        {
          "country": "US",
          "city": "New York",
          "numberOfListeners": 1900
        }
      ],
      "topTracks": [
        {
          "id": "5aMpL3tRaCkHoLt0000001",
          "name": "Glasshouse",
          "streamCount": 1240000
        },
        {
          "id": "5aMpL3tRaCkHoLt0000002",
          "name": "Paper Moons",
          "streamCount": 610000
        },
        {
          "id": "5aMpL3tRaCkHoLt0000003",
          "name": "Northbound",
          "streamCount": 402000
        },
        {
          "id": "5aMpL3tRaCkHoLt0000004",
          "name": "Salt Water",
          "streamCount": 188000
        },
        {
          "id": "5aMpL3tRaCkHoLt0000005",
          "name": "Still Life",
          "streamCount": 95000
        }
      ],
      "albums": [],
      "singles": [
        {
          "id": "5aMpL3rElHoLt000000001",
          "name": "Glasshouse",
          "type": "single",
          "releaseDate": "2026-09-12"
        },
        {
          "id": "5aMpL3rElHoLt000000002",
          "name": "Paper Moons",
          "type": "single",
          "releaseDate": "2026-07-18"
        },
        {
          "id": "5aMpL3rElHoLt000000003",
          "name": "Northbound",
          "type": "single",
          "releaseDate": "2026-05-02"
        }
      ],
      "biography": "Maren Holt is a London-based alt-pop songwriter who self-releases her music. Her single Glasshouse was picked for BBC Radio 1's Future Artists in 2026. She writes and produces with <a href=\"spotify:artist:5aMpL3sAmpLeReYnE00001\">Tomas Reyne</a>.",
      "externalLinks": [
        {
          "label": "instagram",
          "url": "https://instagram.com/marenholt.sample"
        },
        {
          "label": "tiktok",
          "url": "https://www.tiktok.com/@marenholt.sample"
        },
        {
          "label": "website",
          "url": "https://marenholt.example"
        }
      ],
      "coverArt": [
        {
          "url": "https://i.scdn.co/image/sample-maren-holt-640",
          "width": 640,
          "height": 640
        }
      ],
      "releases": [
        {
          "_type": "album",
          "id": "5aMpL3rElHoLt000000001",
          "name": "Glasshouse",
          "type": "single",
          "releaseDate": "2026-09-12",
          "label": "DistroKid",
          "copyright": [
            {
              "type": "P",
              "text": "2026 Maren Holt"
            }
          ],
          "tracks": [
            {
              "id": "5aMpL3tRaCkHoLt0000001",
              "name": "Glasshouse",
              "streamCount": 1240000
            }
          ]
        }
      ],
      "previousSnapshot": {
        "date": "2026-09-20",
        "monthlyListeners": 61500,
        "followers": 8400
      }
    },
    {
      "_type": "artist",
      "id": "5aMpL3sAmpLeLoWlIgHt02",
      "name": "The Lowlight Parade (sample)",
      "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeLoWlIgHt02",
      "sampleAsOf": "2026-09-27",
      "verified": true,
      "followers": 5800,
      "monthlyListeners": 23400,
      "topCities": [
        {
          "country": "GB",
          "city": "Leeds",
          "numberOfListeners": 3100
        },
        {
          "country": "GB",
          "city": "London",
          "numberOfListeners": 2900
        },
        {
          "country": "GB",
          "city": "Glasgow",
          "numberOfListeners": 1400
        },
        {
          "country": "NL",
          "city": "Amsterdam",
          "numberOfListeners": 700
        }
      ],
      "topTracks": [
        {
          "id": "5aMpL3tRaCkLoW00000001",
          "name": "Cinder Street",
          "streamCount": 390000
        },
        {
          "id": "5aMpL3tRaCkLoW00000002",
          "name": "Night Tram",
          "streamCount": 310000
        },
        {
          "id": "5aMpL3tRaCkLoW00000003",
          "name": "Halogen",
          "streamCount": 240000
        },
        {
          "id": "5aMpL3tRaCkLoW00000004",
          "name": "Weekday Saints",
          "streamCount": 160000
        }
      ],
      "albums": [
        {
          "id": "5aMpL3rElLoW0000000001",
          "name": "Small Hours",
          "type": "album",
          "releaseDate": "2024-10-11"
        }
      ],
      "singles": [
        {
          "id": "5aMpL3rElLoW0000000002",
          "name": "Cinder Street",
          "type": "single",
          "releaseDate": "2026-08-29"
        },
        {
          "id": "5aMpL3rElLoW0000000003",
          "name": "Halogen EP",
          "type": "ep",
          "releaseDate": "2026-03-14"
        }
      ],
      "biography": "Leeds-based four-piece The Lowlight Parade play wiry, melodic indie rock. The band signed to Northern Static Records in 2025 and toured the UK with <a href=\"spotify:artist:5aMpL3sAmpLeFoXg000003\">Foxglove Radio</a>.",
      "externalLinks": [
        {
          "label": "instagram",
          "url": "https://instagram.com/lowlightparade.sample"
        },
        {
          "label": "facebook",
          "url": "https://facebook.com/lowlightparade.sample"
        }
      ],
      "coverArt": [
        {
          "url": "https://i.scdn.co/image/sample-lowlight-parade-640",
          "width": 640,
          "height": 640
        }
      ],
      "releases": [
        {
          "_type": "album",
          "id": "5aMpL3rElLoW0000000002",
          "name": "Cinder Street",
          "type": "single",
          "releaseDate": "2026-08-29",
          "label": "Northern Static Records",
          "copyright": [
            {
              "type": "P",
              "text": "2026 Northern Static Records"
            }
          ],
          "tracks": [
            {
              "id": "5aMpL3tRaCkLoW00000001",
              "name": "Cinder Street",
              "streamCount": 390000
            }
          ]
        }
      ],
      "previousSnapshot": {
        "date": "2026-09-20",
        "monthlyListeners": 21900,
        "followers": 5650
      }
    },
    {
      "_type": "artist",
      "id": "5aMpL3sAmpLeSaOiRsE003",
      "name": "Saoirse Vale (sample)",
      "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeSaOiRsE003",
      "sampleAsOf": "2026-09-27",
      "verified": false,
      "followers": 2450,
      "monthlyListeners": 6900,
      "topCities": [
        {
          "country": "IE",
          "city": "Dublin",
          "numberOfListeners": 1300
        },
        {
          "country": "IE",
          "city": "Galway",
          "numberOfListeners": 900
        },
        {
          "country": "GB",
          "city": "London",
          "numberOfListeners": 500
        }
      ],
      "topTracks": [
        {
          "id": "5aMpL3tRaCkSaO00000001",
          "name": "Tidewater",
          "streamCount": 98000
        },
        {
          "id": "5aMpL3tRaCkSaO00000002",
          "name": "Low Field",
          "streamCount": 61000
        },
        {
          "id": "5aMpL3tRaCkSaO00000003",
          "name": "Burren Light",
          "streamCount": 42000
        }
      ],
      "albums": [],
      "singles": [
        {
          "id": "5aMpL3rElSaO0000000001",
          "name": "Tidewater",
          "type": "single",
          "releaseDate": "2026-06-20"
        },
        {
          "id": "5aMpL3rElSaO0000000002",
          "name": "Low Field",
          "type": "single",
          "releaseDate": "2025-11-07"
        }
      ],
      "biography": "Singer-songwriter born and raised in Galway, writing hushed folk-pop about the west coast.",
      "externalLinks": [
        {
          "label": "instagram",
          "url": "https://instagram.com/saoirsevale.sample"
        }
      ],
      "coverArt": [
        {
          "url": "https://i.scdn.co/image/sample-saoirse-vale-640",
          "width": 640,
          "height": 640
        }
      ]
    },
    {
      "_type": "artist",
      "id": "5aMpL3sAmpLeKaYoNiGh04",
      "name": "KAYO & The Night Bus (sample)",
      "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeKaYoNiGh04",
      "sampleAsOf": "2026-09-27",
      "verified": false,
      "followers": 3900,
      "monthlyListeners": 142000,
      "topCities": [
        {
          "country": "GB",
          "city": "London",
          "numberOfListeners": 21000
        },
        {
          "country": "US",
          "city": "Los Angeles",
          "numberOfListeners": 6400
        },
        {
          "country": "AU",
          "city": "Sydney",
          "numberOfListeners": 5100
        }
      ],
      "topTracks": [
        {
          "id": "5aMpL3tRaCkKaY00000001",
          "name": "Last Stop Garage",
          "streamCount": 2750000
        },
        {
          "id": "5aMpL3tRaCkKaY00000002",
          "name": "Nightliner",
          "streamCount": 120000
        },
        {
          "id": "5aMpL3tRaCkKaY00000003",
          "name": "Oyster Card",
          "streamCount": 80000
        }
      ],
      "albums": [],
      "singles": [
        {
          "id": "5aMpL3rElKaY0000000001",
          "name": "Last Stop Garage",
          "type": "single",
          "releaseDate": "2026-08-01"
        }
      ],
      "biography": "",
      "externalLinks": [],
      "coverArt": [
        {
          "url": "https://i.scdn.co/image/sample-kayo-night-bus-640",
          "width": 640,
          "height": 640
        }
      ]
    },
    {
      "_type": "artist",
      "id": "5aMpL3sAmpLeJuNoPaRk05",
      "name": "Juno Park (sample)",
      "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeJuNoPaRk05",
      "sampleAsOf": "2026-09-27",
      "verified": true,
      "followers": 58000,
      "monthlyListeners": 312000,
      "topCities": [
        {
          "country": "KR",
          "city": "Seoul",
          "numberOfListeners": 38000
        },
        {
          "country": "US",
          "city": "Los Angeles",
          "numberOfListeners": 14000
        },
        {
          "country": "ID",
          "city": "Jakarta",
          "numberOfListeners": 12500
        },
        {
          "country": "GB",
          "city": "London",
          "numberOfListeners": 7200
        }
      ],
      "topTracks": [
        {
          "id": "5aMpL3tRaCkJuN00000001",
          "name": "Neon Rain",
          "streamCount": 4100000
        },
        {
          "id": "5aMpL3tRaCkJuN00000002",
          "name": "Han River Blue",
          "streamCount": 2900000
        },
        {
          "id": "5aMpL3tRaCkJuN00000003",
          "name": "Soft Static",
          "streamCount": 2300000
        },
        {
          "id": "5aMpL3tRaCkJuN00000004",
          "name": "Paper Planes Home",
          "streamCount": 1600000
        }
      ],
      "albums": [
        {
          "id": "5aMpL3rElJuN0000000001",
          "name": "Soft Static",
          "type": "album",
          "releaseDate": "2026-04-17"
        }
      ],
      "singles": [
        {
          "id": "5aMpL3rElJuN0000000002",
          "name": "Neon Rain",
          "type": "single",
          "releaseDate": "2026-09-04"
        },
        {
          "id": "5aMpL3rElJuN0000000003",
          "name": "Han River Blue",
          "type": "single",
          "releaseDate": "2026-02-20"
        }
      ],
      "biography": "Juno Park is a Seoul-based bedroom-pop producer and singer. After two self-produced EPs she signed with Blue Harbor Music in 2025.",
      "externalLinks": [
        {
          "label": "instagram",
          "url": "https://instagram.com/junopark.sample"
        },
        {
          "label": "youtube",
          "url": "https://youtube.com/@junopark.sample"
        },
        {
          "label": "twitter",
          "url": "https://twitter.com/junopark_sample"
        }
      ],
      "coverArt": [
        {
          "url": "https://i.scdn.co/image/sample-juno-park-640",
          "width": 640,
          "height": 640
        }
      ],
      "previousSnapshot": {
        "date": "2026-09-20",
        "monthlyListeners": 290000,
        "followers": 56500
      }
    },
    {
      "_type": "artist",
      "id": "5aMpL3sAmpLeElLiScRa06",
      "name": "Ellis Crane (sample)",
      "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeElLiScRa06",
      "sampleAsOf": "2026-09-27",
      "verified": true,
      "followers": 640000,
      "monthlyListeners": 1850000,
      "worldRank": null,
      "topCities": [
        {
          "country": "US",
          "city": "Chicago",
          "numberOfListeners": 88000
        },
        {
          "country": "GB",
          "city": "London",
          "numberOfListeners": 61000
        }
      ],
      "topTracks": [
        {
          "id": "5aMpL3tRaCkElL00000001",
          "name": "Harbour Lights",
          "streamCount": 52000000
        },
        {
          "id": "5aMpL3tRaCkElL00000002",
          "name": "Copper",
          "streamCount": 31000000
        }
      ],
      "albums": [
        {
          "id": "5aMpL3rElElL0000000001",
          "name": "Copper",
          "type": "album",
          "releaseDate": "2026-05-15"
        }
      ],
      "singles": [],
      "biography": "Chicago singer-songwriter Ellis Crane signed to a major label in 2023.",
      "externalLinks": [
        {
          "label": "instagram",
          "url": "https://instagram.com/elliscrane.sample"
        }
      ],
      "coverArt": [
        {
          "url": "https://i.scdn.co/image/sample-ellis-crane-640",
          "width": 640,
          "height": 640
        }
      ]
    },
    {
      "_type": "artist",
      "id": "5aMpL3sAmpLeMoThHaRb07",
      "name": "Moth Harbour (sample)",
      "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeMoThHaRb07",
      "sampleAsOf": "2026-09-27",
      "verified": false,
      "followers": 7200,
      "monthlyListeners": 9800,
      "topCities": [
        {
          "country": "SE",
          "city": "Stockholm",
          "numberOfListeners": 1600
        },
        {
          "country": "GB",
          "city": "London",
          "numberOfListeners": 700
        }
      ],
      "topTracks": [
        {
          "id": "5aMpL3tRaCkMoT00000001",
          "name": "Lantern Season",
          "streamCount": 410000
        },
        {
          "id": "5aMpL3tRaCkMoT00000002",
          "name": "Glass Deer",
          "streamCount": 220000
        }
      ],
      "albums": [
        {
          "id": "5aMpL3rElMoT0000000001",
          "name": "Lantern Season",
          "type": "album",
          "releaseDate": "2024-11-02"
        }
      ],
      "singles": [],
      "biography": "Stockholm-based dream-pop duo Moth Harbour.",
      "externalLinks": [
        {
          "label": "instagram",
          "url": "https://instagram.com/mothharbour.sample"
        }
      ],
      "coverArt": [
        {
          "url": "https://i.scdn.co/image/sample-moth-harbour-640",
          "width": 640,
          "height": 640
        }
      ]
    },
    {
      "_type": "artist",
      "id": "5aMpL3sAmpLeNaDiAoKa08",
      "name": "Nadia Okafor (sample)",
      "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeNaDiAoKa08",
      "sampleAsOf": "2026-09-27",
      "verified": false,
      "followers": 12300,
      "monthlyListeners": 41800,
      "topCities": [
        {
          "country": "GB",
          "city": "London",
          "numberOfListeners": 6900
        },
        {
          "country": "NG",
          "city": "Lagos",
          "numberOfListeners": 4200
        },
        {
          "country": "GB",
          "city": "Birmingham",
          "numberOfListeners": 1800
        }
      ],
      "topTracks": [
        {
          "id": "5aMpL3tRaCkNaD00000001",
          "name": "Honey Tongue",
          "streamCount": 720000
        },
        {
          "id": "5aMpL3tRaCkNaD00000002",
          "name": "Brixton Sundays",
          "streamCount": 540000
        },
        {
          "id": "5aMpL3tRaCkNaD00000003",
          "name": "Gold Thread",
          "streamCount": 300000
        }
      ],
      "albums": [],
      "singles": [
        {
          "id": "5aMpL3rElNaD0000000001",
          "name": "Honey Tongue",
          "type": "single",
          "releaseDate": "2026-09-05"
        },
        {
          "id": "5aMpL3rElNaD0000000002",
          "name": "Brixton Sundays",
          "type": "single",
          "releaseDate": "2026-06-13"
        }
      ],
      "biography": "London-born Afro-soul singer Nadia Okafor blends Lagos highlife guitars with South London R&B. Her debut single Brixton Sundays was featured on BBC 1Xtra.",
      "externalLinks": [
        {
          "label": "instagram",
          "url": "https://instagram.com/nadiaokafor.sample"
        }
      ],
      "coverArt": [
        {
          "url": "https://i.scdn.co/image/sample-nadia-okafor-640",
          "width": 640,
          "height": 640
        }
      ],
      "previousSnapshot": {
        "date": "2026-09-20",
        "monthlyListeners": 36100,
        "followers": 11900
      }
    }
  ],
  "discoveryActorId": "beatanalytics/spotify-play-count-scraper",
  "discoveryInput": {}
}
```

# Actor output Schema

## `qualified` (type: `string`):

All qualified artists as JSON, best-scoring first.

## `sheet` (type: `string`):

The same artists as a spreadsheet.

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

JSON record with the funnel (loaded -> filtered -> AI-assessed -> qualified), per-reason skip counts, charged events by type, free-tier artists used and remaining, whether a budget limit was reached, webhook delivery counts and the dedupe store size.

# 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 = {
    "sourceMode": "list",
    "scoutBrief": "Emerging indie and alt-pop acts with a release in the last 6 months and real momentum in the UK or Ireland, not signed to a major",
    "maxDiscoveryChargeUsd": 0.5,
    "yourOffer": "Indie label in London that signs and develops alt-pop acts - we fund recording and radio plugging",
    "itemsList": [
        {
            "_type": "artist",
            "id": "5aMpL3sAmpLeHoLtArT001",
            "name": "Maren Holt (sample)",
            "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeHoLtArT001",
            "sampleAsOf": "2026-09-27",
            "verified": true,
            "followers": 9100,
            "monthlyListeners": 84200,
            "worldRank": null,
            "topCities": [
                {
                    "country": "GB",
                    "city": "London",
                    "numberOfListeners": 9800
                },
                {
                    "country": "GB",
                    "city": "Manchester",
                    "numberOfListeners": 4100
                },
                {
                    "country": "IE",
                    "city": "Dublin",
                    "numberOfListeners": 3200
                },
                {
                    "country": "DE",
                    "city": "Berlin",
                    "numberOfListeners": 2100
                },
                {
                    "country": "US",
                    "city": "New York",
                    "numberOfListeners": 1900
                }
            ],
            "topTracks": [
                {
                    "id": "5aMpL3tRaCkHoLt0000001",
                    "name": "Glasshouse",
                    "streamCount": 1240000
                },
                {
                    "id": "5aMpL3tRaCkHoLt0000002",
                    "name": "Paper Moons",
                    "streamCount": 610000
                },
                {
                    "id": "5aMpL3tRaCkHoLt0000003",
                    "name": "Northbound",
                    "streamCount": 402000
                },
                {
                    "id": "5aMpL3tRaCkHoLt0000004",
                    "name": "Salt Water",
                    "streamCount": 188000
                },
                {
                    "id": "5aMpL3tRaCkHoLt0000005",
                    "name": "Still Life",
                    "streamCount": 95000
                }
            ],
            "albums": [],
            "singles": [
                {
                    "id": "5aMpL3rElHoLt000000001",
                    "name": "Glasshouse",
                    "type": "single",
                    "releaseDate": "2026-09-12"
                },
                {
                    "id": "5aMpL3rElHoLt000000002",
                    "name": "Paper Moons",
                    "type": "single",
                    "releaseDate": "2026-07-18"
                },
                {
                    "id": "5aMpL3rElHoLt000000003",
                    "name": "Northbound",
                    "type": "single",
                    "releaseDate": "2026-05-02"
                }
            ],
            "biography": "Maren Holt is a London-based alt-pop songwriter who self-releases her music. Her single Glasshouse was picked for BBC Radio 1's Future Artists in 2026. She writes and produces with <a href=\"spotify:artist:5aMpL3sAmpLeReYnE00001\">Tomas Reyne</a>.",
            "externalLinks": [
                {
                    "label": "instagram",
                    "url": "https://instagram.com/marenholt.sample"
                },
                {
                    "label": "tiktok",
                    "url": "https://www.tiktok.com/@marenholt.sample"
                },
                {
                    "label": "website",
                    "url": "https://marenholt.example"
                }
            ],
            "coverArt": [
                {
                    "url": "https://i.scdn.co/image/sample-maren-holt-640",
                    "width": 640,
                    "height": 640
                }
            ],
            "releases": [
                {
                    "_type": "album",
                    "id": "5aMpL3rElHoLt000000001",
                    "name": "Glasshouse",
                    "type": "single",
                    "releaseDate": "2026-09-12",
                    "label": "DistroKid",
                    "copyright": [
                        {
                            "type": "P",
                            "text": "2026 Maren Holt"
                        }
                    ],
                    "tracks": [
                        {
                            "id": "5aMpL3tRaCkHoLt0000001",
                            "name": "Glasshouse",
                            "streamCount": 1240000
                        }
                    ]
                }
            ],
            "previousSnapshot": {
                "date": "2026-09-20",
                "monthlyListeners": 61500,
                "followers": 8400
            }
        },
        {
            "_type": "artist",
            "id": "5aMpL3sAmpLeLoWlIgHt02",
            "name": "The Lowlight Parade (sample)",
            "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeLoWlIgHt02",
            "sampleAsOf": "2026-09-27",
            "verified": true,
            "followers": 5800,
            "monthlyListeners": 23400,
            "topCities": [
                {
                    "country": "GB",
                    "city": "Leeds",
                    "numberOfListeners": 3100
                },
                {
                    "country": "GB",
                    "city": "London",
                    "numberOfListeners": 2900
                },
                {
                    "country": "GB",
                    "city": "Glasgow",
                    "numberOfListeners": 1400
                },
                {
                    "country": "NL",
                    "city": "Amsterdam",
                    "numberOfListeners": 700
                }
            ],
            "topTracks": [
                {
                    "id": "5aMpL3tRaCkLoW00000001",
                    "name": "Cinder Street",
                    "streamCount": 390000
                },
                {
                    "id": "5aMpL3tRaCkLoW00000002",
                    "name": "Night Tram",
                    "streamCount": 310000
                },
                {
                    "id": "5aMpL3tRaCkLoW00000003",
                    "name": "Halogen",
                    "streamCount": 240000
                },
                {
                    "id": "5aMpL3tRaCkLoW00000004",
                    "name": "Weekday Saints",
                    "streamCount": 160000
                }
            ],
            "albums": [
                {
                    "id": "5aMpL3rElLoW0000000001",
                    "name": "Small Hours",
                    "type": "album",
                    "releaseDate": "2024-10-11"
                }
            ],
            "singles": [
                {
                    "id": "5aMpL3rElLoW0000000002",
                    "name": "Cinder Street",
                    "type": "single",
                    "releaseDate": "2026-08-29"
                },
                {
                    "id": "5aMpL3rElLoW0000000003",
                    "name": "Halogen EP",
                    "type": "ep",
                    "releaseDate": "2026-03-14"
                }
            ],
            "biography": "Leeds-based four-piece The Lowlight Parade play wiry, melodic indie rock. The band signed to Northern Static Records in 2025 and toured the UK with <a href=\"spotify:artist:5aMpL3sAmpLeFoXg000003\">Foxglove Radio</a>.",
            "externalLinks": [
                {
                    "label": "instagram",
                    "url": "https://instagram.com/lowlightparade.sample"
                },
                {
                    "label": "facebook",
                    "url": "https://facebook.com/lowlightparade.sample"
                }
            ],
            "coverArt": [
                {
                    "url": "https://i.scdn.co/image/sample-lowlight-parade-640",
                    "width": 640,
                    "height": 640
                }
            ],
            "releases": [
                {
                    "_type": "album",
                    "id": "5aMpL3rElLoW0000000002",
                    "name": "Cinder Street",
                    "type": "single",
                    "releaseDate": "2026-08-29",
                    "label": "Northern Static Records",
                    "copyright": [
                        {
                            "type": "P",
                            "text": "2026 Northern Static Records"
                        }
                    ],
                    "tracks": [
                        {
                            "id": "5aMpL3tRaCkLoW00000001",
                            "name": "Cinder Street",
                            "streamCount": 390000
                        }
                    ]
                }
            ],
            "previousSnapshot": {
                "date": "2026-09-20",
                "monthlyListeners": 21900,
                "followers": 5650
            }
        },
        {
            "_type": "artist",
            "id": "5aMpL3sAmpLeSaOiRsE003",
            "name": "Saoirse Vale (sample)",
            "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeSaOiRsE003",
            "sampleAsOf": "2026-09-27",
            "verified": false,
            "followers": 2450,
            "monthlyListeners": 6900,
            "topCities": [
                {
                    "country": "IE",
                    "city": "Dublin",
                    "numberOfListeners": 1300
                },
                {
                    "country": "IE",
                    "city": "Galway",
                    "numberOfListeners": 900
                },
                {
                    "country": "GB",
                    "city": "London",
                    "numberOfListeners": 500
                }
            ],
            "topTracks": [
                {
                    "id": "5aMpL3tRaCkSaO00000001",
                    "name": "Tidewater",
                    "streamCount": 98000
                },
                {
                    "id": "5aMpL3tRaCkSaO00000002",
                    "name": "Low Field",
                    "streamCount": 61000
                },
                {
                    "id": "5aMpL3tRaCkSaO00000003",
                    "name": "Burren Light",
                    "streamCount": 42000
                }
            ],
            "albums": [],
            "singles": [
                {
                    "id": "5aMpL3rElSaO0000000001",
                    "name": "Tidewater",
                    "type": "single",
                    "releaseDate": "2026-06-20"
                },
                {
                    "id": "5aMpL3rElSaO0000000002",
                    "name": "Low Field",
                    "type": "single",
                    "releaseDate": "2025-11-07"
                }
            ],
            "biography": "Singer-songwriter born and raised in Galway, writing hushed folk-pop about the west coast.",
            "externalLinks": [
                {
                    "label": "instagram",
                    "url": "https://instagram.com/saoirsevale.sample"
                }
            ],
            "coverArt": [
                {
                    "url": "https://i.scdn.co/image/sample-saoirse-vale-640",
                    "width": 640,
                    "height": 640
                }
            ]
        },
        {
            "_type": "artist",
            "id": "5aMpL3sAmpLeKaYoNiGh04",
            "name": "KAYO & The Night Bus (sample)",
            "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeKaYoNiGh04",
            "sampleAsOf": "2026-09-27",
            "verified": false,
            "followers": 3900,
            "monthlyListeners": 142000,
            "topCities": [
                {
                    "country": "GB",
                    "city": "London",
                    "numberOfListeners": 21000
                },
                {
                    "country": "US",
                    "city": "Los Angeles",
                    "numberOfListeners": 6400
                },
                {
                    "country": "AU",
                    "city": "Sydney",
                    "numberOfListeners": 5100
                }
            ],
            "topTracks": [
                {
                    "id": "5aMpL3tRaCkKaY00000001",
                    "name": "Last Stop Garage",
                    "streamCount": 2750000
                },
                {
                    "id": "5aMpL3tRaCkKaY00000002",
                    "name": "Nightliner",
                    "streamCount": 120000
                },
                {
                    "id": "5aMpL3tRaCkKaY00000003",
                    "name": "Oyster Card",
                    "streamCount": 80000
                }
            ],
            "albums": [],
            "singles": [
                {
                    "id": "5aMpL3rElKaY0000000001",
                    "name": "Last Stop Garage",
                    "type": "single",
                    "releaseDate": "2026-08-01"
                }
            ],
            "biography": "",
            "externalLinks": [],
            "coverArt": [
                {
                    "url": "https://i.scdn.co/image/sample-kayo-night-bus-640",
                    "width": 640,
                    "height": 640
                }
            ]
        },
        {
            "_type": "artist",
            "id": "5aMpL3sAmpLeJuNoPaRk05",
            "name": "Juno Park (sample)",
            "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeJuNoPaRk05",
            "sampleAsOf": "2026-09-27",
            "verified": true,
            "followers": 58000,
            "monthlyListeners": 312000,
            "topCities": [
                {
                    "country": "KR",
                    "city": "Seoul",
                    "numberOfListeners": 38000
                },
                {
                    "country": "US",
                    "city": "Los Angeles",
                    "numberOfListeners": 14000
                },
                {
                    "country": "ID",
                    "city": "Jakarta",
                    "numberOfListeners": 12500
                },
                {
                    "country": "GB",
                    "city": "London",
                    "numberOfListeners": 7200
                }
            ],
            "topTracks": [
                {
                    "id": "5aMpL3tRaCkJuN00000001",
                    "name": "Neon Rain",
                    "streamCount": 4100000
                },
                {
                    "id": "5aMpL3tRaCkJuN00000002",
                    "name": "Han River Blue",
                    "streamCount": 2900000
                },
                {
                    "id": "5aMpL3tRaCkJuN00000003",
                    "name": "Soft Static",
                    "streamCount": 2300000
                },
                {
                    "id": "5aMpL3tRaCkJuN00000004",
                    "name": "Paper Planes Home",
                    "streamCount": 1600000
                }
            ],
            "albums": [
                {
                    "id": "5aMpL3rElJuN0000000001",
                    "name": "Soft Static",
                    "type": "album",
                    "releaseDate": "2026-04-17"
                }
            ],
            "singles": [
                {
                    "id": "5aMpL3rElJuN0000000002",
                    "name": "Neon Rain",
                    "type": "single",
                    "releaseDate": "2026-09-04"
                },
                {
                    "id": "5aMpL3rElJuN0000000003",
                    "name": "Han River Blue",
                    "type": "single",
                    "releaseDate": "2026-02-20"
                }
            ],
            "biography": "Juno Park is a Seoul-based bedroom-pop producer and singer. After two self-produced EPs she signed with Blue Harbor Music in 2025.",
            "externalLinks": [
                {
                    "label": "instagram",
                    "url": "https://instagram.com/junopark.sample"
                },
                {
                    "label": "youtube",
                    "url": "https://youtube.com/@junopark.sample"
                },
                {
                    "label": "twitter",
                    "url": "https://twitter.com/junopark_sample"
                }
            ],
            "coverArt": [
                {
                    "url": "https://i.scdn.co/image/sample-juno-park-640",
                    "width": 640,
                    "height": 640
                }
            ],
            "previousSnapshot": {
                "date": "2026-09-20",
                "monthlyListeners": 290000,
                "followers": 56500
            }
        },
        {
            "_type": "artist",
            "id": "5aMpL3sAmpLeElLiScRa06",
            "name": "Ellis Crane (sample)",
            "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeElLiScRa06",
            "sampleAsOf": "2026-09-27",
            "verified": true,
            "followers": 640000,
            "monthlyListeners": 1850000,
            "worldRank": null,
            "topCities": [
                {
                    "country": "US",
                    "city": "Chicago",
                    "numberOfListeners": 88000
                },
                {
                    "country": "GB",
                    "city": "London",
                    "numberOfListeners": 61000
                }
            ],
            "topTracks": [
                {
                    "id": "5aMpL3tRaCkElL00000001",
                    "name": "Harbour Lights",
                    "streamCount": 52000000
                },
                {
                    "id": "5aMpL3tRaCkElL00000002",
                    "name": "Copper",
                    "streamCount": 31000000
                }
            ],
            "albums": [
                {
                    "id": "5aMpL3rElElL0000000001",
                    "name": "Copper",
                    "type": "album",
                    "releaseDate": "2026-05-15"
                }
            ],
            "singles": [],
            "biography": "Chicago singer-songwriter Ellis Crane signed to a major label in 2023.",
            "externalLinks": [
                {
                    "label": "instagram",
                    "url": "https://instagram.com/elliscrane.sample"
                }
            ],
            "coverArt": [
                {
                    "url": "https://i.scdn.co/image/sample-ellis-crane-640",
                    "width": 640,
                    "height": 640
                }
            ]
        },
        {
            "_type": "artist",
            "id": "5aMpL3sAmpLeMoThHaRb07",
            "name": "Moth Harbour (sample)",
            "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeMoThHaRb07",
            "sampleAsOf": "2026-09-27",
            "verified": false,
            "followers": 7200,
            "monthlyListeners": 9800,
            "topCities": [
                {
                    "country": "SE",
                    "city": "Stockholm",
                    "numberOfListeners": 1600
                },
                {
                    "country": "GB",
                    "city": "London",
                    "numberOfListeners": 700
                }
            ],
            "topTracks": [
                {
                    "id": "5aMpL3tRaCkMoT00000001",
                    "name": "Lantern Season",
                    "streamCount": 410000
                },
                {
                    "id": "5aMpL3tRaCkMoT00000002",
                    "name": "Glass Deer",
                    "streamCount": 220000
                }
            ],
            "albums": [
                {
                    "id": "5aMpL3rElMoT0000000001",
                    "name": "Lantern Season",
                    "type": "album",
                    "releaseDate": "2024-11-02"
                }
            ],
            "singles": [],
            "biography": "Stockholm-based dream-pop duo Moth Harbour.",
            "externalLinks": [
                {
                    "label": "instagram",
                    "url": "https://instagram.com/mothharbour.sample"
                }
            ],
            "coverArt": [
                {
                    "url": "https://i.scdn.co/image/sample-moth-harbour-640",
                    "width": 640,
                    "height": 640
                }
            ]
        },
        {
            "_type": "artist",
            "id": "5aMpL3sAmpLeNaDiAoKa08",
            "name": "Nadia Okafor (sample)",
            "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeNaDiAoKa08",
            "sampleAsOf": "2026-09-27",
            "verified": false,
            "followers": 12300,
            "monthlyListeners": 41800,
            "topCities": [
                {
                    "country": "GB",
                    "city": "London",
                    "numberOfListeners": 6900
                },
                {
                    "country": "NG",
                    "city": "Lagos",
                    "numberOfListeners": 4200
                },
                {
                    "country": "GB",
                    "city": "Birmingham",
                    "numberOfListeners": 1800
                }
            ],
            "topTracks": [
                {
                    "id": "5aMpL3tRaCkNaD00000001",
                    "name": "Honey Tongue",
                    "streamCount": 720000
                },
                {
                    "id": "5aMpL3tRaCkNaD00000002",
                    "name": "Brixton Sundays",
                    "streamCount": 540000
                },
                {
                    "id": "5aMpL3tRaCkNaD00000003",
                    "name": "Gold Thread",
                    "streamCount": 300000
                }
            ],
            "albums": [],
            "singles": [
                {
                    "id": "5aMpL3rElNaD0000000001",
                    "name": "Honey Tongue",
                    "type": "single",
                    "releaseDate": "2026-09-05"
                },
                {
                    "id": "5aMpL3rElNaD0000000002",
                    "name": "Brixton Sundays",
                    "type": "single",
                    "releaseDate": "2026-06-13"
                }
            ],
            "biography": "London-born Afro-soul singer Nadia Okafor blends Lagos highlife guitars with South London R&B. Her debut single Brixton Sundays was featured on BBC 1Xtra.",
            "externalLinks": [
                {
                    "label": "instagram",
                    "url": "https://instagram.com/nadiaokafor.sample"
                }
            ],
            "coverArt": [
                {
                    "url": "https://i.scdn.co/image/sample-nadia-okafor-640",
                    "width": 640,
                    "height": 640
                }
            ],
            "previousSnapshot": {
                "date": "2026-09-20",
                "monthlyListeners": 36100,
                "followers": 11900
            }
        }
    ],
    "discoveryInput": {}
};

// Run the Actor and wait for it to finish
const run = await client.actor("rich_minds/spotify-artist-scout-ai").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 = {
    "sourceMode": "list",
    "scoutBrief": "Emerging indie and alt-pop acts with a release in the last 6 months and real momentum in the UK or Ireland, not signed to a major",
    "maxDiscoveryChargeUsd": 0.5,
    "yourOffer": "Indie label in London that signs and develops alt-pop acts - we fund recording and radio plugging",
    "itemsList": [
        {
            "_type": "artist",
            "id": "5aMpL3sAmpLeHoLtArT001",
            "name": "Maren Holt (sample)",
            "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeHoLtArT001",
            "sampleAsOf": "2026-09-27",
            "verified": True,
            "followers": 9100,
            "monthlyListeners": 84200,
            "worldRank": None,
            "topCities": [
                {
                    "country": "GB",
                    "city": "London",
                    "numberOfListeners": 9800,
                },
                {
                    "country": "GB",
                    "city": "Manchester",
                    "numberOfListeners": 4100,
                },
                {
                    "country": "IE",
                    "city": "Dublin",
                    "numberOfListeners": 3200,
                },
                {
                    "country": "DE",
                    "city": "Berlin",
                    "numberOfListeners": 2100,
                },
                {
                    "country": "US",
                    "city": "New York",
                    "numberOfListeners": 1900,
                },
            ],
            "topTracks": [
                {
                    "id": "5aMpL3tRaCkHoLt0000001",
                    "name": "Glasshouse",
                    "streamCount": 1240000,
                },
                {
                    "id": "5aMpL3tRaCkHoLt0000002",
                    "name": "Paper Moons",
                    "streamCount": 610000,
                },
                {
                    "id": "5aMpL3tRaCkHoLt0000003",
                    "name": "Northbound",
                    "streamCount": 402000,
                },
                {
                    "id": "5aMpL3tRaCkHoLt0000004",
                    "name": "Salt Water",
                    "streamCount": 188000,
                },
                {
                    "id": "5aMpL3tRaCkHoLt0000005",
                    "name": "Still Life",
                    "streamCount": 95000,
                },
            ],
            "albums": [],
            "singles": [
                {
                    "id": "5aMpL3rElHoLt000000001",
                    "name": "Glasshouse",
                    "type": "single",
                    "releaseDate": "2026-09-12",
                },
                {
                    "id": "5aMpL3rElHoLt000000002",
                    "name": "Paper Moons",
                    "type": "single",
                    "releaseDate": "2026-07-18",
                },
                {
                    "id": "5aMpL3rElHoLt000000003",
                    "name": "Northbound",
                    "type": "single",
                    "releaseDate": "2026-05-02",
                },
            ],
            "biography": "Maren Holt is a London-based alt-pop songwriter who self-releases her music. Her single Glasshouse was picked for BBC Radio 1's Future Artists in 2026. She writes and produces with <a href=\"spotify:artist:5aMpL3sAmpLeReYnE00001\">Tomas Reyne</a>.",
            "externalLinks": [
                {
                    "label": "instagram",
                    "url": "https://instagram.com/marenholt.sample",
                },
                {
                    "label": "tiktok",
                    "url": "https://www.tiktok.com/@marenholt.sample",
                },
                {
                    "label": "website",
                    "url": "https://marenholt.example",
                },
            ],
            "coverArt": [{
                    "url": "https://i.scdn.co/image/sample-maren-holt-640",
                    "width": 640,
                    "height": 640,
                }],
            "releases": [{
                    "_type": "album",
                    "id": "5aMpL3rElHoLt000000001",
                    "name": "Glasshouse",
                    "type": "single",
                    "releaseDate": "2026-09-12",
                    "label": "DistroKid",
                    "copyright": [{
                            "type": "P",
                            "text": "2026 Maren Holt",
                        }],
                    "tracks": [{
                            "id": "5aMpL3tRaCkHoLt0000001",
                            "name": "Glasshouse",
                            "streamCount": 1240000,
                        }],
                }],
            "previousSnapshot": {
                "date": "2026-09-20",
                "monthlyListeners": 61500,
                "followers": 8400,
            },
        },
        {
            "_type": "artist",
            "id": "5aMpL3sAmpLeLoWlIgHt02",
            "name": "The Lowlight Parade (sample)",
            "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeLoWlIgHt02",
            "sampleAsOf": "2026-09-27",
            "verified": True,
            "followers": 5800,
            "monthlyListeners": 23400,
            "topCities": [
                {
                    "country": "GB",
                    "city": "Leeds",
                    "numberOfListeners": 3100,
                },
                {
                    "country": "GB",
                    "city": "London",
                    "numberOfListeners": 2900,
                },
                {
                    "country": "GB",
                    "city": "Glasgow",
                    "numberOfListeners": 1400,
                },
                {
                    "country": "NL",
                    "city": "Amsterdam",
                    "numberOfListeners": 700,
                },
            ],
            "topTracks": [
                {
                    "id": "5aMpL3tRaCkLoW00000001",
                    "name": "Cinder Street",
                    "streamCount": 390000,
                },
                {
                    "id": "5aMpL3tRaCkLoW00000002",
                    "name": "Night Tram",
                    "streamCount": 310000,
                },
                {
                    "id": "5aMpL3tRaCkLoW00000003",
                    "name": "Halogen",
                    "streamCount": 240000,
                },
                {
                    "id": "5aMpL3tRaCkLoW00000004",
                    "name": "Weekday Saints",
                    "streamCount": 160000,
                },
            ],
            "albums": [{
                    "id": "5aMpL3rElLoW0000000001",
                    "name": "Small Hours",
                    "type": "album",
                    "releaseDate": "2024-10-11",
                }],
            "singles": [
                {
                    "id": "5aMpL3rElLoW0000000002",
                    "name": "Cinder Street",
                    "type": "single",
                    "releaseDate": "2026-08-29",
                },
                {
                    "id": "5aMpL3rElLoW0000000003",
                    "name": "Halogen EP",
                    "type": "ep",
                    "releaseDate": "2026-03-14",
                },
            ],
            "biography": "Leeds-based four-piece The Lowlight Parade play wiry, melodic indie rock. The band signed to Northern Static Records in 2025 and toured the UK with <a href=\"spotify:artist:5aMpL3sAmpLeFoXg000003\">Foxglove Radio</a>.",
            "externalLinks": [
                {
                    "label": "instagram",
                    "url": "https://instagram.com/lowlightparade.sample",
                },
                {
                    "label": "facebook",
                    "url": "https://facebook.com/lowlightparade.sample",
                },
            ],
            "coverArt": [{
                    "url": "https://i.scdn.co/image/sample-lowlight-parade-640",
                    "width": 640,
                    "height": 640,
                }],
            "releases": [{
                    "_type": "album",
                    "id": "5aMpL3rElLoW0000000002",
                    "name": "Cinder Street",
                    "type": "single",
                    "releaseDate": "2026-08-29",
                    "label": "Northern Static Records",
                    "copyright": [{
                            "type": "P",
                            "text": "2026 Northern Static Records",
                        }],
                    "tracks": [{
                            "id": "5aMpL3tRaCkLoW00000001",
                            "name": "Cinder Street",
                            "streamCount": 390000,
                        }],
                }],
            "previousSnapshot": {
                "date": "2026-09-20",
                "monthlyListeners": 21900,
                "followers": 5650,
            },
        },
        {
            "_type": "artist",
            "id": "5aMpL3sAmpLeSaOiRsE003",
            "name": "Saoirse Vale (sample)",
            "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeSaOiRsE003",
            "sampleAsOf": "2026-09-27",
            "verified": False,
            "followers": 2450,
            "monthlyListeners": 6900,
            "topCities": [
                {
                    "country": "IE",
                    "city": "Dublin",
                    "numberOfListeners": 1300,
                },
                {
                    "country": "IE",
                    "city": "Galway",
                    "numberOfListeners": 900,
                },
                {
                    "country": "GB",
                    "city": "London",
                    "numberOfListeners": 500,
                },
            ],
            "topTracks": [
                {
                    "id": "5aMpL3tRaCkSaO00000001",
                    "name": "Tidewater",
                    "streamCount": 98000,
                },
                {
                    "id": "5aMpL3tRaCkSaO00000002",
                    "name": "Low Field",
                    "streamCount": 61000,
                },
                {
                    "id": "5aMpL3tRaCkSaO00000003",
                    "name": "Burren Light",
                    "streamCount": 42000,
                },
            ],
            "albums": [],
            "singles": [
                {
                    "id": "5aMpL3rElSaO0000000001",
                    "name": "Tidewater",
                    "type": "single",
                    "releaseDate": "2026-06-20",
                },
                {
                    "id": "5aMpL3rElSaO0000000002",
                    "name": "Low Field",
                    "type": "single",
                    "releaseDate": "2025-11-07",
                },
            ],
            "biography": "Singer-songwriter born and raised in Galway, writing hushed folk-pop about the west coast.",
            "externalLinks": [{
                    "label": "instagram",
                    "url": "https://instagram.com/saoirsevale.sample",
                }],
            "coverArt": [{
                    "url": "https://i.scdn.co/image/sample-saoirse-vale-640",
                    "width": 640,
                    "height": 640,
                }],
        },
        {
            "_type": "artist",
            "id": "5aMpL3sAmpLeKaYoNiGh04",
            "name": "KAYO & The Night Bus (sample)",
            "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeKaYoNiGh04",
            "sampleAsOf": "2026-09-27",
            "verified": False,
            "followers": 3900,
            "monthlyListeners": 142000,
            "topCities": [
                {
                    "country": "GB",
                    "city": "London",
                    "numberOfListeners": 21000,
                },
                {
                    "country": "US",
                    "city": "Los Angeles",
                    "numberOfListeners": 6400,
                },
                {
                    "country": "AU",
                    "city": "Sydney",
                    "numberOfListeners": 5100,
                },
            ],
            "topTracks": [
                {
                    "id": "5aMpL3tRaCkKaY00000001",
                    "name": "Last Stop Garage",
                    "streamCount": 2750000,
                },
                {
                    "id": "5aMpL3tRaCkKaY00000002",
                    "name": "Nightliner",
                    "streamCount": 120000,
                },
                {
                    "id": "5aMpL3tRaCkKaY00000003",
                    "name": "Oyster Card",
                    "streamCount": 80000,
                },
            ],
            "albums": [],
            "singles": [{
                    "id": "5aMpL3rElKaY0000000001",
                    "name": "Last Stop Garage",
                    "type": "single",
                    "releaseDate": "2026-08-01",
                }],
            "biography": "",
            "externalLinks": [],
            "coverArt": [{
                    "url": "https://i.scdn.co/image/sample-kayo-night-bus-640",
                    "width": 640,
                    "height": 640,
                }],
        },
        {
            "_type": "artist",
            "id": "5aMpL3sAmpLeJuNoPaRk05",
            "name": "Juno Park (sample)",
            "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeJuNoPaRk05",
            "sampleAsOf": "2026-09-27",
            "verified": True,
            "followers": 58000,
            "monthlyListeners": 312000,
            "topCities": [
                {
                    "country": "KR",
                    "city": "Seoul",
                    "numberOfListeners": 38000,
                },
                {
                    "country": "US",
                    "city": "Los Angeles",
                    "numberOfListeners": 14000,
                },
                {
                    "country": "ID",
                    "city": "Jakarta",
                    "numberOfListeners": 12500,
                },
                {
                    "country": "GB",
                    "city": "London",
                    "numberOfListeners": 7200,
                },
            ],
            "topTracks": [
                {
                    "id": "5aMpL3tRaCkJuN00000001",
                    "name": "Neon Rain",
                    "streamCount": 4100000,
                },
                {
                    "id": "5aMpL3tRaCkJuN00000002",
                    "name": "Han River Blue",
                    "streamCount": 2900000,
                },
                {
                    "id": "5aMpL3tRaCkJuN00000003",
                    "name": "Soft Static",
                    "streamCount": 2300000,
                },
                {
                    "id": "5aMpL3tRaCkJuN00000004",
                    "name": "Paper Planes Home",
                    "streamCount": 1600000,
                },
            ],
            "albums": [{
                    "id": "5aMpL3rElJuN0000000001",
                    "name": "Soft Static",
                    "type": "album",
                    "releaseDate": "2026-04-17",
                }],
            "singles": [
                {
                    "id": "5aMpL3rElJuN0000000002",
                    "name": "Neon Rain",
                    "type": "single",
                    "releaseDate": "2026-09-04",
                },
                {
                    "id": "5aMpL3rElJuN0000000003",
                    "name": "Han River Blue",
                    "type": "single",
                    "releaseDate": "2026-02-20",
                },
            ],
            "biography": "Juno Park is a Seoul-based bedroom-pop producer and singer. After two self-produced EPs she signed with Blue Harbor Music in 2025.",
            "externalLinks": [
                {
                    "label": "instagram",
                    "url": "https://instagram.com/junopark.sample",
                },
                {
                    "label": "youtube",
                    "url": "https://youtube.com/@junopark.sample",
                },
                {
                    "label": "twitter",
                    "url": "https://twitter.com/junopark_sample",
                },
            ],
            "coverArt": [{
                    "url": "https://i.scdn.co/image/sample-juno-park-640",
                    "width": 640,
                    "height": 640,
                }],
            "previousSnapshot": {
                "date": "2026-09-20",
                "monthlyListeners": 290000,
                "followers": 56500,
            },
        },
        {
            "_type": "artist",
            "id": "5aMpL3sAmpLeElLiScRa06",
            "name": "Ellis Crane (sample)",
            "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeElLiScRa06",
            "sampleAsOf": "2026-09-27",
            "verified": True,
            "followers": 640000,
            "monthlyListeners": 1850000,
            "worldRank": None,
            "topCities": [
                {
                    "country": "US",
                    "city": "Chicago",
                    "numberOfListeners": 88000,
                },
                {
                    "country": "GB",
                    "city": "London",
                    "numberOfListeners": 61000,
                },
            ],
            "topTracks": [
                {
                    "id": "5aMpL3tRaCkElL00000001",
                    "name": "Harbour Lights",
                    "streamCount": 52000000,
                },
                {
                    "id": "5aMpL3tRaCkElL00000002",
                    "name": "Copper",
                    "streamCount": 31000000,
                },
            ],
            "albums": [{
                    "id": "5aMpL3rElElL0000000001",
                    "name": "Copper",
                    "type": "album",
                    "releaseDate": "2026-05-15",
                }],
            "singles": [],
            "biography": "Chicago singer-songwriter Ellis Crane signed to a major label in 2023.",
            "externalLinks": [{
                    "label": "instagram",
                    "url": "https://instagram.com/elliscrane.sample",
                }],
            "coverArt": [{
                    "url": "https://i.scdn.co/image/sample-ellis-crane-640",
                    "width": 640,
                    "height": 640,
                }],
        },
        {
            "_type": "artist",
            "id": "5aMpL3sAmpLeMoThHaRb07",
            "name": "Moth Harbour (sample)",
            "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeMoThHaRb07",
            "sampleAsOf": "2026-09-27",
            "verified": False,
            "followers": 7200,
            "monthlyListeners": 9800,
            "topCities": [
                {
                    "country": "SE",
                    "city": "Stockholm",
                    "numberOfListeners": 1600,
                },
                {
                    "country": "GB",
                    "city": "London",
                    "numberOfListeners": 700,
                },
            ],
            "topTracks": [
                {
                    "id": "5aMpL3tRaCkMoT00000001",
                    "name": "Lantern Season",
                    "streamCount": 410000,
                },
                {
                    "id": "5aMpL3tRaCkMoT00000002",
                    "name": "Glass Deer",
                    "streamCount": 220000,
                },
            ],
            "albums": [{
                    "id": "5aMpL3rElMoT0000000001",
                    "name": "Lantern Season",
                    "type": "album",
                    "releaseDate": "2024-11-02",
                }],
            "singles": [],
            "biography": "Stockholm-based dream-pop duo Moth Harbour.",
            "externalLinks": [{
                    "label": "instagram",
                    "url": "https://instagram.com/mothharbour.sample",
                }],
            "coverArt": [{
                    "url": "https://i.scdn.co/image/sample-moth-harbour-640",
                    "width": 640,
                    "height": 640,
                }],
        },
        {
            "_type": "artist",
            "id": "5aMpL3sAmpLeNaDiAoKa08",
            "name": "Nadia Okafor (sample)",
            "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeNaDiAoKa08",
            "sampleAsOf": "2026-09-27",
            "verified": False,
            "followers": 12300,
            "monthlyListeners": 41800,
            "topCities": [
                {
                    "country": "GB",
                    "city": "London",
                    "numberOfListeners": 6900,
                },
                {
                    "country": "NG",
                    "city": "Lagos",
                    "numberOfListeners": 4200,
                },
                {
                    "country": "GB",
                    "city": "Birmingham",
                    "numberOfListeners": 1800,
                },
            ],
            "topTracks": [
                {
                    "id": "5aMpL3tRaCkNaD00000001",
                    "name": "Honey Tongue",
                    "streamCount": 720000,
                },
                {
                    "id": "5aMpL3tRaCkNaD00000002",
                    "name": "Brixton Sundays",
                    "streamCount": 540000,
                },
                {
                    "id": "5aMpL3tRaCkNaD00000003",
                    "name": "Gold Thread",
                    "streamCount": 300000,
                },
            ],
            "albums": [],
            "singles": [
                {
                    "id": "5aMpL3rElNaD0000000001",
                    "name": "Honey Tongue",
                    "type": "single",
                    "releaseDate": "2026-09-05",
                },
                {
                    "id": "5aMpL3rElNaD0000000002",
                    "name": "Brixton Sundays",
                    "type": "single",
                    "releaseDate": "2026-06-13",
                },
            ],
            "biography": "London-born Afro-soul singer Nadia Okafor blends Lagos highlife guitars with South London R&B. Her debut single Brixton Sundays was featured on BBC 1Xtra.",
            "externalLinks": [{
                    "label": "instagram",
                    "url": "https://instagram.com/nadiaokafor.sample",
                }],
            "coverArt": [{
                    "url": "https://i.scdn.co/image/sample-nadia-okafor-640",
                    "width": 640,
                    "height": 640,
                }],
            "previousSnapshot": {
                "date": "2026-09-20",
                "monthlyListeners": 36100,
                "followers": 11900,
            },
        },
    ],
    "discoveryInput": {},
}

# Run the Actor and wait for it to finish
run = client.actor("rich_minds/spotify-artist-scout-ai").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "sourceMode": "list",
  "scoutBrief": "Emerging indie and alt-pop acts with a release in the last 6 months and real momentum in the UK or Ireland, not signed to a major",
  "maxDiscoveryChargeUsd": 0.5,
  "yourOffer": "Indie label in London that signs and develops alt-pop acts - we fund recording and radio plugging",
  "itemsList": [
    {
      "_type": "artist",
      "id": "5aMpL3sAmpLeHoLtArT001",
      "name": "Maren Holt (sample)",
      "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeHoLtArT001",
      "sampleAsOf": "2026-09-27",
      "verified": true,
      "followers": 9100,
      "monthlyListeners": 84200,
      "worldRank": null,
      "topCities": [
        {
          "country": "GB",
          "city": "London",
          "numberOfListeners": 9800
        },
        {
          "country": "GB",
          "city": "Manchester",
          "numberOfListeners": 4100
        },
        {
          "country": "IE",
          "city": "Dublin",
          "numberOfListeners": 3200
        },
        {
          "country": "DE",
          "city": "Berlin",
          "numberOfListeners": 2100
        },
        {
          "country": "US",
          "city": "New York",
          "numberOfListeners": 1900
        }
      ],
      "topTracks": [
        {
          "id": "5aMpL3tRaCkHoLt0000001",
          "name": "Glasshouse",
          "streamCount": 1240000
        },
        {
          "id": "5aMpL3tRaCkHoLt0000002",
          "name": "Paper Moons",
          "streamCount": 610000
        },
        {
          "id": "5aMpL3tRaCkHoLt0000003",
          "name": "Northbound",
          "streamCount": 402000
        },
        {
          "id": "5aMpL3tRaCkHoLt0000004",
          "name": "Salt Water",
          "streamCount": 188000
        },
        {
          "id": "5aMpL3tRaCkHoLt0000005",
          "name": "Still Life",
          "streamCount": 95000
        }
      ],
      "albums": [],
      "singles": [
        {
          "id": "5aMpL3rElHoLt000000001",
          "name": "Glasshouse",
          "type": "single",
          "releaseDate": "2026-09-12"
        },
        {
          "id": "5aMpL3rElHoLt000000002",
          "name": "Paper Moons",
          "type": "single",
          "releaseDate": "2026-07-18"
        },
        {
          "id": "5aMpL3rElHoLt000000003",
          "name": "Northbound",
          "type": "single",
          "releaseDate": "2026-05-02"
        }
      ],
      "biography": "Maren Holt is a London-based alt-pop songwriter who self-releases her music. Her single Glasshouse was picked for BBC Radio 1'\''s Future Artists in 2026. She writes and produces with <a href=\\"spotify:artist:5aMpL3sAmpLeReYnE00001\\">Tomas Reyne</a>.",
      "externalLinks": [
        {
          "label": "instagram",
          "url": "https://instagram.com/marenholt.sample"
        },
        {
          "label": "tiktok",
          "url": "https://www.tiktok.com/@marenholt.sample"
        },
        {
          "label": "website",
          "url": "https://marenholt.example"
        }
      ],
      "coverArt": [
        {
          "url": "https://i.scdn.co/image/sample-maren-holt-640",
          "width": 640,
          "height": 640
        }
      ],
      "releases": [
        {
          "_type": "album",
          "id": "5aMpL3rElHoLt000000001",
          "name": "Glasshouse",
          "type": "single",
          "releaseDate": "2026-09-12",
          "label": "DistroKid",
          "copyright": [
            {
              "type": "P",
              "text": "2026 Maren Holt"
            }
          ],
          "tracks": [
            {
              "id": "5aMpL3tRaCkHoLt0000001",
              "name": "Glasshouse",
              "streamCount": 1240000
            }
          ]
        }
      ],
      "previousSnapshot": {
        "date": "2026-09-20",
        "monthlyListeners": 61500,
        "followers": 8400
      }
    },
    {
      "_type": "artist",
      "id": "5aMpL3sAmpLeLoWlIgHt02",
      "name": "The Lowlight Parade (sample)",
      "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeLoWlIgHt02",
      "sampleAsOf": "2026-09-27",
      "verified": true,
      "followers": 5800,
      "monthlyListeners": 23400,
      "topCities": [
        {
          "country": "GB",
          "city": "Leeds",
          "numberOfListeners": 3100
        },
        {
          "country": "GB",
          "city": "London",
          "numberOfListeners": 2900
        },
        {
          "country": "GB",
          "city": "Glasgow",
          "numberOfListeners": 1400
        },
        {
          "country": "NL",
          "city": "Amsterdam",
          "numberOfListeners": 700
        }
      ],
      "topTracks": [
        {
          "id": "5aMpL3tRaCkLoW00000001",
          "name": "Cinder Street",
          "streamCount": 390000
        },
        {
          "id": "5aMpL3tRaCkLoW00000002",
          "name": "Night Tram",
          "streamCount": 310000
        },
        {
          "id": "5aMpL3tRaCkLoW00000003",
          "name": "Halogen",
          "streamCount": 240000
        },
        {
          "id": "5aMpL3tRaCkLoW00000004",
          "name": "Weekday Saints",
          "streamCount": 160000
        }
      ],
      "albums": [
        {
          "id": "5aMpL3rElLoW0000000001",
          "name": "Small Hours",
          "type": "album",
          "releaseDate": "2024-10-11"
        }
      ],
      "singles": [
        {
          "id": "5aMpL3rElLoW0000000002",
          "name": "Cinder Street",
          "type": "single",
          "releaseDate": "2026-08-29"
        },
        {
          "id": "5aMpL3rElLoW0000000003",
          "name": "Halogen EP",
          "type": "ep",
          "releaseDate": "2026-03-14"
        }
      ],
      "biography": "Leeds-based four-piece The Lowlight Parade play wiry, melodic indie rock. The band signed to Northern Static Records in 2025 and toured the UK with <a href=\\"spotify:artist:5aMpL3sAmpLeFoXg000003\\">Foxglove Radio</a>.",
      "externalLinks": [
        {
          "label": "instagram",
          "url": "https://instagram.com/lowlightparade.sample"
        },
        {
          "label": "facebook",
          "url": "https://facebook.com/lowlightparade.sample"
        }
      ],
      "coverArt": [
        {
          "url": "https://i.scdn.co/image/sample-lowlight-parade-640",
          "width": 640,
          "height": 640
        }
      ],
      "releases": [
        {
          "_type": "album",
          "id": "5aMpL3rElLoW0000000002",
          "name": "Cinder Street",
          "type": "single",
          "releaseDate": "2026-08-29",
          "label": "Northern Static Records",
          "copyright": [
            {
              "type": "P",
              "text": "2026 Northern Static Records"
            }
          ],
          "tracks": [
            {
              "id": "5aMpL3tRaCkLoW00000001",
              "name": "Cinder Street",
              "streamCount": 390000
            }
          ]
        }
      ],
      "previousSnapshot": {
        "date": "2026-09-20",
        "monthlyListeners": 21900,
        "followers": 5650
      }
    },
    {
      "_type": "artist",
      "id": "5aMpL3sAmpLeSaOiRsE003",
      "name": "Saoirse Vale (sample)",
      "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeSaOiRsE003",
      "sampleAsOf": "2026-09-27",
      "verified": false,
      "followers": 2450,
      "monthlyListeners": 6900,
      "topCities": [
        {
          "country": "IE",
          "city": "Dublin",
          "numberOfListeners": 1300
        },
        {
          "country": "IE",
          "city": "Galway",
          "numberOfListeners": 900
        },
        {
          "country": "GB",
          "city": "London",
          "numberOfListeners": 500
        }
      ],
      "topTracks": [
        {
          "id": "5aMpL3tRaCkSaO00000001",
          "name": "Tidewater",
          "streamCount": 98000
        },
        {
          "id": "5aMpL3tRaCkSaO00000002",
          "name": "Low Field",
          "streamCount": 61000
        },
        {
          "id": "5aMpL3tRaCkSaO00000003",
          "name": "Burren Light",
          "streamCount": 42000
        }
      ],
      "albums": [],
      "singles": [
        {
          "id": "5aMpL3rElSaO0000000001",
          "name": "Tidewater",
          "type": "single",
          "releaseDate": "2026-06-20"
        },
        {
          "id": "5aMpL3rElSaO0000000002",
          "name": "Low Field",
          "type": "single",
          "releaseDate": "2025-11-07"
        }
      ],
      "biography": "Singer-songwriter born and raised in Galway, writing hushed folk-pop about the west coast.",
      "externalLinks": [
        {
          "label": "instagram",
          "url": "https://instagram.com/saoirsevale.sample"
        }
      ],
      "coverArt": [
        {
          "url": "https://i.scdn.co/image/sample-saoirse-vale-640",
          "width": 640,
          "height": 640
        }
      ]
    },
    {
      "_type": "artist",
      "id": "5aMpL3sAmpLeKaYoNiGh04",
      "name": "KAYO & The Night Bus (sample)",
      "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeKaYoNiGh04",
      "sampleAsOf": "2026-09-27",
      "verified": false,
      "followers": 3900,
      "monthlyListeners": 142000,
      "topCities": [
        {
          "country": "GB",
          "city": "London",
          "numberOfListeners": 21000
        },
        {
          "country": "US",
          "city": "Los Angeles",
          "numberOfListeners": 6400
        },
        {
          "country": "AU",
          "city": "Sydney",
          "numberOfListeners": 5100
        }
      ],
      "topTracks": [
        {
          "id": "5aMpL3tRaCkKaY00000001",
          "name": "Last Stop Garage",
          "streamCount": 2750000
        },
        {
          "id": "5aMpL3tRaCkKaY00000002",
          "name": "Nightliner",
          "streamCount": 120000
        },
        {
          "id": "5aMpL3tRaCkKaY00000003",
          "name": "Oyster Card",
          "streamCount": 80000
        }
      ],
      "albums": [],
      "singles": [
        {
          "id": "5aMpL3rElKaY0000000001",
          "name": "Last Stop Garage",
          "type": "single",
          "releaseDate": "2026-08-01"
        }
      ],
      "biography": "",
      "externalLinks": [],
      "coverArt": [
        {
          "url": "https://i.scdn.co/image/sample-kayo-night-bus-640",
          "width": 640,
          "height": 640
        }
      ]
    },
    {
      "_type": "artist",
      "id": "5aMpL3sAmpLeJuNoPaRk05",
      "name": "Juno Park (sample)",
      "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeJuNoPaRk05",
      "sampleAsOf": "2026-09-27",
      "verified": true,
      "followers": 58000,
      "monthlyListeners": 312000,
      "topCities": [
        {
          "country": "KR",
          "city": "Seoul",
          "numberOfListeners": 38000
        },
        {
          "country": "US",
          "city": "Los Angeles",
          "numberOfListeners": 14000
        },
        {
          "country": "ID",
          "city": "Jakarta",
          "numberOfListeners": 12500
        },
        {
          "country": "GB",
          "city": "London",
          "numberOfListeners": 7200
        }
      ],
      "topTracks": [
        {
          "id": "5aMpL3tRaCkJuN00000001",
          "name": "Neon Rain",
          "streamCount": 4100000
        },
        {
          "id": "5aMpL3tRaCkJuN00000002",
          "name": "Han River Blue",
          "streamCount": 2900000
        },
        {
          "id": "5aMpL3tRaCkJuN00000003",
          "name": "Soft Static",
          "streamCount": 2300000
        },
        {
          "id": "5aMpL3tRaCkJuN00000004",
          "name": "Paper Planes Home",
          "streamCount": 1600000
        }
      ],
      "albums": [
        {
          "id": "5aMpL3rElJuN0000000001",
          "name": "Soft Static",
          "type": "album",
          "releaseDate": "2026-04-17"
        }
      ],
      "singles": [
        {
          "id": "5aMpL3rElJuN0000000002",
          "name": "Neon Rain",
          "type": "single",
          "releaseDate": "2026-09-04"
        },
        {
          "id": "5aMpL3rElJuN0000000003",
          "name": "Han River Blue",
          "type": "single",
          "releaseDate": "2026-02-20"
        }
      ],
      "biography": "Juno Park is a Seoul-based bedroom-pop producer and singer. After two self-produced EPs she signed with Blue Harbor Music in 2025.",
      "externalLinks": [
        {
          "label": "instagram",
          "url": "https://instagram.com/junopark.sample"
        },
        {
          "label": "youtube",
          "url": "https://youtube.com/@junopark.sample"
        },
        {
          "label": "twitter",
          "url": "https://twitter.com/junopark_sample"
        }
      ],
      "coverArt": [
        {
          "url": "https://i.scdn.co/image/sample-juno-park-640",
          "width": 640,
          "height": 640
        }
      ],
      "previousSnapshot": {
        "date": "2026-09-20",
        "monthlyListeners": 290000,
        "followers": 56500
      }
    },
    {
      "_type": "artist",
      "id": "5aMpL3sAmpLeElLiScRa06",
      "name": "Ellis Crane (sample)",
      "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeElLiScRa06",
      "sampleAsOf": "2026-09-27",
      "verified": true,
      "followers": 640000,
      "monthlyListeners": 1850000,
      "worldRank": null,
      "topCities": [
        {
          "country": "US",
          "city": "Chicago",
          "numberOfListeners": 88000
        },
        {
          "country": "GB",
          "city": "London",
          "numberOfListeners": 61000
        }
      ],
      "topTracks": [
        {
          "id": "5aMpL3tRaCkElL00000001",
          "name": "Harbour Lights",
          "streamCount": 52000000
        },
        {
          "id": "5aMpL3tRaCkElL00000002",
          "name": "Copper",
          "streamCount": 31000000
        }
      ],
      "albums": [
        {
          "id": "5aMpL3rElElL0000000001",
          "name": "Copper",
          "type": "album",
          "releaseDate": "2026-05-15"
        }
      ],
      "singles": [],
      "biography": "Chicago singer-songwriter Ellis Crane signed to a major label in 2023.",
      "externalLinks": [
        {
          "label": "instagram",
          "url": "https://instagram.com/elliscrane.sample"
        }
      ],
      "coverArt": [
        {
          "url": "https://i.scdn.co/image/sample-ellis-crane-640",
          "width": 640,
          "height": 640
        }
      ]
    },
    {
      "_type": "artist",
      "id": "5aMpL3sAmpLeMoThHaRb07",
      "name": "Moth Harbour (sample)",
      "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeMoThHaRb07",
      "sampleAsOf": "2026-09-27",
      "verified": false,
      "followers": 7200,
      "monthlyListeners": 9800,
      "topCities": [
        {
          "country": "SE",
          "city": "Stockholm",
          "numberOfListeners": 1600
        },
        {
          "country": "GB",
          "city": "London",
          "numberOfListeners": 700
        }
      ],
      "topTracks": [
        {
          "id": "5aMpL3tRaCkMoT00000001",
          "name": "Lantern Season",
          "streamCount": 410000
        },
        {
          "id": "5aMpL3tRaCkMoT00000002",
          "name": "Glass Deer",
          "streamCount": 220000
        }
      ],
      "albums": [
        {
          "id": "5aMpL3rElMoT0000000001",
          "name": "Lantern Season",
          "type": "album",
          "releaseDate": "2024-11-02"
        }
      ],
      "singles": [],
      "biography": "Stockholm-based dream-pop duo Moth Harbour.",
      "externalLinks": [
        {
          "label": "instagram",
          "url": "https://instagram.com/mothharbour.sample"
        }
      ],
      "coverArt": [
        {
          "url": "https://i.scdn.co/image/sample-moth-harbour-640",
          "width": 640,
          "height": 640
        }
      ]
    },
    {
      "_type": "artist",
      "id": "5aMpL3sAmpLeNaDiAoKa08",
      "name": "Nadia Okafor (sample)",
      "_url": "https://open.spotify.com/artist/5aMpL3sAmpLeNaDiAoKa08",
      "sampleAsOf": "2026-09-27",
      "verified": false,
      "followers": 12300,
      "monthlyListeners": 41800,
      "topCities": [
        {
          "country": "GB",
          "city": "London",
          "numberOfListeners": 6900
        },
        {
          "country": "NG",
          "city": "Lagos",
          "numberOfListeners": 4200
        },
        {
          "country": "GB",
          "city": "Birmingham",
          "numberOfListeners": 1800
        }
      ],
      "topTracks": [
        {
          "id": "5aMpL3tRaCkNaD00000001",
          "name": "Honey Tongue",
          "streamCount": 720000
        },
        {
          "id": "5aMpL3tRaCkNaD00000002",
          "name": "Brixton Sundays",
          "streamCount": 540000
        },
        {
          "id": "5aMpL3tRaCkNaD00000003",
          "name": "Gold Thread",
          "streamCount": 300000
        }
      ],
      "albums": [],
      "singles": [
        {
          "id": "5aMpL3rElNaD0000000001",
          "name": "Honey Tongue",
          "type": "single",
          "releaseDate": "2026-09-05"
        },
        {
          "id": "5aMpL3rElNaD0000000002",
          "name": "Brixton Sundays",
          "type": "single",
          "releaseDate": "2026-06-13"
        }
      ],
      "biography": "London-born Afro-soul singer Nadia Okafor blends Lagos highlife guitars with South London R&B. Her debut single Brixton Sundays was featured on BBC 1Xtra.",
      "externalLinks": [
        {
          "label": "instagram",
          "url": "https://instagram.com/nadiaokafor.sample"
        }
      ],
      "coverArt": [
        {
          "url": "https://i.scdn.co/image/sample-nadia-okafor-640",
          "width": 640,
          "height": 640
        }
      ],
      "previousSnapshot": {
        "date": "2026-09-20",
        "monthlyListeners": 36100,
        "followers": 11900
      }
    }
  ],
  "discoveryInput": {}
}' |
apify call rich_minds/spotify-artist-scout-ai --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,rich_minds/spotify-artist-scout-ai"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/NwGCcsChfaXuEG1FT/builds/wV7jXJ7N55KgIiY4V/openapi.json
