Discover/Suno API
live

Suno APIsuno.com

Access Suno's explore feeds, trending songs, and playlist contents via API. Retrieve song metadata including audio URLs, play counts, tags, and artist info.

Endpoint health
verified 2d ago
explore_songs
get_trending_songs
get_playlist_songs
3/3 passing latest checkself-healing
Endpoints
3
Updated
26d ago

What is the Suno API?

The Suno API provides 3 endpoints for browsing AI-generated music on Suno, returning song metadata across curated explore feeds, trending charts, and named playlists. The get_trending_songs endpoint returns songs ranked by trending score, while explore_songs supports cursor-based pagination through staff-picked and curated feeds. Each song object includes fields like audio_url, play_count, duration, tags, artist, and title.

Try it
Maximum number of songs to return.
Pagination cursor from previous response's next_cursor field. Omit for first page.
api.parse.bot/scraper/1e1a9405-ba82-4a65-99e1-e5088bf87a04/<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/1e1a9405-ba82-4a65-99e1-e5088bf87a04/explore_songs?limit=5' \
  -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 suno-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: Suno Music API — discover AI-generated songs, browse trending, and explore playlists."""
from parse_apis.suno_music_api import Suno, PlaylistNotFound

client = Suno()

# Browse the explore feed — curated songs from Staff Picks, Best Of, etc.
for song in client.songs.explore(limit=3):
    print(f"🎵 {song.title} by {song.artist} — {song.play_count:,} plays")

# Trending songs — what's popular right now
top = client.songs.trending(limit=1).first()
if top:
    print(f"\n🔥 Top trending: {top.title} by {top.artist}")
    print(f"   Tags: {top.tags}")
    print(f"   Upvotes: {top.upvote_count}, Plays: {top.play_count:,}")

# Fetch a playlist and browse its songs
playlist = client.playlists.get(id="990fd5fe-70d2-449b-8a4d-3cb0a7d3e805")
print(f"\n📚 Playlist: {playlist.name} ({playlist.total_available} songs)")
for song in playlist.songs.list(limit=3):
    print(f"  • {song.title} [{song.duration:.0f}s] — {song.created_at}")

# Typed error handling for a non-existent playlist
try:
    client.playlists.get(id="00000000-0000-0000-0000-000000000000")
except PlaylistNotFound as exc:
    print(f"\n❌ Playlist not found: {exc}")

print("\nExercised: songs.explore / songs.trending / playlists.get / playlist.songs.list")
All endpoints · 3 totalmissing one? ·

Browse songs from Suno's explore page. Returns curated songs from various feeds (Staff Picks, Best Of, etc.) with cursor-based pagination. Each page returns a next_cursor for fetching subsequent pages.

Input
ParamTypeDescription
limitintegerMaximum number of songs to return.
cursorstringPagination cursor from previous response's next_cursor field. Omit for first page.
Response
{
  "type": "object",
  "fields": {
    "songs": "array of song objects with id, title, artist, audio_url, play_count, duration, tags, and other metadata",
    "next_cursor": "string pagination cursor for next page, or null if no more results",
    "total_returned": "integer count of songs returned in this response"
  },
  "sample": {
    "data": {
      "songs": [
        {
          "id": "156a8275-3583-4b1e-8866-db12b5bfda63",
          "url": "https://suno.com/song/156a8275-3583-4b1e-8866-db12b5bfda63",
          "tags": "Experimental Hip-Hop, vocal chops, vocoders",
          "title": "All speak for your life",
          "artist": "Darren mac",
          "duration": 150.52,
          "audio_url": "https://cdn1.suno.ai/156a8275-3583-4b1e-8866-db12b5bfda63.mp3",
          "image_url": "https://cdn2.suno.ai/8952215e-7dae-4bc7-a4a0-18a229b99b2e.jpeg",
          "created_at": "2026-04-30T01:34:14.079Z",
          "play_count": 349476,
          "upvote_count": 4689,
          "artist_handle": "dmacd",
          "comment_count": 917,
          "model_version": ""
        }
      ],
      "next_cursor": "3",
      "total_returned": 5
    },
    "status": "success"
  }
}

About the Suno API

What the API Returns

All three endpoints return arrays of song objects sharing a consistent shape: id, title, artist, audio_url, play_count, duration, and tags. The audio_url field gives a direct link to the generated audio track, and play_count reflects how many times a song has been played on the platform. Tags describe the style, genre, or mood applied during generation.

Endpoints in Detail

explore_songs pulls from Suno's curated feeds — including Staff Picks and Best Of collections — and uses cursor-based pagination via the next_cursor response field. Pass the cursor value back as the cursor input param to advance through pages; omit it to start from the beginning. get_trending_songs takes an optional limit param and returns songs sorted by trending score, along with a total_available count. get_playlist_songs requires a playlist_id UUID and uses 1-indexed page-based pagination. Playlist IDs appear in explore_songs responses or can be read from Suno playlist URLs.

Pagination Patterns

explore_songs uses cursor-based pagination — store the next_cursor from each response and pass it to the next call. get_playlist_songs uses integer page numbers (page=1, page=2, etc.) alongside limit, and returns current_page, total_returned, and total_available so you can calculate how many pages remain. get_trending_songs does not paginate; it returns up to the requested limit from the available trending set.

Reliability & maintenanceVerified

The Suno API is a managed, monitored endpoint for suno.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when suno.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 suno.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
2d ago
Latest check
3/3 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 trending AI music dashboard using play_count and trending score data from get_trending_songs
  • Aggregate tagged songs by genre or mood using the tags field across explore feed pages
  • Embed audio players in an app by retrieving audio_url values from playlist or explore results
  • Track how play_count changes over time for specific song IDs to monitor engagement trends
  • Mirror a curated Suno playlist into an external music library using get_playlist_songs with pagination
  • Discover new AI-generated artists by collecting unique artist values from explore feeds
  • Populate a music recommendation engine using metadata like duration, tags, and play_count
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 Suno have an official developer API?+
Suno does not publish an official public developer API. This Parse API provides structured access to song metadata from Suno's public explore and playlist pages.
What does the `explore_songs` endpoint return, and how does pagination work?+
explore_songs returns an array of song objects from Suno's curated feeds (such as Staff Picks and Best Of), along with a next_cursor string. Pass that cursor value as the cursor input parameter on the next call to retrieve the following page. When next_cursor is null, there are no more results.
Can I retrieve a specific song's full detail page, lyrics, or generation prompts?+
Not currently. The API returns song metadata fields — id, title, artist, audio_url, play_count, duration, and tags — but does not expose lyrics, generation prompts, or individual song detail pages as a dedicated endpoint. You can fork this API on Parse and revise it to add a song-detail endpoint covering those fields.
How do I find a playlist ID to use with `get_playlist_songs`?+
Playlist IDs are UUIDs that appear in the response data from explore_songs, or you can read them directly from Suno playlist URLs in your browser (e.g., suno.com/playlist/<uuid>). Pass that UUID as the required playlist_id parameter.
Does the API cover user profiles, followers, or a specific user's uploaded songs?+
Not currently. The API covers public explore feeds, trending songs, and playlist contents. It does not expose user profile data, follower counts, or per-user song libraries. You can fork this API on Parse and revise it to add a user-profile or user-songs endpoint.
Page content last updated . Spec covers 3 endpoints from suno.com.
Related APIs in MusicSee all →
whosampled.com API
Discover music samples, covers, and remixes by searching artists and tracks, viewing detailed sample histories, and exploring trending musical connections. Get comprehensive data on which songs sampled specific tracks, artist profiles, and current charts to understand the creative lineage behind your favorite music.
songsterr.com API
Search and retrieve guitar tab notation, song metadata, and artist information from Songsterr. Access song popularity rankings, revision history, and complete tab data to power music education platforms, tab libraries, and music reference applications.
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.
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.
lyrics.com API
Search and retrieve song lyrics, artist biographies, and album information across multiple genres and artists. Browse music content by artist, letter, or genre, and discover new or random songs to explore.
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.
chosic.com API
Search for songs on Chosic and discover similar tracks filtered by audio attributes like energy, happiness, danceability, and more. Returns song titles, artists, Spotify IDs, and thumbnail images.
musixmatch.com API
Search for song lyrics, metadata, and translations while discovering artist profiles, discographies, and album details all in one place. Build music apps that let you retrieve complete song information, explore artist catalogs, and discover new music through curated feeds.