scraper-api-com Spotify API
Spotify: read-only. 6 public endpoints, no account needed.
Spotify: read-only. 6 public endpoints, no account needed.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/scraper-api-com:scraper-api-com-spotify-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: scraper-api.com Spotify API
version: 0.1.0
description: 'Self-hosted social media scraping API — a drop-in replacement for scrapecreators.com.
## Authentication
Every request must send your API key in the `x-api-key` header.
## Credits
Billing is credit-based: **1 request = 1 credit** (some endpoints cost more — see each endpoint''s description). Credits are **non-expiring** — buy once, use whenever.
Response bodies match the ScrapeCreators shapes so existing integrations work unchanged.'
contact:
name: Fabian Bitter
email: fabian@bitter.de
servers:
- url: https://api.scraper-api.com
description: Production
security:
- apiKeyAuth: []
tags:
- name: Spotify
description: 'Spotify: read-only. 6 public endpoints, no account needed.'
paths:
/v1/spotify/artist:
get:
tags:
- Spotify
summary: Get a Spotify artist (profile, stats, discography) by URL or id
operationId: spotify_v1_artist
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters:
- name: url
in: query
required: false
description: 'Provide at least one of: url, id.'
schema:
type: string
- name: id
in: query
required: false
description: 'Provide at least one of: url, id.'
schema:
type: string
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
__typename: Artist
id: 06HL4z0CvFAxyc27GXpf02
uri: spotify:artist:06HL4z0CvFAxyc27GXpf02
profile:
name: Mock Artist
biography:
text: A mock artist.
externalLinks:
items: []
stats:
followers: 500000
monthlyListeners: 1000000
worldRank: 1
topCities:
items: []
visuals:
avatarImage:
sources:
- url: https://i.scdn.co/image/mock
width: 640
height: 640
discography:
albums:
- id: mockalbumid
name: Mock Album
type: ALBUM
uri: spotify:album:mockalbumid
date:
year: 2024
month: 1
day: 1
precision: DAY
coverArt:
sources:
- url: https://i.scdn.co/image/mockcover
width: 640
height: 640
tracks:
totalCount: 12
compilations: []
latest: {}
popularReleasesAlbums: []
singles: []
topTracks:
- uid: '0'
track:
id: mocktrackid
name: Mock Track
playcount: 12345678
uri: spotify:track:mocktrackid
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
/v1/spotify/track:
get:
tags:
- Spotify
summary: Get a single Spotify track by URL or id
operationId: spotify_v1_track
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters:
- name: url
in: query
required: false
description: 'Provide at least one of: url, id.'
schema:
type: string
- name: id
in: query
required: false
description: 'Provide at least one of: url, id.'
schema:
type: string
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
__typename: Track
id: mocktrackid
uri: spotify:track:mocktrackid
name: Mock Track
duration:
totalMilliseconds: 210000
playcount: 12345678
trackNumber: 1
playability:
playable: true
reason: PLAYABLE
contentRating:
label: NONE
albumOfTrack:
id: mockalbumid
name: Mock Album
uri: spotify:album:mockalbumid
coverArt:
sources:
- url: https://i.scdn.co/image/mockcover
width: 640
height: 640
firstArtist:
items:
- id: 06HL4z0CvFAxyc27GXpf02
profile:
name: Mock Artist
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
/v1/spotify/album:
get:
tags:
- Spotify
summary: Get a Spotify album (with tracks) by URL or id
operationId: spotify_v1_album
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters:
- name: url
in: query
required: false
description: 'Provide at least one of: url, id.'
schema:
type: string
- name: id
in: query
required: false
description: 'Provide at least one of: url, id.'
schema:
type: string
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
__typename: Album
id: 0pgrg7phBbnwGJ2HBEl9EG
uri: spotify:album:0pgrg7phBbnwGJ2HBEl9EG
name: Mock Album
type: ALBUM
label: Mock Records
date:
isoString: '2024-01-01T00:00:00Z'
precision: DAY
copyright:
items:
- type: C
text: © 2024 Mock Records
playability:
playable: true
reason: PLAYABLE
coverArt:
sources:
- url: https://i.scdn.co/image/mockcover
width: 640
height: 640
artists:
items:
- id: 06HL4z0CvFAxyc27GXpf02
profile:
name: Mock Artist
uri: spotify:artist:06HL4z0CvFAxyc27GXpf02
tracksV2:
totalCount: 1
items:
- uid: '0'
track:
name: Mock Track
trackNumber: 1
uri: spotify:track:mocktrackid
duration:
totalMilliseconds: 210000
playcount: 12345678
discs:
items:
- number: 1
tracks:
totalCount: 1
moreAlbumsByArtist:
items: []
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
/v1/spotify/search:
get:
tags:
- Spotify
summary: Search Spotify across artists, albums, tracks, playlists, podcasts and episodes
operationId: spotify_v1_search
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters:
- name: query
in: query
required: true
schema:
type: string
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
albumsV2:
- __typename: Album
id: 0pgrg7phBbnwGJ2HBEl9EG
name: Mock Album
uri: spotify:album:0pgrg7phBbnwGJ2HBEl9EG
artists:
- __typename: Artist
id: 06HL4z0CvFAxyc27GXpf02
profile:
name: Mock Artist
uri: spotify:artist:06HL4z0CvFAxyc27GXpf02
audiobooks: []
episodes: []
genres: []
playlists: []
podcasts:
- __typename: Podcast
id: 3mliji9352UAk3XnWElnDV
name: Mock Podcast
uri: spotify:show:3mliji9352UAk3XnWElnDV
topResultsV2: []
tracksV2:
- __typename: Track
id: mocktrackid
name: Mock Track
uri: spotify:track:mocktrackid
users: []
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
/v1/spotify/podcast:
get:
tags:
- Spotify
summary: Get a Spotify podcast/show's metadata by URL or id
operationId: spotify_v1_podcast
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters:
- name: url
in: query
required: false
description: 'Provide at least one of: url, id.'
schema:
type: string
- name: id
in: query
required: false
description: 'Provide at least one of: url, id.'
schema:
type: string
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
__typename: Podcast
id: 3mliji9352UAk3XnWElnDV
uri: spotify:show:3mliji9352UAk3XnWElnDV
name: Mock Podcast
description: A mock podcast.
mediaType: AUDIO
publisher:
name: Mock Publisher
coverArt:
sources:
- url: https://i.scdn.co/image/mockshow
width: 640
height: 640
episodesV2:
totalCount: 1
items:
- entity:
__typename: Episode
data:
uri: spotify:episode:mockepisodeid
topics:
items: []
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
/v1/spotify/podcast/episodes:
get:
tags:
- Spotify
summary: Get a Spotify podcast's episodes by URL or id (paginate via ?cursor=)
operationId: spotify_v1_podcast_episodes
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters:
- name: url
in: query
required: false
description: 'Provide at least one of: url, id.'
schema:
type: string
- name: id
in: query
required: false
description: 'Provide at least one of: url, id.'
schema:
type: string
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
id: 3mliji9352UAk3XnWElnDV
uri: spotify:show:3mliji9352UAk3XnWElnDV
episodes:
- __typename: Episode
id: mockepisodeid
uri: spotify:episode:mockepisodeid
name: Mock Episode
description: A mock episode.
duration:
totalMilliseconds: 3600000
releaseDate:
isoString: '2024-01-01T00:00:00Z'
precision: DAY
coverArt:
sources:
- url: https://i.scdn.co/image/mockep
width: 640
height: 640
cursor: null
totalCount: 1
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
components:
securitySchemes:
apiKeyAuth:
type: apiKey
in: header
name: x-api-key
description: Your scraper-api.com API key.
x-tagGroups:
- name: Platforms
tags:
- Instagram
- TikTok
- YouTube
- Facebook
- LinkedIn
- Twitter
- Spotify
- Apple Music
- Kleinanzeigen
- Quoka
- markt.de
- mobile.de
- '11880'
- Gelbe Seiten
- ImmobilienScout24
- immowelt
- WG-Gesucht
- Bayut
- LOVOO
- Jaumo
- Tinder
- Bumble
- Snapchat
- Google
- Arbeitsagentur
- Ausbildung.de
- meinestadt.de