Spotify API endpoint
Returns Spotify audiobook search results for a search term. Caller-supplied Spotify bearer or client tokens are not required.
/spotify/audiobooks/searchMCP tool: spotify_audiobooks_search
Path/query/body parameters:
q query string, required. Search term.offset query integer, optional. Search offset. Defaults to 0.limit query integer, optional. Audiobook result limit, clamped to 1-50. Defaults to 10.number_of_top_results query integer, optional. Top result limit, clamped to 1-50. Defaults to 5.include_audiobooks query boolean, optional. Includes audiobook results.include_pre_releases query boolean, optional. Includes pre-release results when requested.include_album_pre_releases query boolean, optional. Includes album pre-release results when requested.include_authors query boolean, optional. Includes authors when requested.include_episode_content_ratings_v2 query boolean, optional. Includes Spotify episode content ratings v2 when requested.Notable response behavior:
503.data.audiobooks; a de-duplicated cross-entity view is also returned in data.results.| Field | Filled in, of 57 checked | Values in the sample |
|---|---|---|
| uri | 57 | “spotify:show:40ygvasZaqVMMBkgYoUy8C” and 56 other values |
| type | 30 | Audiobook in all 30 |
| title | 57 | “Atomic Habits: An Easy & Proven Way to Build Good Habits &…” and 56 other values |
| description | 30 | median 1,225 characters |
| imageUrl | 30 | i.scdn.co |
| images | 30 | median 3 entries |
| externalUrl | 30 | open.spotify.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| q | string | Yes | Search term | hello | |
| offset | integer | No | Search offset | 0 | |
| limit | integer | No | Audiobook result limit, clamped to 1-50 | 30 | |
| number_of_top_results | integer | No | Top result limit, clamped to 1-50 | 20 | |
| include_audiobooks | boolean | No | Include audiobook results | true | |
| include_pre_releases | boolean | No | Include pre-release results | true | |
| include_album_pre_releases | boolean | No | Include album pre-release results | false | |
| include_authors | boolean | No | Include authors | false | |
| include_episode_content_ratings_v2 | boolean | No | Include Spotify episode content ratings v2 | false | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/spotify/audiobooks/search?q=hello&limit=10&include_audiobooks=true&include_pre_releases=true&include_album_pre_releases=true&include_authors=true&include_episode_content_ratings_v2=true" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"searchTerm": "hello",
"audiobooks": [
{
"uri": "spotify:audiobook:example",
"type": "Audiobook",
"title": "Hello",
"externalUrl": "https://open.spotify.com/audiobook/example"
}
],
"meta": {
"operationName": "searchAudiobooks",
"audiobookCount": 1,
"fetchedAt": "2026-05-13T15:22:41Z"
}
}
}Request schema
No body schema
Response schema
#/definitions/spotify.searchCatalogResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | Code is the HTTP status code or a custom code used to indicate the result of the request @example 200 | |||
| data | spotify.SearchResponse | No | ||||
| data.albums | array | No | Albums that matched the search term. SearchResultSummary record, 12 fields: description, externalUrl, imageUrl, images, publisher, subtitle, title, type, uri. Described under Spotify album API. | |||
| data.artists | array | No | Artists that matched the search term. SearchResultSummary record, 12 fields: description, externalUrl, imageUrl, images, publisher, subtitle, title, type, uri. Described under Spotify album API. | |||
| data.audiobooks | array | No | Audiobooks that matched the search term. SearchResultSummary record, 12 fields: description, externalUrl, imageUrl, images, publisher, subtitle, title, type, uri. Described under Spotify album API. | |||
| data.episodes | array | No | Podcast episodes that matched the search term. SearchResultSummary record, 12 fields: description, externalUrl, imageUrl, images, publisher, subtitle, title, type, uri. Described under Spotify album API. | |||
| data.limit | integer | No | 20 | Maximum number of results requested per section. | ||
| data.meta | object | No | Details about this response. | |||
| data.meta.albumCount | integer | No | 3 | Number of albums returned. | ||
| data.meta.appVersion | string | No | 1.2.90.403.gf901f20f | Version of the Spotify web player the data was read from. | ||
| data.meta.artistCount | integer | No | 5 | Number of artists returned. | ||
| data.meta.audiobookCount | integer | No | 2 | Number of audiobooks returned. | ||
| data.meta.episodeCount | integer | No | 2 | Number of episodes returned. | ||
| data.meta.fetchedAt | string | No | 2026-05-13T20:41:12Z | Time the data was fetched, in UTC (RFC 3339). | ||
| data.meta.operationName | string | No | searchDesktop | Name of the Spotify web player operation that returned the data. | ||
| data.meta.playlistCount | integer | No | 2 | Number of playlists returned. | ||
| data.meta.resultCount | integer | No | 22 | Total number of results returned. | ||
| data.meta.showCount | integer | No | 4 | Number of shows returned. | ||
| data.meta.topCount | integer | No | 3 | Number of top results returned. | ||
| data.meta.trackCount | integer | No | 2 | Number of tracks returned. | ||
| data.meta.userCount | integer | No | 2 | Number of user profiles returned. | ||
| data.offset | integer | No | 0 | Position of the first result returned. | ||
| data.playlists | array | No | Playlists that matched the search term. SearchResultSummary record, 12 fields: description, externalUrl, imageUrl, images, publisher, subtitle, title, type, uri. Described under Spotify album API. | |||
| data.results | array | No | All results found, across every type. SearchResultSummary record, 12 fields: description, externalUrl, imageUrl, images, publisher, subtitle, title, type, uri. Described under Spotify album API. | |||
| data.searchTerm | string | No | hello | Search term that was run. | ||
| data.shows | array | No | Podcast shows that matched the search term. SearchResultSummary record, 12 fields: description, externalUrl, imageUrl, images, publisher, subtitle, title, type, uri. Described under Spotify album API. | |||
| data.topResults | array | No | Best matches across all result types. SearchResultSummary record, 12 fields: description, externalUrl, imageUrl, images, publisher, subtitle, title, type, uri. Described under Spotify album API. | |||
| data.tracks | array | No | Tracks that matched the search term. SearchResultSummary record, 12 fields: description, externalUrl, imageUrl, images, publisher, subtitle, title, type, uri. Described under Spotify album API. | |||
| data.users | array | No | User profiles that matched the search term. SearchResultSummary record, 12 fields: description, externalUrl, imageUrl, images, publisher, subtitle, title, type, uri. Described under Spotify album API. | |||
| msg | unknown | No | Msg is the message that describes the result of the request @example "Request successful" |
| Status | Description | Schema |
|---|---|---|
| 400 | Missing or invalid parameters | #/definitions/app.Response |
| 429 | Rate limit exceeded | #/definitions/app.Response |
| 503 | Spotify upstream request failed | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/spotify/audiobooks/search?q=hello&limit=10&include_audiobooks=true&include_pre_releases=true&include_album_pre_releases=true&include_authors=true&include_episode_content_ratings_v2=true" \
-H "x-api-key: $CRAWLORA_API_KEY"