artist.tools offers robust detection of artificially inflated Spotify activity, helping you understand whether a playlist, track, artist, or curator is likely involved in botted behavior. This guide explains the fields you'll see in our API, how to interpret them, and where they apply.
Entity-Specific Bot Detection
| Entity Type | Key Detection Fields |
|---|---|
| Playlists | qualityScore, qualityData |
| Tracks/Artists | playlistSummary |
| All Entities | bot-status endpoint |
Playlist-Level Detection
qualityScore (integer)
qualityScore (integer)A score from -1000 to 1000 representing the playlist's estimated quality.
| Score Range | Meaning |
|---|---|
900–1000 | Human-reviewed and confirmed as authentic. |
1–899 | No signs of botting, playlist appears active. |
0 | Insufficient data. |
-1 to -49 | No signs of botting, but low engagement or inactivity. |
-50 to -899 | Potentially botted (algorithmic flags, no manual review). |
-900 to -1000 | Confirmed botted or linked to known botted networks. |
qualityData (object)
qualityData (object)Returned for playlists only. This object contains:
botted:trueifqualityScore <= -50fraudData: Dates with fraud indicators (e.g. spikes, dips)fraudDates: Raw list of suspicious dates (deprecated)ignoreDates: Dates ignored due to known anomalies (e.g. mass Spotify bot purges) (deprecated)indicators: Tags likeunusual_growth,fake_follower_ratiooverride: Manual admin-reviewed object with fields like:rating:"Good","Okay", or"Bad"notes,listeners,date
Track/Artist-Level Detection
playlistSummary (object)
playlistSummary (object)Summarizes a track or artist's exposure to playlists, including potential bot placements:
playlistSummary: {
total: number; // Total number of playlists the entity is in
followerReach: number; // Combined followers across those playlists
fraud: number; // Count of botted playlists
fraudSpotifyIds: string[]; // Spotify playlist IDs flagged as botted
}Use this to quickly evaluate the overall risk associated with playlist placements.
All Entities: bot-status Endpoint
bot-status EndpointThe /v2/misc/bot-status endpoint returns a lightweight verdict for any Spotify entity (playlist, track, artist, curator). It returns:
{
"botted": true,
"metadata": {
"bottedPlaylistIds": ["1a2b3c...", "4d5e6f..."],
"bottedPlaylistCount": 2,
"indicators": { ... }, // For playlists
"fraudHistory": { ... }, // For playlists
"adminOverride": { ... } // For playlists
}
}Response Fields
botted:trueorfalse— whether the entity is currently flaggedmetadata: Contextual info:bottedPlaylistIds: Only for artists/tracks/curatorsbottedPlaylistCount: Numeric summaryindicators,fraudHistory,adminOverride: Only for playlists
Best Practices
- Filter out playlists with
qualityScore <= -50for safety. - Use
playlistSummary.fraudto assess overall placement health for a track or artist. - Use the
bot-statusendpoint for quick checks or UI gating. - Human-reviewed overrides (
qualityData.overrideoradminOverride) should always take precedence.
If you need clarification or support integrating this data into your system, reach out to [email protected].
Limitations
While artist.tools provides powerful bot detection, there are important limitations to be aware of:
-
Not All-Encompassing: Our detection systems are robust, but not exhaustive. Suspicious behavior may go undetected.
-
Limited Data on New Playlists: If we've just ingested a playlist, we may not have enough data to provide an assessment. This is common. Allow up to 7 days for full evaluation.
-
Use as a Signal, Not a Verdict: We do not recommend using our detection as your only line of defense. Always compare our findings with your own data sources.
-
No Access to Internal DSP Data: We rely solely on publicly available data. Platforms like Spotify may have internal signals (e.g. user-level stream behavior) that we cannot observe or factor into our analysis.
-
Deeper Insight Available: For those doing deeper audits, the
snapshots[]array (enabled via theincludeSnapshotsAPI option) allows you to inspect timeline-level playlist growth and make your own assessments.