# Spotify Artists Search and Scraper 🎤 (`apiharvest/spotify-artists-search-and-scraper`) Actor

🎤 Scrape Spotify artist profiles with monthly listeners, full discography, related artists, biography, gallery images, top listener cities, verified status & merch links. Enable Fetch Details to unlock all artist overview sections. Identical data to the real Spotify artist page.

- **URL**: https://apify.com/apiharvest/spotify-artists-search-and-scraper.md
- **Developed by:** [APIHarvest](https://apify.com/apiharvest) (community)
- **Categories:** Automation, Social media, Developer tools
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$10.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

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

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

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

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


# README

## Spotify Artists Scraper — Search & Scrape Complete Spotify Artist Data | Best Spotify Scraper

### What is the Spotify Artists Scraper?

The **Spotify Artists Scraper** is a production-ready Apify actor that lets you search and scrape Spotify artists at scale. This Spotify artists scraper extracts complete artist metadata including biographies, top tracks, discography, related artists, monthly listeners, and more — directly from Spotify. No Spotify API key, no login credentials, no developer account required.

Unlike the official Spotify Web API which imposes strict rate limits and requires OAuth, this Spotify artists scraper uses Spotify's internal API to extract rich artist overview data. The Spotify artists scraper automatically handles token rotation, proxy management, and retry logic.

---

### How Does This Spotify Artists Scraper Work?

This Spotify artists scraper operates in **two modes** that are auto-detected from your input:

#### Mode 1: Search Spotify Artists by Keyword

Enter one or more keywords and the Spotify artists scraper searches Spotify's catalog for matching artists. You can search by artist name, genre, or any keyword. The Spotify artists scraper returns structured results for every matching Spotify artist.

**Example keywords:** `"Eminem"`, `"Korean pop artists"`, `"jazz pianists"`, `"indie rock"`, `"female rappers"`

#### Mode 2: Scrape Specific Spotify Artists by URI or URL

Already have Spotify artist links? Paste them directly. The Spotify artists scraper accepts both URI format (`spotify:artist:7dGJo4pcD2V6oG08qCgod6`) and URL format (`https://open.spotify.com/artist/7dGJo4pcD2V6oG08qCgod6`). Each Spotify artist URI is resolved to their full overview profile.

#### Auto-Detection

You don't need to choose a mode manually. The Spotify artists scraper automatically detects what to do:

- **Fill Search Keywords** → Spotify artists search mode activates
- **Fill Spotify Artist URIs / URLs** → Spotify artist details mode activates
- **Fill both** → The Spotify artists scraper runs search first, then fetches details for the URIs

#### Detail Enrichment (Search Mode)

When searching, the Spotify artists scraper returns basic search results by default. Enable **Fetch Full Artist Details** to automatically enrich each search result with the complete artist overview — the Spotify artists scraper will fetch the full profile for every result.

---

### Input Configuration

| Field | Mode | Description | Default |
|-------|------|-------------|---------|
| **Search Keywords** | Search | One or more keywords to search Spotify artists. Each keyword runs as a separate search query. | — |
| **Spotify Artist URIs / URLs** | Details | One or more `spotify:artist:ID` URIs or `https://open.spotify.com/artist/ID` URLs | — |
| **Proxy Country** | Both | Residential proxy country (50+ available). US recommended for best Spotify artists scraper results. | US |
| **Search Offset** | Search | Starting position for search pagination. Use to skip already-scraped Spotify artists. | 0 |
| **Search Limit** | Search | Maximum number of Spotify artists to return per keyword. | 30 |
| **Top Results Count** | Search | Number of top-ranked Spotify artists in the results. | 20 |
| **Fetch Full Artist Details** | Search | When ON, the Spotify artists scraper enriches each search result with full artist overview data | OFF |

#### Understanding Filters & Toggles

| Toggle / Filter | Default | What Happens When ON | What You Miss When OFF |
|----------------|---------|---------------------|----------------------|
| **Fetch Full Artist Details** | OFF | Each search result is enriched with the full artist overview: monthly listeners, complete discography (albums/singles/compilations), related artists, biography, gallery images, top listener cities, verified status, and merch links. | You only get basic search data — artist name, image, and URI. No monthly listeners, no discography, no biography, no related artists. |
| **Search Limit** | 10 | Controls how many artist results you get per keyword. | — |
| **Search Offset** | 0 | Skip results for pagination. | — |
| **Top Results Count** | 5 | Spotify highlights its top-ranked matches separately. | — |

> **💡 Tip:** When using Artist URIs/URLs (Get Details mode), full details are **always** fetched automatically — the Fetch Full Artist Details toggle only applies to Search mode.

#### URL Validation

The Spotify artists scraper validates every URI you provide. If you accidentally paste a track, album, or playlist URI, the Spotify artists scraper will skip it and log which actor to use instead.

---

### Output Data Format

Every Spotify artist scraped by this Spotify artists scraper is pushed as a structured JSON object to the Apify dataset. You can export in JSON, CSV, XML, Excel, or connect via the Apify API.

#### Search Result Example

```json
{
    "query": "Eminem",
    "uri": "spotify:artist:7dGJo4pcD2V6oG08qCgod6",
    "name": "Eminem",
    "profile": {"name": "Eminem"},
    "visuals": {"avatarImage": {"sources": [{"url": "https://i.scdn.co/image/..."}]}}
}
````

#### Full Detail Example (Get Details mode or Fetch Details ON)

```json
{
    "uri": "spotify:artist:7dGJo4pcD2V6oG08qCgod6",
    "name": "Eminem",
    "profile": {
        "name": "Eminem",
        "biography": {"text": "Eminem is an American rapper, songwriter..."},
        "externalLinks": {"items": [{"name": "Instagram", "url": "https://..."}]}
    },
    "stats": {
        "followers": 78000000,
        "monthlyListeners": 65000000,
        "worldRank": 15
    },
    "visuals": {
        "avatarImage": {"sources": [{"url": "https://i.scdn.co/image/...", "width": 640}]},
        "headerImage": {"sources": [{"url": "https://i.scdn.co/image/..."}]}
    },
    "discography": {
        "topTracks": {"items": [{"track": {"name": "Lose Yourself", "playcount": "1234567890"}}]},
        "albums": {"totalCount": 12, "items": [{"name": "The Eminem Show"}]},
        "singles": {"totalCount": 50, "items": [{"name": "Godzilla"}]},
        "compilations": {"totalCount": 3}
    },
    "relatedContent": {
        "relatedArtists": {"items": [{"name": "50 Cent", "uri": "spotify:artist:..."}]}
    },
    "goods": {"merch": {"items": []}},
    "preRelease": {}
}
```

The Spotify artists scraper returns the most comprehensive artist overview available — including biography, stats, full discography, related artists, merch links, and visual assets.

***

### Step-by-Step Tutorial

#### How to Search Spotify Artists

1. Go to the **Spotify Artists Scraper** actor page on Apify
2. Enter your keywords in the **Search Keywords** field — e.g., `"Drake"`, `"K-pop"`, `"guitar virtuoso"`
3. Set **Proxy Country** to US (recommended)
4. Adjust **Search Limit** if you want more or fewer Spotify artists per keyword
5. (Optional) Turn on **Fetch Full Artist Details** for complete artist overview data
6. Set your **spending limit** and click **Start**
7. Download results from the Dataset tab

#### How to Scrape Specific Spotify Artists

1. Collect Spotify artist URIs or URLs (go to artist page → ... → Share → Copy Spotify URI)
2. Paste them into the **Spotify Artist URIs / URLs** field
3. Click **Start**
4. Each Spotify artist URI is resolved to their complete overview profile

***

### Common Use Cases for This Spotify Scraper (Artists)

#### Music Industry Research

Scrape thousands of Spotify artists to analyze market trends, genre popularity, follower growth patterns, and monthly listener counts. The Spotify artists scraper gives you comprehensive data for industry reports.

#### Artist Discovery & Talent Scouting

A\&R teams and labels can use the Spotify artists scraper to discover emerging talent by searching genres and analyzing monthly listener growth and discography patterns.

#### Competitive Analysis

Artists and managers can use the Spotify artists scraper to benchmark against competitors — compare follower counts, monthly listeners, world rankings, and streaming performance.

#### Fan Analytics & Social Listening

Track Spotify artist metrics over time by scheduling regular runs of the Spotify artists scraper. Monitor follower growth, listener trends, and discography changes.

#### Academic Research

Music researchers can use the Spotify artists scraper to collect large-scale datasets of Spotify artist profiles for studies on popularity dynamics, genre evolution, or cultural trends.

#### Music App Development

Developers can use the Spotify artists scraper to populate artist databases, build recommendation engines, or create artist comparison tools with rich Spotify metadata.

***

### Why Choose This Spotify Scraper Over Others?

Most Spotify scrapers on Apify return incomplete or reformatted data — missing fields, simplified structures, or outdated endpoints. This spotify scraper is different. It delivers **every single data field** that Spotify provides internally — the exact same data the real Spotify app uses.

| Feature | This Spotify Scraper | Other Actors on Apify |
|---------|---------------------|----------------------|
| **Data completeness** | Every field Spotify returns — monthly listeners, full discography, related artists, gallery images, biography, and top listener cities | Partial data, missing key fields |
| **Authentication** | No API key, no login, no developer account | Often require Spotify API credentials |
| **Rate limits** | No limits — automatic token rotation | Restricted by official API quotas |
| **Data structure** | Raw Spotify format — identical to real Spotify app | Reformatted, simplified, or flattened |
| **Proxy support** | 50+ residential proxy countries | Limited or no proxy options |
| **Pricing** | Pay per result — you only pay for data delivered | Flat fees, subscriptions, or usage caps |
| **Reliability** | Auto-adapts to Spotify API changes — always up to date | Hardcoded endpoints that break on updates |

> **Bottom line:** If Spotify shows it, this spotify scraper extracts it. No other Spotify artist actor on Apify gives you this level of complete, production-ready data.

### Frequently Asked Questions

**Q: Does this Spotify artists scraper require a Spotify account or API key?**
A: No. This Spotify artists scraper works without authentication. No Spotify developer account needed.

**Q: What data does the Spotify artists scraper return in detail mode?**
A: The complete artist overview: biography, stats (followers, monthly listeners, world rank), discography (albums, singles, compilations), top tracks with play counts, related artists, visual assets, and external links.

**Q: Is there a limit on how many Spotify artists I can scrape?**
A: No hard limit. The Spotify artists scraper processes as many Spotify artists as your spending limit allows.

**Q: Can I get related artists for a Spotify artist?**
A: Yes. The full artist overview returned by the Spotify artists scraper includes a `relatedContent.relatedArtists` section with related Spotify artist profiles.

**Q: Can I run this Spotify artists scraper on a schedule?**
A: Yes. Use Apify scheduling to run the Spotify artists scraper at any interval for monitoring artist metrics over time.

**Q: How fast is this Spotify artists scraper?**
A: Search mode returns results in seconds. Get Details mode processes each Spotify artist sequentially, typically a few seconds per artist.

**Q: What's the difference between this and the Spotify Search actor?**
A: This Spotify artists scraper is specialized for artists with full overview detail fetching. The Spotify Search actor supports all 9 types but is search-only.

**Q: Can I scrape an artist's entire discography?**
A: Yes. The Spotify artists scraper returns the full discography structure including albums, singles, and compilations with total counts.

***

### Integrations

Connect the Spotify artists scraper output to your favorite tools:

- **Google Sheets** — Auto-export Spotify artist data to spreadsheets
- **Webhooks** — Trigger custom workflows with Spotify artist data
- **REST API** — Access Spotify artists scraper results programmatically
- **Zapier / Make** — Connect to 5000+ apps

***

### Related Spotify Scrapers by apiharvest

| Actor | Description |
|-------|-------------|
| [Spotify Tracks Scraper](https://apify.com/apiharvest/spotify-tracks-search-and-scraper) | Search & scrape Spotify track metadata with play counts |
| [Spotify Albums Scraper](https://apify.com/apiharvest/spotify-albums-search-and-scraper) | Search & scrape Spotify album metadata with track listings |
| [Spotify Playlists Scraper](https://apify.com/apiharvest/spotify-playlists-search-and-scraper) | Search & scrape Spotify playlists with full track listings |
| [Spotify Genres Scraper](https://apify.com/apiharvest/spotify-genres-search-and-scraper) | Search & browse Spotify genre/mood pages with sections |
| [Spotify Audiobooks Scraper](https://apify.com/apiharvest/spotify-audiobooks-search-and-scraper) | Search & scrape Spotify audiobooks with chapter listings |
| [Spotify Episodes Scraper](https://apify.com/apiharvest/spotify-episodes-search-and-scraper) | Search & scrape Spotify podcast episodes with recommendations |
| [Spotify Podcasts Scraper](https://apify.com/apiharvest/spotify-podcasts-search-and-scraper) | Search & scrape Spotify podcasts/shows with episode listings |
| [Spotify Users Scraper](https://apify.com/apiharvest/spotify-users-search-and-profile-scraper) | Search & scrape Spotify user profiles with playlists |
| [Spotify Search — All Types](https://apify.com/apiharvest/spotify-search-all-types) | Search all 9 Spotify content types in one actor |
| [Spotify Scraper — Get Full Details](https://apify.com/apiharvest/spotify-scraper-get-full-details) | Get full details for 8 Spotify content types from URIs |

***

### 🏷️ Keywords

spotify scraper, spotify artist scraper, scrape spotify artists, spotify data extractor, spotify artist data, apify spotify, spotify api alternative, best spotify scraper

# Actor input Schema

## `keyword` (type: `array`):

One or more search terms to find artists on Spotify. Each keyword runs as a separate search.

💡 Leave empty and fill Spotify URIs below to use Get Details mode instead.

## `spotifyUris` (type: `array`):

One or more Spotify artist URIs or URLs to fetch full metadata.
Examples: spotify:artist:ID · https://open.spotify.com/artist/ID

⚠️ Only artist URIs/URLs are accepted. Other types will be skipped.
💡 Leave empty and fill Search Keywords above to use Search mode instead.

## `proxyCountry` (type: `string`):

Residential proxy exit country. ⭐ US recommended — widest catalog.
If results are empty, switch to US.

## `artists_search_offset` (type: `integer`):

Starting position for search pagination. 0 = first page.
📌 Only used in Search mode.

## `artists_search_limit` (type: `integer`):

Maximum number of artist results to return per keyword.

## `artists_search_numberOfTopResults` (type: `integer`):

Number of top-ranked items highlighted in the response.

## `artists_fetchDetails` (type: `boolean`):

������ Search mode only — when using Artist URIs/URLs, full details are always fetched automatically.

✅ When ON — runs queryArtistOverview for every search result. You get: monthly listeners, full discography (albums/singles/compilations), related artists, biography, gallery images, top listener cities, verified status, and merch links.

❌ When OFF — you only get basic search data: artist name, image, and URI. You will NOT get monthly listeners, discography, biography, related artists, or any overview data.

⚠️ Slower — one extra API call per search result

## Actor input object example

```json
{
  "keyword": [
    "Rock",
    "Sun"
  ],
  "spotifyUris": [
    "spotify:artist:06HL4z0CvFAxyc27GXpf02",
    "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
  ],
  "proxyCountry": "US",
  "artists_search_offset": 0,
  "artists_search_limit": 30,
  "artists_search_numberOfTopResults": 20,
  "artists_fetchDetails": false
}
```

# 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 = {
    "keyword": [
        "Rock",
        "Sun"
    ],
    "spotifyUris": [
        "spotify:artist:06HL4z0CvFAxyc27GXpf02",
        "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("apiharvest/spotify-artists-search-and-scraper").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 = {
    "keyword": [
        "Rock",
        "Sun",
    ],
    "spotifyUris": [
        "spotify:artist:06HL4z0CvFAxyc27GXpf02",
        "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("apiharvest/spotify-artists-search-and-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "keyword": [
    "Rock",
    "Sun"
  ],
  "spotifyUris": [
    "spotify:artist:06HL4z0CvFAxyc27GXpf02",
    "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
  ]
}' |
apify call apiharvest/spotify-artists-search-and-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=apiharvest/spotify-artists-search-and-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Spotify Artists Search and Scraper 🎤",
        "description": "🎤 Scrape Spotify artist profiles with monthly listeners, full discography, related artists, biography, gallery images, top listener cities, verified status & merch links. Enable Fetch Details to unlock all artist overview sections. Identical data to the real Spotify artist page.",
        "version": "0.0",
        "x-build-id": "8p1iQVAwfLsDenYnk"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/apiharvest~spotify-artists-search-and-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-apiharvest-spotify-artists-search-and-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/apiharvest~spotify-artists-search-and-scraper/runs": {
            "post": {
                "operationId": "runs-sync-apiharvest-spotify-artists-search-and-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/apiharvest~spotify-artists-search-and-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-apiharvest-spotify-artists-search-and-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "keyword": {
                        "title": "🔍 Search Keyword(s)",
                        "type": "array",
                        "description": "One or more search terms to find artists on Spotify. Each keyword runs as a separate search.\n\n💡 Leave empty and fill Spotify URIs below to use Get Details mode instead.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "spotifyUris": {
                        "title": "🔗 Spotify Artist URIs / URLs",
                        "type": "array",
                        "description": "One or more Spotify artist URIs or URLs to fetch full metadata.\nExamples: spotify:artist:ID · https://open.spotify.com/artist/ID\n\n⚠️ Only artist URIs/URLs are accepted. Other types will be skipped.\n💡 Leave empty and fill Search Keywords above to use Search mode instead.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "proxyCountry": {
                        "title": "🌐 Proxy Country",
                        "enum": [
                            "US",
                            "GB",
                            "AU",
                            "CA",
                            "DE",
                            "FR",
                            "NL",
                            "IT",
                            "ES",
                            "SE",
                            "NO",
                            "DK",
                            "FI",
                            "BE",
                            "AT",
                            "CH",
                            "IE",
                            "PL",
                            "PT",
                            "CZ",
                            "HU",
                            "RO",
                            "GR",
                            "BG",
                            "HR",
                            "SK",
                            "RS",
                            "JP",
                            "KR",
                            "SG",
                            "HK",
                            "TW",
                            "TH",
                            "MY",
                            "ID",
                            "PH",
                            "VN",
                            "IN",
                            "BR",
                            "MX",
                            "AR",
                            "CL",
                            "CO",
                            "PE",
                            "ZA",
                            "NG",
                            "KE",
                            "EG",
                            "SA",
                            "AE",
                            "TR",
                            "IL",
                            "UA",
                            "RU",
                            "BY"
                        ],
                        "type": "string",
                        "description": "Residential proxy exit country. ⭐ US recommended — widest catalog.\nIf results are empty, switch to US.",
                        "default": "US"
                    },
                    "artists_search_offset": {
                        "title": "📄 Search Offset",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Starting position for search pagination. 0 = first page.\n📌 Only used in Search mode.",
                        "default": 0
                    },
                    "artists_search_limit": {
                        "title": "📊 Search Limit",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of artist results to return per keyword.",
                        "default": 30
                    },
                    "artists_search_numberOfTopResults": {
                        "title": "🏆 Top Results Count",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Number of top-ranked items highlighted in the response.",
                        "default": 20
                    },
                    "artists_fetchDetails": {
                        "title": "🔄 Fetch Full Artist Details",
                        "type": "boolean",
                        "description": "������ Search mode only — when using Artist URIs/URLs, full details are always fetched automatically.\n\n✅ When ON — runs queryArtistOverview for every search result. You get: monthly listeners, full discography (albums/singles/compilations), related artists, biography, gallery images, top listener cities, verified status, and merch links.\n\n❌ When OFF — you only get basic search data: artist name, image, and URI. You will NOT get monthly listeners, discography, biography, related artists, or any overview data.\n\n⚠️ Slower — one extra API call per search result",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
