Discover/Tunebat API
live

Tunebat APItunebat.com

Search Tunebat's track catalog and retrieve BPM, musical key, Camelot notation, energy, danceability, and 8+ audio features per track via a simple REST API.

Endpoint health
verified 4d ago
get_track_details
search_tracks
2/2 passing latest checkself-healing
Endpoints
2
Updated
4d ago

What is the Tunebat API?

The Tunebat API exposes 2 endpoints that cover track search and detailed audio analysis from Tunebat.com. Use search_tracks to query the catalog by song name or artist and receive up to 50 results per call, then pass a track_id to get_track_details to retrieve 15+ fields including BPM, musical key, Camelot notation, energy, danceability, acousticness, and release date.

Try it
Search keyword (e.g., 'classical', 'jazz', 'guitar', 'coldplay', 'ed sheeran')
api.parse.bot/scraper/6d01197e-814d-4b41-9a7c-406491e35d34/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/6d01197e-814d-4b41-9a7c-406491e35d34/search_tracks?query=classical' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace tunebat-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Tunebat SDK — search tracks, get details, inspect audio features."""
from parse_apis.Tunebat_Music_Data_API import Tunebat, TrackNotFound

client = Tunebat()

# Search for tracks by keyword — limit= caps total items fetched.
for summary in client.tracks.search(query="Blinding Lights", limit=3):
    print(summary.name, summary.artist, summary.track_id)

# Drill down: take the first result and fetch full details.
first = client.tracks.search(query="Shape of You", limit=1).first()
if first:
    track = first.details()
    print(track.title, track.artist, track.bpm, track.key, track.camelot)
    print(track.features.energy, track.features.danceability, track.features.happiness)
    print(track.additional_info.album, track.additional_info.release_date)

# Use a track_id from a previous search result for direct lookup.
second = client.tracks.search(query="piano", limit=1).first()
if second:
    detail = client.tracks.get(track_id=second.track_id)
    print(detail.title, detail.artist, detail.duration)

# Typed error handling for a non-existent track.
try:
    client.tracks.get(track_id="INVALID_ID")
except TrackNotFound as exc:
    print(f"Track not found: {exc.track_id}")

print("exercised: tracks.search / TrackSummary.details / tracks.get / TrackNotFound")
All endpoints · 2 totalmissing one? ·

Full-text search over Tunebat's track catalog by keyword (song name, artist, etc.). Returns up to 50 results per call with basic metadata (name, artist, track_id, url). The total_available field reports how many matches exist server-side. Each result's track_id can be passed to get_track_details for full audio features. Note: the upstream API may intermittently return 500 errors for some queries due to backend rate limiting.

Input
ParamTypeDescription
queryrequiredstringSearch keyword (e.g., 'classical', 'jazz', 'guitar', 'coldplay', 'ed sheeran')
Response
{
  "type": "object",
  "fields": {
    "count": "integer — number of results returned in this response (max 50)",
    "query": "string — the original search query echoed back",
    "results": "array of track summary objects with name, artist, track_id, url",
    "total_available": "integer — total number of matching tracks available server-side"
  },
  "sample": {
    "data": {
      "count": 50,
      "query": "Shape of You",
      "results": [
        {
          "url": "https://tunebat.com/Info/7qiZfU4dY1lWllzX7mPBI3",
          "name": "Shape of You",
          "artist": "Ed Sheeran",
          "track_id": "7qiZfU4dY1lWllzX7mPBI3"
        },
        {
          "url": "https://tunebat.com/Info/5BhCnMoTq4qI4vf37Ohlkm",
          "name": "Shape of You",
          "artist": "Ed Sheeran",
          "track_id": "5BhCnMoTq4qI4vf37Ohlkm"
        }
      ],
      "total_available": 159
    },
    "status": "success"
  }
}

About the Tunebat API

Track Search

The search_tracks endpoint accepts a free-text query parameter (song title, artist name, or any keyword) and returns up to 50 matching track summaries per call. Each result includes name, artist, track_id, and a direct url to the Tunebat listing. The total_available field tells you how many server-side matches exist, so you can gauge coverage without paginating blindly. Search is case-insensitive.

Audio Feature Details

get_track_details takes either a track_id (the Spotify/Tunebat identifier, e.g. 7qiZfU4dY1lWllzX7mPBI3) or a full track_url — at least one is required. The response includes bpm, key (e.g. C♯ minor), camelot (e.g. 12A), and duration in mm:ss format. The features object carries eight numeric audio signals: energy, danceability, happiness, acousticness, instrumentalness, liveness, speechiness, and loudness. The additional_info object adds album and release_date in YYYY-MM-DD format.

Identifiers and Compatibility

Track IDs returned by search_tracks are the same Spotify track IDs used by the Spotify catalog, so any track ID you already have from a Spotify-based workflow can be passed directly to get_track_details without a prior search call. This makes it straightforward to enrich an existing playlist or track list with Tunebat's audio feature data.

Reliability & maintenanceVerified

The Tunebat API is a managed, monitored endpoint for tunebat.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when tunebat.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official tunebat.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
4d ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a harmonic mixing tool that filters tracks by Camelot key and BPM range
  • Enrich a playlist database with energy, danceability, and happiness scores for mood-based recommendations
  • Verify BPM and musical key for a set of tracks before a DJ set
  • Analyze acousticness and instrumentalness distributions across an album or artist catalog
  • Flag high-speechiness tracks to separate podcast-style content from music in a mixed library
  • Power a music production reference tool that maps audio features to genre or era
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Tunebat have an official developer API?+
Tunebat does not publish an official public developer API or documented REST interface. This Parse API provides structured access to the data available on tunebat.com.
What does `get_track_details` return in the `features` object?+
The features object contains eight numeric values: energy, danceability, happiness, acousticness, instrumentalness, liveness, speechiness, and loudness. These are returned alongside top-level fields for bpm, key, camelot, and duration.
Can `search_tracks` return more than 50 results in a single call?+
No. Each call returns at most 50 results. The total_available field shows the full server-side match count. The API currently does not expose a pagination parameter (e.g. offset or page). You can fork this API on Parse and revise it to add a pagination input if you need to page through larger result sets.
Does the API expose chart rankings, play counts, or streaming statistics for tracks?+
Not currently. The API covers audio features, BPM, key, Camelot notation, album, and release date. It does not include chart positions, stream counts, or popularity metrics. You can fork it on Parse and revise to add an endpoint targeting that data if it becomes available on Tunebat.
Can I look up an artist's full discography in one call?+
Not directly. The search_tracks endpoint accepts a free-text query and returns up to 50 matching tracks, which can include results for a given artist. There is no dedicated discography endpoint. You can fork this API on Parse and revise it to add an artist-scoped endpoint that pages through all tracks attributed to a specific artist.
Page content last updated . Spec covers 2 endpoints from tunebat.com.
Related APIs in MusicSee all →
beatport.com API
Search and discover electronic music tracks, releases, and artists on Beatport while accessing detailed metadata, audio previews, genre listings, and top 10 charts. Get comprehensive information about specific tracks, releases, artists, and labels to power music discovery and curation applications.
airbit.com API
Browse and discover beats across the Airbit marketplace by searching tracks, exploring top charts, viewing producer catalogs, and discovering featured playlists. Get detailed information about specific beats and find exactly what you're looking for in the music production community.
traxsource.com API
Access Traxsource's music catalog to browse top tracks and singles, explore genres, search for music, and discover newly added releases and artist discographies. Get detailed information about specific tracks, releases, and artists to find the music you're looking for.
1001tracklists.com API
Access complete DJ set tracklists, chart rankings, and event metadata from 1001tracklists.com. Retrieve individual track details — including artist, title, remix information, record labels, and linked streaming URLs — for any tracklist page, and browse the latest sets or currently charting tracks across weekly, trending, and most-heard categories.
musicbrainz.org API
Search MusicBrainz for artists and recordings, then fetch detailed metadata for artists, recordings, releases, and release groups, including credits, tags/genres, and track listings.
x-minus.pro API
Search millions of karaoke and backing tracks from X-Minus.Pro to find the perfect songs for singing, complete with lyrics and track details. Discover top-charted karaoke tracks and access everything you need to perform your favorite songs.
hooktheory.com API
Search through 65,000+ songs to discover their music theory details like chords, melody notes, keys, tempos, and meters. Break down any song into its individual sections and examine the exact notes used in each part.
allmusic.com API
Search for music, browse artist biographies and discographies, and retrieve detailed album and song information all in one place. Discover new releases and access comprehensive metadata about artists and tracks.