Discover/Beatport API
live

Beatport APIbeatport.com

Access Beatport track metadata, BPM, musical key, artist profiles, release details, genre charts, and Top 10 data via a structured REST API.

Endpoint health
verified 7h ago
get_track
search_releases
search_tracks
get_release
get_label
10/10 passing latest checkself-healing
Endpoints
10
Updated
22d ago

What is the Beatport API?

The Beatport API covers 10 endpoints for searching and retrieving electronic music metadata from Beatport.com, including tracks, releases, artists, labels, and genre charts. The get_top10 endpoint returns the current top-charting tracks for any genre with full metadata including BPM, Camelot key notation, sample preview URL, and pricing. Search endpoints cover the full track, release, and artist catalogs with paginated results.

Try it
Page number for pagination.
Search keyword to match against tracks.
api.parse.bot/scraper/2231dc97-b277-482d-9311-07a167c10460/<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/2231dc97-b277-482d-9311-07a167c10460/search_tracks?page=1&query=techno' \
  -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 beatport-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.

"""Beatport Music API — discover tracks, artists, and genres."""
from parse_apis.beatport_music_api import Beatport, NotFound

client = Beatport()

# List genres and get top 10 tracks for the first one
genres = client.genres.list(limit=5)
for genre in genres:
    print(genre.name, genre.slug)

# Construct a genre by ID and fetch its top tracks
techno = client.genre(id=6)
for track in techno.top_tracks(limit=3):
    print(track.name, track.bpm, track.sample_url)

# Search tracks and drill into detail
result = client.tracksummaries.search(query="adam beyer", limit=1).first()
if result:
    detail = result.details()
    print(detail.name, detail.bpm, detail.sample_url)

# Search artists and list their tracks
artist_hit = client.artistsummaries.search(query="charlotte de witte", limit=1).first()
if artist_hit:
    full_artist = artist_hit.details()
    print(full_artist.name, full_artist.bio)
    for t in full_artist.tracks.list(limit=3):
        print(t.track_name, t.bpm, t.label)

# Typed error handling on a bad resource lookup
try:
    bad_artist = client.artistsummaries.search(query="zzzznonexistent999", limit=1).first()
    if bad_artist:
        bad_artist.details()
except NotFound as exc:
    print(f"Not found: {exc}")

print("exercised: genres.list / genre.top_tracks / tracksummaries.search / details / artistsummaries.search / artist.tracks.list")
All endpoints · 10 totalmissing one? ·

Full-text search over Beatport's track catalog. Matches against track name, artist, and label. Returns paginated results with track metadata including BPM, genre, artists, label, and pricing. Each result is a summary; use get_track for full details including sample URL and musical key.

Input
ParamTypeDescription
pageintegerPage number for pagination.
queryrequiredstringSearch keyword to match against tracks.
Response
{
  "type": "object",
  "fields": {
    "data": "array of track summary objects with track_id, track_name, bpm, artists, genre, label, price, downloads, and plays"
  },
  "sample": {
    "data": {
      "data": [
        {
          "bpm": 128,
          "genre": [
            {
              "genre_id": 6,
              "genre_name": "Techno (Peak Time / Driving)"
            }
          ],
          "label": {
            "label_id": 10819,
            "label_name": "Rebeat"
          },
          "plays": 834,
          "price": {
            "code": "USD",
            "value": 1.49,
            "display": "$1.49"
          },
          "artists": [
            {
              "artist_id": 121438,
              "artist_name": "Techno"
            }
          ],
          "mix_name": "Original Mix",
          "track_id": 1216245,
          "downloads": 67,
          "track_name": "Techno"
        }
      ]
    },
    "status": "success"
  }
}

About the Beatport API

Track and Release Data

The search_tracks endpoint accepts a query string and an optional page integer, returning arrays of track summary objects that include track_id, bpm, artists, genre, label, price, downloads, and plays. For complete metadata on a single track, get_track takes a required track_id and returns fields like key (with camelot_number and camelot_letter), mix_name, length, sample_url for audio preview, and nested release and artists objects. The search_releases and get_release endpoints mirror this pattern for albums, EPs, and singles — get_release additionally exposes catalog_number, publish_date, and a tracks array of track API URLs.

Artists and Labels

search_artists returns paginated artist summaries with artist_id, genre, downloads, and image URIs. Calling get_artist with a numeric artist_id returns the full profile including bio, website, and image (with uri and dynamic_uri). For labels, get_label takes a label_id and returns the label's name, bio, slug, and image object. The slug parameter on all detail endpoints is optional and only affects URL construction — any value or omission works.

Genre Charts and Full Artist Catalogs

list_genres takes no inputs and returns a complete list of genre objects (id, name, slug) — these IDs and slugs feed directly into get_top10, which returns up to 10 fully detailed track objects per genre including sample_url, bpm, key, release, artists, and price. For bulk artist track retrieval, get_artist_tracks automatically paginates through an artist's full catalog and returns a flat list with fields including mix_name, remixers, label, key, release_date, and track_url. This endpoint can be slow for artists with large catalogs.

Reliability & maintenanceVerified

The Beatport API is a managed, monitored endpoint for beatport.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when beatport.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 beatport.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
7h ago
Latest check
10/10 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 BPM and key-aware playlist tool using get_track fields including bpm, camelot_number, and camelot_letter
  • Monitor label release activity by polling search_releases with a label name and reviewing publish_date and catalog_number from get_release
  • Construct genre-specific charts dashboards using list_genres and get_top10 to display current Top 10 tracks with pricing and preview URLs
  • Aggregate an artist's full discography including remixer credits using get_artist_tracks with remixers, mix_name, and release_date fields
  • Index Beatport metadata for a DJ track management app using search_tracks filtered by genre and sorted by BPM range
  • Populate an artist directory with biography and social links by calling get_artist for bio and website fields
  • Enrich a music catalog database with label imagery and descriptions using get_label for bio, image.uri, and slug
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 Beatport have an official developer API?+
Beatport has historically offered API access through a partner program, but it is not publicly open for general developer sign-up. There is no self-serve API key system documented at beatport.com/developers for external developers at this time.
What does get_top10 return and how do I find valid genre IDs?+
Call list_genres first — it returns all genre objects with id, name, and slug. Pass the numeric id as genre_id to get_top10, which returns up to 10 track objects per genre. Each track includes bpm, key (with Camelot notation), artists, sample_url, release, and price.
Does get_track return a playable audio preview URL?+
Yes. The get_track endpoint includes a sample_url field in its response, which points to a short audio preview of the track. The search_tracks endpoint returns summary objects only and does not include the sample URL; you need to call get_track with the specific track_id to get it.
Does the API expose user data such as wish lists, purchase history, or account playlists?+
No. The API covers catalog metadata — tracks, releases, artists, labels, and genre charts. User account data including purchase history, wish lists, and personal playlists is not exposed by any current endpoint. You can fork this API on Parse and revise it to add endpoints targeting that data.
Are there pagination limits or slowness issues I should plan for?+
The search_tracks, search_releases, and search_artists endpoints all accept a page integer for pagination, but the API does not expose a total page count in the summary response — you need to paginate until results are exhausted. The get_artist_tracks endpoint auto-paginates internally but is noted as potentially slow for artists with large catalogs.
Page content last updated . Spec covers 10 endpoints from beatport.com.
Related APIs in MusicSee all →
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.
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.
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.
tunebat.com API
Search music tracks and retrieve detailed audio characteristics like key, BPM, energy levels, and other metadata to analyze songs or build music applications. Perfect for developers who need comprehensive music data to power recommendations, playlist curation, or music production tools.
merchbar.com API
Search and discover music merchandise across vinyls, CDs, apparel, and accessories, then track product details, new arrivals, and sales by artist. Find exactly what you're looking for with real-time product information and pricing updates.
billboard.com API
Get access to Billboard's music charts, latest news, and interviews to stay updated on chart rankings, industry stories, and artist content. Search and retrieve specific articles or page content to find the music news and information you need.
rateyourmusic.com API
Search for albums, artists, and genres to retrieve detailed information including release dates, ratings, and chart rankings from Rate Your Music. Browse music charts and explore genre-specific data to discover trends across the catalog.
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.