Docs menu

Spotify API endpoint

Retrieve Spotify public profile

Returns normalized public profile metadata and preview playlists from Spotify's Web Player user-profile service. Provide username, uri, or url; defaults to Spotify's official profile.

GETapiKey3 credits/requestSpotifyspotify.userProfileResponseDoc/spotify/profile

Overview

Returns normalized public profile metadata and preview playlists from Spotify's Web Player user-profile service. Provide username, uri, or url; defaults to Spotify's official profile.

Request schema

NameInTypeRequiredEnumExampleDescription
usernamequerystringNospotifySpotify username
uriquerystringNospotify:user:spotifySpotify user URI
urlquerystringNohttps://open.spotify.com/user/spotifyopen.spotify.com user URL
playlist_limitqueryintegerNo10Embedded public playlist limit, clamped to 0-50
artist_limitqueryintegerNo10Recently played artist limit, clamped to 0-50
episode_limitqueryintegerNo0Embedded episode limit, clamped to 0-50
x-api-keyheaderstringYesAPI key required

Authentication

Send your scraping API key in the x-api-key header. Use the console API Keys page to rotate or select the active key.

Billing

Endpoint usage is metered in credits. The plan prices, included credits, limits, and overage rates below match the active backend billing configuration.

Credit cost
3 credits/request
Charged response
Successful 2xx responses
PlanPriceIncluded creditsDaily capRate limitOverage
Free$0/mo2,000500 daily credits5/minNo overage
Starter$9/mo20,0005,000 daily credits15/min$0.75/1,000 overage credits when enabled
Growth$29/mo100,00025,000 daily credits45/min$0.45/1,000 overage credits when enabled
Pro$79/mo400,000No daily cap120/min$0.30/1,000 overage credits
Business$199/mo1,200,000No daily cap300/min$0.20/1,000 overage credits
Enterprise$499/mo5,000,000No daily cap1,000/min$0.12/1,000 overage credits

Infrastructure behavior

This endpoint is executed through Crawlora's managed scraping infrastructure.

  • Proxy strategy: managed automatically where needed
  • Browser rendering: enabled for supported targets that require rendered HTML or JavaScript execution
  • Browser cluster: supported dynamic workloads can be routed through distributed browser instances
  • Retry behavior: automatic retry/fallback may be used depending on endpoint type
  • Challenge handling: challenged pages or unusable upstream HTML are detected and surfaced clearly when they cannot be used
  • Billing: credits are charged only for successful 2xx responses
  • Observability: responses include request context where available

MCP

MCP URL
https://mcp.crawlora.net/mcp
Tool name
spotify.profile
Transport
Streamable HTTP
Docs resource
docs://index

Response behavior

The endpoint fetches anonymous Spotify credentials at request time; caller-supplied Spotify bearer or client tokens are not required.

Error behavior

Crawlora does not silently return bad data when the upstream page cannot be used.

StatusCommon failure case
400Invalid input or missing required parameter
429Plan or endpoint rate limit exceeded
500Internal execution error
502Upstream platform failed, returned unusable HTML, or served a challenge page that could not be resolved

When possible, Crawlora returns structured error context so your integration can retry, back off, or inspect the request.

Failure responses

StatusDescriptionSchema
400Missing or invalid parameters#/definitions/app.Response
429Rate limit exceeded#/definitions/app.Response
502Spotify upstream request failed#/definitions/app.Response

Example response

{
  "uri": "spotify:user:spotify",
  "username": "spotify",
  "name": "Spotify",
  "followersCount": 12162371,
  "followingCount": 327,
  "totalPublicPlaylistsCount": 1519,
  "publicPlaylists": [
    {
      "uri": "spotify:playlist:37i9dQZF1DXcBWIGoYBM5M",
      "name": "Today’s Top Hits",
      "ownerName": "Spotify"
    }
  ]
}

Request schema

No body schema

Response schema

#/definitions/spotify.userProfileResponseDoc

FieldTypeRequiredEnumBoundsExampleDescription
codeintegerNoCode is the HTTP status code or a custom code used to indicate the result of the request @example 200
dataspotify.UserProfileResponseNo
data.allowFollowsbooleanNotrue
data.colorintegerNo16085920
data.externalUrlstringNohttps://open.spotify.com/user/spotify
data.followersCountintegerNo12162371
data.followingCountintegerNo327
data.hasSpotifyImagebooleanNotrue
data.hasSpotifyNamebooleanNotrue
data.imageUrlstringNohttps://i.scdn.co/image/ab6775700000ee8555c25988a6ac314394d3fbf5
data.isCurrentUserbooleanNofalse
data.isVerifiedbooleanNotrue
data.metaspotify.UserProfileMetaNo
data.meta.appVersionstringNo1.2.90.403.gf901f20f
data.meta.artistCountintegerNo0
data.meta.fetchedAtstringNo2026-05-13T20:41:12Z
data.meta.operationNamestringNouserProfileView
data.meta.playlistCountintegerNo10
data.meta.profileCountintegerNo50
data.namestringNoSpotify
data.publicPlaylistsarrayNo
data.publicPlaylists[].externalUrlstringNohttps://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M
data.publicPlaylists[].followersCountintegerNo34324513
data.publicPlaylists[].idstringNo37i9dQZF1DXcBWIGoYBM5M
data.publicPlaylists[].imageUrlstringNohttps://i.scdn.co/image/ab67706f0000000273f7bb6e77ec5e23d7840ae5
data.publicPlaylists[].isFollowingbooleanNofalse
data.publicPlaylists[].namestringNoToday’s Top Hits
data.publicPlaylists[].ownerNamestringNoSpotify
data.publicPlaylists[].ownerUristringNospotify:user:spotify
data.publicPlaylists[].ownerUrlstringNohttps://open.spotify.com/user/spotify
data.publicPlaylists[].ownerUsernamestringNospotify
data.publicPlaylists[].uristringNospotify:playlist:37i9dQZF1DXcBWIGoYBM5M
data.recentlyPlayedArtistsarrayNo
data.recentlyPlayedArtists[].colorintegerNo16085920
data.recentlyPlayedArtists[].externalUrlstringNohttps://open.spotify.com/user/example
data.recentlyPlayedArtists[].followersCountintegerNo1000
data.recentlyPlayedArtists[].imageUrlstringNohttps://i.scdn.co/image/ab6775700000ee8555c25988a6ac314394d3fbf5
data.recentlyPlayedArtists[].isFollowingbooleanNofalse
data.recentlyPlayedArtists[].namestringNoExample
data.recentlyPlayedArtists[].uristringNospotify:user:example
data.recentlyPlayedArtists[].usernamestringNoexample
data.showFollowsbooleanNotrue
data.topArtistsspotify.UserProfileTopArtistsNo
data.topArtists.imageUrlstringNohttps://i.scdn.co/image/ab6775700000ee8555c25988a6ac314394d3fbf5
data.topArtists.subtitlestringNoOnly visible to the user
data.topArtists.titlestringNoTop artists this month
data.topArtists.topArtistsPageUristringNospotify:user:spotify:top:artists
data.totalPublicPlaylistsCountintegerNo1519
data.uristringNospotify:user:spotify
data.usernamestringNospotify
msgunknownNoMsg is the message that describes the result of the request @example "Request successful"

Code examples

Use environment variables for secrets and keep Crawlora API keys server-side.

curl -X GET "https://api.crawlora.net/api/v1/spotify/profile?username=spotify&uri=spotify%3Auser%3Aspotify&url=https%3A%2F%2Fopen.spotify.com%2Fuser%2Fspotify&playlist_limit=10&artist_limit=10&episode_limit=0" \
  -H "x-api-key: $CRAWLORA_API_KEY"

Responsible public web data workflows

Crawlora is designed for responsible structured public web data workflows. Customers are responsible for using Crawlora in compliance with applicable laws, third-party rights, target-platform rules, and Crawlora terms.

Read Crawlora terms

Related