Spotify Artist Scraper avatar

Spotify Artist Scraper

Pricing

$1.80 / 1,000 artist profiles

Go to Apify Store
Spotify Artist Scraper

Spotify Artist Scraper

Find public Spotify artist profiles from keywords or Spotify artist links. Get structured identity, audience metrics, releases, top tracks, related artists, and social links when available.

Pricing

$1.80 / 1,000 artist profiles

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

For music researchers, playlist curators, A&R teams, and developers, this Actor finds public Spotify artist profiles from keywords or Spotify artist links. It saves structured artist rows with identity, audience metrics, releases, top tracks, related artists, and source links when available, so you can review artists in one dataset.

🎧 Artist profile rows

Each saved row represents the first eligible public profile found for one Spotify artist. It keeps the artist ID, name, Spotify profile link, and available profile details together. Keyword discovery rows also keep the keyword that found the profile. If the same artist appears again from another keyword or submitted link, the later match is ignored.

The source may not provide every optional field. The Actor returns the profile fields that are publicly available, including audience counts, popularity, listener locations, releases, top tracks, related artists, discovery context, and activity links when the source shows them.

▶️ Find public artist profiles

Choose Keywords to search for artists from one or more values, or choose Spotify artist links to look up supplied public artist pages. Set Maximum results to stop after a chosen number of saved profiles. Leave it empty to return all available results until the source is exhausted. Start the run and open the Artist profiles link in the output.

⚙️ Input

Choose one method in findBy. The Actor uses only the fields for that method. Use one list of keywords or one list of Spotify artist-page links in each run.

Input fields

FieldTypeWhat it does
findBystringChooses keywords for keyword discovery or artistUrls for direct artist-page lookup.
keywordsarray of stringsAdds one or more artist names, genres, or other search phrases. The Actor searches each value for public Spotify artist profiles.
artistUrlsarray of objectsAdds one or more public Spotify artist-page links for direct profile lookup.
artistUrls[].urlURL stringProvides one public Spotify artist-page link.
maxItemsintegerStops after this many saved profiles. Leave it empty to return all available results until the source is exhausted.

Example input

This example is the public input from a successful current-beta keyword run.

{
"findBy": "keywords",
"keywords": [
"jazz"
],
"maxItems": 10
}

🧾 Output

The run output contains one link to the default dataset. The dataset uses one artist-profile row shape for both keyword discovery and direct artist-page lookup. Fields beyond artistId, name, and spotifyUrl are available when the source provides them.

Run output

FieldTypeWhat it does
datasetUrlURL stringOpens the default dataset with the saved artist profiles.

Artist profile row fields

FieldTypeWhat it does
artistIdstringStable Spotify artist ID for joining or checking records.
namestringArtist name shown on the Spotify profile.
spotifyUrlURL stringPublic Spotify link for the artist profile.
keywordstringKeyword that found the profile when keyword discovery was used.
isVerifiedbooleanShows whether Spotify marks the profile as verified.
biographystringArtist biography shown by the source, when available.
imagesarray of objectsProfile images shown by the source, when available.
images[].urlURL stringDirect URL for one profile image.
images[].widthintegerImage width in pixels, when available.
images[].heightintegerImage height in pixels, when available.
followersintegerFollower count shown by the source, when available.
monthlyListenersintegerMonthly listener count shown by the source, when available.
popularityintegerSpotify popularity score from 0 to 100, when available.
listenerLocationsarray of objectsLeading listener locations shown by the source, when available.
listenerLocations[].namestringName of one listener location.
listenerLocations[].listenerCountintegerListener count for that location, when available.
socialLinksarray of objectsExternal and social links shown on the profile, when available.
socialLinks[].platformstringPlatform named by the source.
socialLinks[].urlURL stringExternal or social link.
discographyobjectRelease information shown by the source, when available.
discography.releaseCountintegerNumber of releases reported by the source. It may differ from the releases listed here.
discography.releasesarray of objectsReleases shown by the source, when available.
discography.releases[].releaseIdstringStable Spotify release ID, when available.
discography.releases[].namestringRelease name shown by the source.
discography.releases[].releaseTypestringRelease type reported by the source, when available.
discography.releases[].releaseDatestringRelease date reported by the source. It may contain only a year or month.
discography.releases[].spotifyUrlURL stringPublic Spotify link for the release.
discography.releases[].totalTracksintegerNumber of tracks in the release, when available.
topTracksarray of objectsPopular tracks shown for the artist, when available.
topTracks[].trackIdstringStable Spotify track ID, when available.
topTracks[].namestringTrack name shown by the source.
topTracks[].spotifyUrlURL stringPublic Spotify link for the track.
topTracks[].durationMsintegerExact track duration in milliseconds, when available.
topTracks[].playCountintegerExact play count reported by the source, when available.
relatedArtistsarray of objectsRelated artist profiles shown by the source, when available.
relatedArtists[].artistIdstringStable related-artist ID, when available.
relatedArtists[].namestringRelated artist name shown by the source.
relatedArtists[].spotifyUrlURL stringPublic Spotify link for the related artist.
discoveryContextarray of objectsPlaylist and other discovery links associated with the artist, when available.
discoveryContext[].contextTypestringKind of discovery context reported by the source.
discoveryContext[].namestringName of the discovery item, when available.
discoveryContext[].urlURL stringLink to the discovery item.
activityobjectConcert, merchandise, and store links shown by the source, when available.
activity.concertsarray of objectsConcert links shown by the source, when available.
activity.concerts[].titlestringConcert title, when available.
activity.concerts[].urlURL stringConcert link.
activity.concerts[].datestringConcert date, when available.
activity.concerts[].venuestringConcert venue, when available.
activity.merchandisearray of objectsMerchandise links shown by the source, when available.
activity.merchandise[].titlestringMerchandise title, when available.
activity.merchandise[].urlURL stringMerchandise link.
activity.storesarray of objectsStore links shown by the source, when available.
activity.stores[].namestringStore name, when available.
activity.stores[].urlURL stringStore link.

Genuine current-beta row

This genuine row is shortened from the successful current-beta keyword run. It keeps useful values from the row and one value from larger collections. Each "..." string marks omitted real data.

{
"artistId": "4uKEP0JYfpFtngWlgViewd",
"name": "Lil Double 0",
"spotifyUrl": "https://open.spotify.com/artist/4uKEP0JYfpFtngWlgViewd",
"keyword": "jazz",
"isVerified": true,
"biography": "...",
"images": [
{
"url": "https://i.scdn.co/image/ab6761610000e5ebb4aa3bc64a3ff1eb6a68bd7f",
"width": 640,
"height": 640
},
"..."
],
"followers": 380571,
"monthlyListeners": 1247133,
"popularity": 60,
"listenerLocations": [
{
"name": "Dallas",
"listenerCount": 64067
},
"..."
],
"socialLinks": [
{
"platform": "INSTAGRAM",
"url": "https://instagram.com/lildouble00_/"
},
"..."
],
"discography": {
"releaseCount": 83,
"releases": [
{
"name": "Layin Da Walkdown B Side",
"spotifyUrl": "https://open.spotify.com/album/6ziu1bpI0H9yjfFPZ4Hjvx",
"releaseId": "6ziu1bpI0H9yjfFPZ4Hjvx",
"releaseType": "ALBUM",
"releaseDate": "2026-06-26",
"totalTracks": 17
},
"..."
]
},
"topTracks": [
{
"name": "Been Solid",
"spotifyUrl": "https://open.spotify.com/track/4GrO1xFdQjuD9E91E9aCsk",
"trackId": "4GrO1xFdQjuD9E91E9aCsk",
"durationMs": 146106,
"playCount": 42168626
},
"..."
],
"relatedArtists": [
{
"name": "Big Scarr",
"spotifyUrl": "https://open.spotify.com/artist/579LsvZcRVKtToYjS0tkKz",
"artistId": "579LsvZcRVKtToYjS0tkKz"
},
"..."
],
"discoveryContext": [
{
"contextType": "playlist",
"url": "https://open.spotify.com/playlist/37i9dQZF1DZ06evO2DfAUE",
"name": "This Is Lil Double 0"
},
"..."
],
"activity": null
}

💳 Pricing

This Actor uses pay-per-event pricing. The primary event covers each structured artist profile saved to the default dataset. Check the Apify pricing panel for the current price and event details.

🔌 Integrations

Open the datasetUrl from the run output in Apify, or use the Apify dataset API to read and export the structured artist profiles.

❓ FAQ

The Actor saves the first eligible match and ignores later matches for the same artist. A keyword-discovered row keeps the keyword from that first saved match.

Choose one method in findBy for each run. Use separate runs for separate configurations, and submit one or more values of the same kind for the selected method.

What does an empty Maximum results value do?

Leaving maxItems empty returns all available results until the source is exhausted. Enter a positive number when you want the run to stop earlier.

Are all artist fields always filled?

No. artistId, name, and spotifyUrl are required. Other fields appear when Spotify makes that public data available.

Do I need a Spotify login or API key?

No buyer Spotify login or API key is needed. The Actor uses publicly available Spotify information.

Does this Actor return tracks, albums, or playlists as separate rows?

No. It saves artist-profile rows. Releases, top tracks, and discovery links can appear as nested artist fields when available.

Does it return every possible search match?

No. The product does not promise an exhaustive list of every search match. Results depend on what the public source returns for your values.

Does it monitor artist changes over time?

No. Each run is a current lookup or discovery pass. Keep datasets from separate runs if you want to compare your own snapshots.

How is pricing calculated?

The primary event is tied to each artist profile saved to the default dataset. The Apify pricing panel shows the current event price before you run it.

📝 Changelog

v0.0 (24-09-2026)

  • Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré