API and MCP

Run your release from Claude or ChatGPT.

Ask for a lyric video, plan the rollout, schedule the posts and check what worked. Music24 does it, and asks you before anything goes public or uses credits.

Serverhttps://api.music24.com/mcpSign-inOAuthPlanEvery plan
Claude · Music24 connectedExample
How did my release week go?
music24_get_smartlink_statsYour SmartLinks had their best week yet. The most clicks:
1Swamps1,240 clicks
2Pre-save page610 clicks
3Link in bio180 clicks
AI clients

What you can ask

Ask in your own words. Your assistant picks the right Music24 tool: it reads your numbers, makes your release assets, plans the rollout, schedules the posts and builds your SmartLinks and pre-save pages. Before anything goes public, uses credits or deletes something, it shows you what will happen and waits for your yes.

“Make a lyric video for my new single.”music24_make_assets
“Plan the rollout for my release on Friday.”music24_get_release_plan
“Schedule the teaser posts for this week.”music24_schedule_posts
“Make a pre-save page for my next song.”music24_create_smartlink
“How did my SmartLink do since release day?”music24_get_smartlink_stats
“What did the artists I follow do this week?”music24_weekly_report
AI clients

Set up your AI client

  1. In Claude, open Settings → Connectors and add a custom connector.
  2. Name it Music24 and paste the server URL: …/mcp.
  3. Connect. Sign in to Music24 and approve the access.
  4. Ask for what you need. Claude uses the Music24 tools when they help.

Every assistant uses the same address, /mcp, and gets the same tools: Claude, ChatGPT, Cursor and every other client. AI reels, AI cover pictures and AI clips are there too; each one shows its cost first and waits for your yes. You change your plan and buy credits in the Music24 app.

Log in before you connectThe consent screen needs a Music24 browser session. If you get signed out during the flow, sign in again and start the connection again.
Server URL
https://api.music24.com/mcp
AI clients

Everything your assistant can do

Your assistant gets 113 Music24 tools, grouped the way the app is. A Read tool only looks. A Change tool works in your workspace. Asks first means it shows you a preview and waits for your yes.

61 read · 52 change

Your workspace
Readmusic24_get_workspaceGet workspaceThe active Music24 workspace: its name, your role, the plan, the team members and the video credits (monthly plan credits and pack credits), and your own user (email, language).
Readmusic24_list_artistsList artistsThe artists of your Music24 workspace, with their ids. Start here: every artist tool takes `accountId` from this list. The row with `isDemo: true` is LaziiBee, an example artist that you can read but not change. Send `accountId` to get all the details of one artist (name, slug, picture, links).
Home
Readmusic24_get_artist_homeGet artist homeOne artist's Home page: the catalog, the connected services and their numbers, the streaming overview, the SmartLinks and their visits, the social channels, the scheduled posts, the social summary and the AI reels. A block that fails answers `{ error: code }`; the other blocks still answer.
Your songs
Changemusic24_add_songAdd songAdds a song to the catalog of one artist. 'claim': a released song that Music24 knows (`catalogTrackMaid` from the suggestions or the charts); when an unreleased row of the same song exists, the answer names it: call again with `linkToItemUuid` to promote it, or with `addAsNew: true`. 'link': a released song that Music24 does not know, from its links (`serviceLinks`). 'unreleased': a song that is not out yet.
Changemusic24_delete_songDelete songAsks firstDeletes one song from the catalog, with its master and every asset that Music24 made for it. Answers a preview first.
Readmusic24_get_master_linksGet master linksShort-lived links to the master of one song: `stream` (an AAC copy to play) and `download` (the original file). The routes are POST, so an app with only the read permission gets M24_MCP_WRITE_SCOPE_REQUIRED.
Readmusic24_get_songGet songOne song: the master (state, length, BPM), the lyrics, the lyric sync state, the ISRC, the UPC and what Music24 made for it.
Readmusic24_list_catalogList catalogThe songs of one artist (released and unreleased) with their links, master and lyric state, and the songs that Music24 found on the services and suggests to add (`suggestions`).
Readmusic24_list_release_eventsList release eventsThe open release-day cards of one artist: an unreleased song that seems to be out now ("Is this your song?"), or a song that Music24 linked on its release day.
Changemusic24_resolve_release_eventResolve release eventAnswers a release-day card or a suggestion. 'dismiss' (`eventId`): close the card. 'link' (`uuid`, `maid`): yes, this unreleased song is that released track. 'released' (`uuid`, `serviceLinks`): an unreleased song is out, from its links. 'dismissSuggestion' (`catalogTrackMaid`): not my song.
Changemusic24_update_songUpdate songChanges the facts of one song (title, artist name, release type and date, artwork, links, ownership), its ISRC, its UPC or its lyrics. `null` clears a field. The lyric timing has its own tool (music24_update_lyric_timing).
Lyrics
Readmusic24_get_lyric_timingGet lyric timingThe lyric lines of one song with the start time of each line in ms, the sync state and the revision.
Changemusic24_resync_lyricsResync lyricsAsks firstSyncs the lyrics of one song to its master again, from the start. Hand-set times go. Answers a preview first.
Changemusic24_update_lyric_timingUpdate lyric timingSets the start time of lyric lines by their index. Send the `revision` from music24_get_lyric_timing: a newer revision on the server answers a conflict. `startMs: null` clears a line.
Releases and the Studio
Readmusic24_get_kit_zipGet kit zipA download link to every ready asset of one release kit as one zip. A large kit answers `{ status: "emailing", requestId }`: call again with `requestId` to read the state, or wait for the email. The route is POST, so an app with only the read permission gets M24_MCP_WRITE_SCOPE_REQUIRED.
Readmusic24_get_proresGet ProResThe ProRes file of a motion artwork asset, for a distributor (Pro and higher): the file link when it is ready, `working` while it renders, or none. music24_make_prores starts the render.
Readmusic24_get_releaseGet releaseThe Overview of one release: the song, the kit, the SmartLink, the posts and what is next.
Readmusic24_get_release_kitGet release kitThe release kit of one song: its theme, the assets (ready, working, failed) and the Studio state. Without `catalogItemUuid`: the list of kits of the artist. With `work: true`: also the Work page (every asset that is being made).
Readmusic24_list_asset_typesList asset typesEvery asset type that the Studio makes (images, short videos, full-song videos): its id (`themeId`), format, credits per video file, the files it makes, the styles and waveforms it offers, and whether it needs Pro (`needsFullVideoPlan`).
Readmusic24_list_asset_versionsList asset versionsEvery version of one kit asset, newest first, with the file links.
Readmusic24_list_releasesList releasesThe releases of one artist: each song with a release kit, its release date, its kit state and its rollout state.
Changemusic24_make_assetsMake assetsAsks firstMakes 1 to 20 kit assets for one song in the Studio (images cost 0 credits, short videos 1, full-song videos 3; see music24_list_asset_types). Answers a preview with the credits first. The answer lists the assets `created`, `busy` (already being made) and `skipped`.
Changemusic24_make_proresMake ProResStarts the render of the ProRes file of a motion artwork asset, for a distributor (Pro and higher), when there is none. The answer is `working` until the file is ready; read it with music24_get_prores.
Changemusic24_remake_assetsRemake assetsAsks firstMakes a new version of kit assets ("Make them again"), with the same details, in the theme that the kit has now. Answers a preview with the credits first.
Changemusic24_set_release_themeSet release themeAsks first for some actionsChanges the look of one song's release kit: the theme, the display font, the five colours and the logo. `saveAsDefault: true` also makes it the default look of the artist; `resetDefault: true` clears the default look, after a preview. With no change it answers the default look.
AI reels
Readmusic24_list_reelsList reelsThe AI reels of one artist (or of one song), with the state, the video link and the captions. With `uuid`: one reel.
Changemusic24_make_reelMake reelAsks firstMakes one AI reel of a song (needs a ready master). It costs 1 video credit. Answers a preview with the credits first. The reel is ready in a few minutes: read it with music24_list_reels.
Changemusic24_review_reelReview reelAsks first for some actionsReviews a ready AI reel. 'approve' (`caption`, `channelPlatforms`): makes draft posts of the reel on those channels. 'reject' (`reason`): says no, with a reason for the next one. 'regenerate' (`reason`): makes another reel of a rejected one, for 1 credit. 'approve' and 'regenerate' answer a preview first.
Cover art
Readmusic24_list_cover_picturesList cover picturesThe cover editor of one song: the song and its cover, the AI pictures (newest first), the designs, the monthly AI picture quota and the free welcome run.
Changemusic24_make_cover_picturesMake cover picturesAsks firstMakes 4 AI cover pictures for one song, from the song, its lyrics and the kit colours, with optional `instructions` and up to 3 reference pictures (the owner must confirm the rights once). It uses 4 pictures of the monthly quota: it answers a preview first.
Music videos
Changemusic24_edit_music_video_cutEdit music video cutAsks first for some actionsChanges the cuts of the music video of one song. 'create' (`fromCutUuid` to copy one): a new cut that the AI director fills. 'update' (`cutUuid`, `revision`, `doc`): saves the timeline of a cut (read it first with music24_get_music_video). 'delete' (`cutUuid`): answers a preview first. 'recut' (`cutUuid`, `sections` or 'all', `chips`, `text`): the director cuts those sections again. 'aiClip' (`prompt`, `style`, `people`): makes an 8-second AI clip for the footage of the song, for 4 credits; it answers a preview first. 'removeClip' (`clipUuid`): removes a clip from the footage, after a preview.
Readmusic24_get_music_videoGet music videoThe music video editor of one song: the song map (sections and beats), the lyrics, the cuts, the plan (can make the video, can make AI clips, credits left) and the music video that is made. With `cutUuid`: one cut with its whole timeline.
Readmusic24_list_footageList footageThe footage of the music videos. view 'mine' (default): the artist's own clips and AI clips (`catalogItemUuid` for one song). 'bank': the clip bank (`q`, `mood`, `setting`, `people: 'none'`, `cursor`, `limit`, `uuids`). 'suggest' (`catalogItemUuid`, `section`): bank clips that fit one section of the song.
Changemusic24_make_music_videoMake music videoAsks first"Make the video": renders a full-song music video from one cut. It costs 3 credits and needs Pro or higher. Answers a preview first. The video becomes a kit asset (music24_get_release_kit).
Add your files
Readmusic24_get_importImport stateThe state of one file import: 'importing', 'done' (with `result`: the file, the post video, the footage clip or the song master) or 'failed' (with `failReason`: tooLarge, notAllowedType, unreachable, refused or error, and a sentence). An import is kept 24 hours.
Changemusic24_import_fileImport a fileGive a public https link to a file: a song master, a video for a post, footage or an image. In ChatGPT an attached file gives such a link. `target`: 'master' (WAV, FLAC, AIFF, MP3, M4A or AAC, up to 200 MB; needs `catalogItemUuid`; the first master of an artist needs `rightsConfirmed: true`, send it only when the user says that they own or control the rights), 'postVideo' (MP4 or MOV for a post, up to 1 GB), 'footage' (MP4 or MOV for the music video editor, optional `catalogItemUuid`), 'image' (JPEG, PNG, WebP or GIF, up to 20 MB). Answers `{ importId, status: 'importing' }`; read the state with music24_get_import.
Rollout plan
Changemusic24_add_rollout_draftsAdd rollout draftsAsks first for some actions"Add drafts" of the Plan tab: makes draft posts for the rollout days that have a ready file, on the channels. Drafts take no scheduled-post unit; schedule them later. `dayKeys` limits the days. `makeMissing: true` also makes the missing kit assets of those days (this spends video credits, so it answers a preview first). `autoDraft: true` adds the drafts of a day when its asset is ready. 'spike' and 'evergreen' need a plan that can push old songs.
Readmusic24_get_release_planGet release planThe rollout plan of one release (the Plan tab): each step (day, format, asset, channels, posts and times, skipped or added) and the rollout preview with the count of drafts that "Add drafts" makes now.
Changemusic24_update_release_planUpdate release planAsks first for some actionsChanges the rollout plan of one release. 'defaultChannels' (`channels`): the channels of every step with no list of its own. 'stepChannels' (`dayKey`, `channels`): the channels of one step; a channel taken off loses its open post. 'skip' (`dayKey`): the step makes no post; its drafts go and its scheduled posts are canceled. 'unskip' (`dayKey`). 'media' (`dayKey`, `fileId`): another file for the open posts of the step. 'stepReel' (`dayKey`): makes an AI reel for the step for 1 credit. 'stepChannels', 'skip' and 'stepReel' answer a preview first.
Posts and calendar
Changemusic24_cancel_postCancel postCancels one post that has not gone out. Its scheduled-post unit comes back when it was paid this month.
Changemusic24_confirm_postedConfirm postedMarks one post as posted by hand (a manual channel). Performance counts the post from now.
Changemusic24_create_postCreate postAsks first for some actionsThe Composer: one post per channel. `asDraft: true` makes drafts (no unit of the quota, nothing goes out). Otherwise the posts are scheduled at `scheduledAt` ('now' or an ISO time) and take one unit each: it answers a preview first. Instagram, TikTok and YouTube need a file (`mediaFileId`). A scheduled post on a connected TikTok or YouTube channel needs `platformSettings`.
Changemusic24_delete_postDelete postAsks firstDeletes one draft, failed or canceled post. A scheduled post must be canceled first (music24_cancel_post). Answers a preview first.
Readmusic24_get_calendarGet calendarThe Promote Calendar of one artist for a range (at most 100 days, `to` is exclusive): the posts with their songs and the rollout days, and the scheduled-post quota of the month. `include` adds: posts (the plain post list), tiktokCreatorInfo (the TikTok account and the privacy levels it allows, read live), youtubePostingInfo (the YouTube upload rules).
Readmusic24_list_campaignsList campaignsThe Promote campaigns of one artist (a group of posts of one release or push). Change them with music24_manage_campaigns.
Changemusic24_manage_campaignsManage campaignsChanges the Promote campaigns of one artist (a group of posts of one release or push); read them with music24_list_campaigns. 'create' (`name`, `kind`, `catalogItemUuid`, `smartLinkId`, `startAt`). 'update' (`uuid`, `name`, `status`).
Changemusic24_move_postMove postMoves one post on the Calendar to another time. The post keeps its state: a draft stays a draft.
Changemusic24_schedule_postsSchedule postsAsks firstSchedules drafts at their own times ("Schedule all drafts of this day"). Each draft takes one scheduled-post unit. Answers a preview first.
Changemusic24_update_postUpdate postAsks first for some actionsEdits one post that has not gone out: the caption, a new time (`scheduledAt` arms a draft, a failed or a canceled post again and takes a unit when it holds none), or the platform settings of its own platform. A new time answers a preview first. To cancel a post use music24_cancel_post.
Changemusic24_write_captionsWrite captionsAI captions for a song, one per platform, in the length that each platform takes. Nothing is posted.
Publish a video
Changemusic24_change_publishChange publishAsks first for some actionsChanges a one-off publish. 'changeTime' (`timing`, `publishAt`): a new time for a video that is not public yet (YouTube). 'cancel': cancels a waiting or scheduled publish (the video stays private on the platform), or takes back a manual mark; it answers a preview first.
Readmusic24_list_publishesList publishesThe one-off publishes of one artist (or one song): which asset is on YouTube, Facebook, Instagram, Spotify Canvas, Apple Music and the banners, with the state and the time. With `kitAssetUuid` and `channel`: also the defaults of a new publish (title, description, connection, release day).
Changemusic24_publish_assetPublish assetAsks firstPublishes one kit asset to one one-off channel: a full-song video to YouTube, a Facebook Page or Instagram (a Reel, at once); or marks a manual channel as set (Spotify Canvas, Apple Music, the banners, the YouTube thumbnail). For 'youtube' you MUST send `madeForKids` (ask the user; there is no default). Answers a preview first. When another version is live, it answers `needsChoice`: then call again with `replacesPublishUuid` or `keepBoth: true`.
Files and sharing
Changemusic24_archive_filesArchive filesArchives post files (`archived: true`) or restores them (`false`). A file that a draft, scheduled or "needs you" post uses stays and comes back in `blocked`. A kit keeper file cannot be archived.
Readmusic24_list_posts_boardList posts boardThe Posts page of one artist. view 'board' (default): the post files in the lanes Ready to post, Scheduled and Posted, and what is being made. 'archived': the archived post files (`outcome`: posted or never). 'uploads': the files that the artist uploaded (`query`, `mediaKind`, `cursor`). 'locate' (`uuid`): where one file lives. 'summary': the counts of the work in progress (`scope`: work or assets).
Readmusic24_list_youtube_candidatesList YouTube candidates"Add yours": the videos of the connected YouTube channel of the artist that may fit one song (from the last channel sync). Add one with music24_manage_added_assets.
Changemusic24_manage_added_assetsManage added assetsAsks first for some actions"Add yours": a video that the artist already has counts as a kit asset. 'addYouTube' (`themeId`, `url` or `videoId`): adds a YouTube video as a version of that asset type. 'remove' (`assetUuid`): removes an added video, after a preview. Uploads of a file are in the Music24 app only.
Changemusic24_share_fileShare fileAsks firstThe public share link of one made file (a kit asset version or an AI reel): anyone with the link can see and download it. Answers the live link when one exists, else makes one. Answers a preview first.
Changemusic24_unshare_fileUnshare fileAsks firstTurns off the public share link of one made file. The old link stops working. Answers a preview first.
SmartLinks
Changemusic24_create_smartlinkCreate SmartLinkMakes a SmartLink as a draft. kind 'release': a release link (`title`, `subtitle`, `urls` of the song on the services, `imageId` or `imageURL`). 'playlist': a playlist link (`url`). 'presave': a pre-save page (`title`, `artistName`, `releaseDate`, `services`, `catalogItemUuid`). 'blank': an empty page (`name`, `slug`). A published page counts against the plan: publish it with music24_set_smartlink_published.
Changemusic24_delete_smartlinkDelete SmartLinkAsks firstDeletes one SmartLink. Its link stops working. Answers a preview first.
Changemusic24_duplicate_smartlinkDuplicate SmartLinkCopies one SmartLink with its blocks into a new draft with a new name and address.
Changemusic24_edit_smartlink_blocksEdit SmartLink blocksAsks first for some actionsChanges the blocks of the draft of one SmartLink. 'add' (`type`, `data`): info `{ text, type: 'title'|'subtitle'|'text' }`, link `{ url, label }`, player `{ url }`, socialLinks `{}`, profile `{}`, presave `{ campaignUuid, services? }`, media (a picture or a video). 'update' (`widgetUUID`, `position`, `data`): moves or changes a block. 'remove' (`widgetUUID`): answers a preview first. Read the blocks with music24_get_smartlink.
Readmusic24_get_smartlinkGet SmartLinkOne SmartLink: its draft and its published version with every block (uuid, type, position, data), the links and the theme.
Readmusic24_get_smartlink_statsGet SmartLink statsThe numbers of the SmartLinks: with `smartLinkId`, the views, the clicks per service and the countries of one page; without it, the summary of every page and the totals of the artist.
Readmusic24_list_smartlinksList SmartLinksThe SmartLinks of one artist (name, address, draft or published, preview), and the page themes.
Readmusic24_list_trackersList trackersThe tracking pixels on every SmartLink of the artist (Meta, TikTok, Google). With `trackerId`, one tracker. Change them with music24_manage_trackers.
Changemusic24_manage_trackersManage trackersAsks firstChanges the tracking pixels on every SmartLink of the artist (Meta, TikTok, Google); read them with music24_list_trackers. 'add' (`snippet`: the pixel code that the platform gave the user). 'update' (`trackerId`, `snippet`). 'remove' (`trackerId`). Every action answers a preview first: show it to the user. Add only a snippet that the user pasted; never write one.
Changemusic24_set_smartlink_publishedPublish or unpublish SmartLinkAsks first for some actions`published: true` makes the draft of one SmartLink live at its address (it answers a preview first; a new live page counts against the plan). `published: false` takes the page offline.
Changemusic24_update_smartlinkUpdate SmartLinkChanges the draft of one SmartLink: the name, the address (`slug`), the background picture, the theme or the host of the link. A published page shows the change after music24_set_smartlink_published.
Pre-saves
Readmusic24_export_fansExport fansThe fans who subscribed to every new release of the artist: the kind (service or email), the service, the state, the day and the page they came from (the first 200 rows and the total). Only the workspace owner sees the fan emails. Needs a plan that can export fans. The fans of one pre-save campaign are in music24_export_presave_fans.
Readmusic24_export_presave_fansExport pre-save fansThe fans who pre-saved one campaign: the service, the marketing consent, the state and the day (the first 200 rows and the total). Only the workspace owner sees the fan emails. Needs a plan that can export fans.
Readmusic24_get_fansGet fansThe fans who subscribed to every new release of the artist: the total, the count per service, the email-only fans, the fans who must sign in again, the new fans and a daily series of the period. Also one page of the releases that Music24 sent to these fans, with the saves and emails of each (`cursor` from `nextCursor` gives the next page). The fan list is in music24_export_fans.
Readmusic24_get_presaveGet pre-saveOne pre-save campaign of a SmartLink: the song, the artist, the release day, the state and the sign-ups. The fan list is in music24_export_presave_fans.
Changemusic24_update_presaveUpdate pre-saveAsks first for some actionsChanges the pre-save campaign of a SmartLink (read it with music24_get_presave). 'create' (`smartLinkId`, `title`, `artistName`, `releaseDate`): a campaign on a SmartLink that has none; then add a presave block with music24_edit_smartlink_blocks. 'update' (`campaignId`, `title`, `artistName`, `releaseDate`). 'release' (`campaignId`, `urls` of the song on the services): saves the song for every fan now. 'cancel' (`campaignId`): ends the campaign; nothing is saved. 'release' and 'cancel' answer a preview first.
Streams and earnings
Readmusic24_get_earningsGet earningsThe earnings of one artist from every source with earnings (distributors), by store, track or month. Send `integrationType` for the earnings of one source only (for example Ditto). `hidden: true` means the workspace hides money from members.
Readmusic24_get_streaming_breakdownGet streaming breakdownThe streams of one artist by store or by country, from every connected source.
Readmusic24_get_streaming_overviewGet streaming overviewThe streaming totals of one artist from every connected service: streams, listeners and the trend.
Readmusic24_get_track_streamsGet track streamsThe artist-portal numbers of one artist: 'tracks' (the songs with streams, listeners and saves), 'track' (the daily numbers of one song), 'playlists' (the playlists that play the artist), 'stores' or 'countries' (the streams of one service by store or country, for example Ditto).
Readmusic24_list_streaming_tracksList streaming tracksThe songs of one artist by streams, from every connected service.
Social numbers
Readmusic24_get_channel_statsGet channel statsThe numbers of one social channel of one artist day by day: followers, views and engagement.
Readmusic24_get_social_post_statsGet social post statsThe numbers of one social post day by day. `id` comes from music24_list_social_posts.
Readmusic24_get_social_summaryGet social summaryThe social numbers of one artist: followers and views per channel for the period, and how the posts that Music24 published perform.
Readmusic24_list_social_postsList social postsThe posts on the connected social channels of one artist, newest first, with views, likes, comments, shares and saves. `ours: true` keeps only the posts Music24 published. Use `nextCursor` for the next page.
Connected services
Changemusic24_disconnectDisconnectAsks firstDisconnects a music service (`integrationType`) or a social channel (`platform`) from one artist. The numbers that Music24 already read stay. Answers a preview first.
Changemusic24_get_connect_linkGet connect linkA sign-in link to connect a social channel (`platform`) or a music service (`integrationType`) to one artist. The user opens it in a browser and signs in on the service; Music24 never asks for a password here. Some services connect only in the Music24 app.
Readmusic24_list_connectionsList connectionsThe connections of one artist: each music service and distributor (status, the artist picked, the last sync) and each social channel. With `platform`, also the pages or accounts you can pick for that channel after a sign-in (for example the Facebook pages).
Readmusic24_list_portal_artistsList portal artistsThe artists that a signed-in artist portal (`integrationType`, for example Spotify for Artists) offers to pick, read live from the portal. Pick one with music24_update_connection action 'pickArtist'.
Changemusic24_sync_connectionSync connectionReads the numbers of one connected music service again now.
Changemusic24_update_connectionUpdate connectionChanges one connection. 'pickArtist' (`externalId` from music24_list_portal_artists): pick the artist of a signed-in artist portal. 'pickTarget' (`platform`, `externalId`): pick the page or account of a social channel. 'setManual': save a profile link of a music service (`artistProfileUrl`, empty clears it) or a social handle (`platform`, `handle`, optional `status` 'manual' or 'disconnected'). 'request' (`reason`): ask Music24 for a service that the label or an invite holds. 'earlyAccess' (`loginEmail`): join the waiting list of a service.
Charts and playlists
Readmusic24_artist_detailsArtist detailsAn artist's profile plus playlist-addition and playlist-visibility stats for `date`.
Readmusic24_browse_searchBrowse searchBrowse: find artists, tracks and playlists in the Music24 catalogue. 'search' (default, needs `q`), 'usage' (the browse credits left this month), 'genres' (the genre filter list), 'allGenres' (the top genres of the catalogue). A search costs no browse credit; music24_artist_details and music24_track_details charge one.
Readmusic24_daily_reportDaily reportDaily digest for the artists/tracks/playlists that the token's workspace follows: `date` vs. the previous day, top 5 movers each.
Readmusic24_export_watchlistExport watchlistThe CSV of every followed artist, track or playlist of the workspace (Pro and higher plans). Answers `{ kind, filename, csv }`.
Changemusic24_followFollowAdds an artist, a track or a playlist to the Watchlist of the workspace. `kind` and `id` (the id from a chart or a search). For a playlist that Music24 does not track yet, send `url` (a Spotify, Apple Music, Deezer or YouTube playlist link) instead of `id`: Music24 starts to track it.
Readmusic24_get_artist_chartsArtist chartsThe charts of one artist (`id`, the maid): 'positionChange', 'playlistScore', 'reach', 'listeningScore', 'listeningTrend', 'isFollowing'. 'followed' (no id) lists the followed artists with their follow dates.
Readmusic24_get_marketsMarketsThe Markets page: the countries where the followed artists and tracks are seen, and the reach of the followed playlists per music service.
Readmusic24_get_playlistPlaylistPlaylists. With `id` (uuid): 'details', 'songs', 'followers' (follower counts per day), 'isFollowing' (whether you follow it). Without `id`: 'combinedFollowers' (the reach of every followed playlist), 'topByFollowers', 'trending'.
Readmusic24_get_track_chartsTrack chartsThe charts of one track (`id`, the maid): 'positionChange', 'playlistScore', 'reach', 'listeningScore', 'listeningTrend', 'isFollowing', 'topPlaylists' (the biggest playlists with the track), 'recentChanges' (playlist adds and removes per day). 'followed' (no id) lists the followed tracks with their follow dates.
Readmusic24_get_trendsTrendsThe Trends page. 'anomalies' (spikes and drops of the last `days`), 'trendingUp' (biggest 7-day risers), 'changePoints' (the turning points of one artist or track: `entityType` + `entityId`, the numeric id), 'summary' (the AI summary of the day: needs `date`).
Readmusic24_my_followsMy followsThe artists, tracks, and playlists that the token's Music24 workspace follows (shared by every member of the workspace) — true counts plus a recent-first slice of each.
Readmusic24_playlist_changesPlaylist changesRecent track add/remove events for one playlist by id, newest first. Scoped to a single playlist — not a feed across all of the playlists that the token's workspace follows (see music24_my_follows for the follow list).
Changemusic24_retry_trends_summaryRetry trends summaryMakes the AI trends summary of one day again (after an error or a stale text). Read it later with music24_get_trends view summary.
Changemusic24_share_viewShare a chart viewAsks firstMakes a public link to the chart page of one artist, track or playlist for one date and window. Anyone with the link can see that page. Answers a preview first, then `{ code, url }`.
Readmusic24_top_artistsTop artistsTop artists on Music24's chart: 'overall' visibility (seen_count across tracked playlists) or 'gaining' (biggest playlist-add movers on `date`).
Readmusic24_top_tracksTop tracksTop tracks on Music24's chart: 'overall' visibility or 'gaining' (biggest playlist-add movers on `date`). Optionally scoped to one artist.
Readmusic24_track_detailsTrack detailsA track's profile (incl. audio features) plus playlist-addition and playlist-visibility stats for `date`.
Changemusic24_unfollowUnfollowRemoves an artist, a track or a playlist from the Watchlist of the workspace (every member sees the change).
Readmusic24_weekly_reportWeekly reportWeekly digest for the artists/tracks/playlists that the token's workspace follows: the 7 days ending on `date` vs. the prior 7, top 5 movers each.
Settings
Changemusic24_create_artistCreate artistAdds an artist to your workspace. The plan sets how many artists a workspace has; above it the answer is M24_LIMIT_ARTISTS with the upgrade link.
Readmusic24_get_upgrade_linkGet upgrade linkThe links to change the Music24 plan: Settings → Subscription in the web app, and the price page. A plan change happens only in the browser.
Changemusic24_update_artistUpdate artistChanges the name, the address name (slug) or the time zone of one artist. With no change it answers the current time zone. The time zone sets when scheduled posts go out.
Changemusic24_update_notificationsUpdate notificationsYour email and push notification settings: the report frequency, the mover alerts, the playlist alerts and the push types. With no argument it answers the current values.
AI clients

How changes work

You stay in charge. Before a post goes out, a page goes live, credits are spent or something is deleted, Music24 answers with a preview first: what will happen, the posts and their times, the credits it costs and what you have left. Your assistant shows it to you, and only your yes makes it happen.

The same rules as in the app. Credits, quotas and plan limits work exactly as they do in Music24. When your plan does not include something, your assistant tells you and gives you the link to upgrade. You pay in Music24, never in the chat.

Bring your files. Give your assistant a public https link to a file and Music24 adds it: a master (up to 200 MB), a video for a post (up to 1 GB), footage for a music video, or an image (up to 20 MB).

LaziiBee is an example. Your assistant can read the example artist to show you around, but it cannot change it. Add your own artist in Music24 first.

Take access back at any time in Settings → API → Connected apps. The client stops working at once.

WhatHow it works
PreviewValid for 10 minutes, used once. A changed request needs a new preview.
Rate30 calls a minute for each tool, 10 for a tool that asks first.
PlanEvery plan, Free included. Credits and limits as in the app.
AI clients

What stays in the app

A few things stay in Music24, where only you can do them. Your assistant can tell you where to find each one.

  • Sign-in and security: your sign-in, sign-in methods, email address and account deletion.
  • Access: personal API tokens and the apps you connected.
  • Your team: invites, members and workspace settings.
  • Payments: we give you the link; you pay in Music24.
  • Some connections: your assistant gives you the link to connect social channels and YouTube. Spotify for Artists, Deezer for Creators and Ditto connect in the Music24 app.
  • Hands-on editing: the cover editor layout and direct uploads from your device. Your assistant makes AI cover pictures and adds files from a link instead.
AI clients

Sign-in and access

An AI client never gets a personal access token. It signs in with OAuth. The access token lasts one hour, and the refresh token 30 days; it rotates on use.

The consent screen lists what the client asks for: to see your artists, releases, numbers and posts and, for a client that works for you, to make assets, plan and schedule posts and edit SmartLinks. A client that you approved only to read gets M24_MCP_WRITE_SCOPE_REQUIRED from a tool that changes something. Connect it again and allow it to make changes too.

To disconnect a client, remove it in Settings → API → Connected apps in the Music24 app. Its tokens stop working at once.

OAuth scopes
music24:read                 see your data
music24:read music24:write   see your data and work for you
For developers · API
Developers

Get a token

Create a token in Settings → API in the Music24 app. It needs the Label plan. The token is shown once; Music24 stores only its hash. You can hold five active tokens.

Send it in the Authorization header. Token and Bearer work the same. A personal token can read and write. Revocation is instant: the next request gets 401 UNAUTHORIZED.

A token works in the workspace that was active when you created it. While that workspace is not on the Label plan, its tokens get 403 FORBIDDEN.

Every request
Authorization: Token m24_xxxxxxxxxxxxxxxxxxxxxxxx
Developers

First request

Your token calls the endpoints under https://api.music24.com/trpc. Each endpoint is a tRPC procedure over plain HTTP, so you need no client library. JSON in, JSON out.

A read is a GET with its arguments as URL-encoded JSON in the input parameter, wrapped in { "json": … }. A write is a POST with the same JSON as the body. Every answer is wrapped in { "result": { "data": { "json": … } } }.

List endpoints page with limit and offset. Dates are ISO YYYY-MM-DD in UTC. Ids are opaque strings: store them as given.

The /v1 REST routesMusic24 also serves REST routes under https://api.music24.com/v1, described in https://api.music24.com/v1/openapi.json. They answer only to partner keys. A personal token gets 401 UNAUTHORIZED there, so use the endpoints on this page.
curl 'https://api.music24.com/trpc/artists.topGaining?input=%7B%22json%22%3A%7B%22limit%22%3A5%7D%7D' \
  -H 'Authorization: Token m24_xxxxxxxxxxxxxxxxxxxxxxxx'
Response · abridged
{
  "result": {
    "data": {
      "json": {
        "artists": [
          {
            "artistMaid": "2ab91f6e-...",
            "mainArtistName": "LaziiBee",
            "imageUrl": "https://.../laziibee.jpg",
            "addedToPlaylists": { "current": 0.42, "previous": 0.31 },
            "removedFromPlaylists": { "current": 0.02, "previous": 0.05 }
          }
        ],
        "pagination": { "limit": 5, "offset": 0 }
      }
    }
  }
}
Developers

Endpoints

A GET reads. A POST writes: it follows or unfollows. Add the name to https://api.music24.com/trpc/, for example https://api.music24.com/trpc/artists.topGaining.

An OAuth token can call every GET. A POST needs a personal token, or an OAuth token with the music24:write scope.

ChartsMusic24’s daily leaderboards: who is gaining, who is on top, right now.
GETartists.topGainingArtists with the biggest playlist-add gains today.
GETartists.topOverallArtists ranked by total playlist visibility.
GETtracks.topGainingTracks with the biggest playlist-add gains today.
GETtracks.topOverallTracks ranked by total playlist visibility.
GETplaylists.topByFollowersThe largest playlists Music24 tracks, by follower count.
GETplaylists.trendingPlaylists with the biggest follower-count gains today.
DetailsOne artist, track or playlist at a time: profile plus history.
GETartists.detailsAn artist’s profile (name, image).
GETartists.positionChangeAn artist’s chart-position history.
GETartists.playlistAdditionsPlaylists that added this artist recently.
GETartists.playlistAppearancesPlaylists this artist currently appears on.
GETartists.playlistScoreChartAn artist’s visibility score over time.
GETtracks.detailsA track’s profile, including audio features.
GETtracks.positionChangeA track’s chart-position history.
GETtracks.playlistAdditionsPlaylists that added this track recently.
GETtracks.playlistAppearancesPlaylists this track currently appears on.
GETtracks.playlistScoreChartA track’s visibility score over time.
GETtracks.recentPlaylistChangesRecent add/remove events across this track’s playlists.
GETplaylists.detailsA playlist’s profile (name, curator, followers).
GETplaylists.songsThe tracks currently on a playlist.
GETplaylists.changesA single playlist’s track add/remove history.
GETplaylists.followersTimeSeriesA playlist’s follower count over time.
Your dataThe artists, tracks and playlists you follow on Music24, plus your daily and weekly digest reports.
GETartists.followedArtistsFollowed artists, paginated, with images.
GETartists.listFollowedFollowed artist ids only — fast, no stats.
POSTartists.followFollow an artist.
POSTartists.unfollowUnfollow an artist.
GETtracks.followedTracksFollowed tracks, paginated, with images.
GETtracks.listFollowedFollowed track ids only — fast, no stats.
POSTtracks.followFollow a track.
POSTtracks.unfollowUnfollow a track.
GETplaylists.listFollowedFollowed playlist ids.
POSTplaylists.followFollow a playlist.
POSTplaylists.unfollowUnfollow a playlist.
GETreports.getMyDailyReportThe caller’s daily digest: top movers today vs. yesterday, plus the AI trends summary.
GETreports.getMyWeeklyReportThe caller’s weekly digest: top movers this week vs. last week.
InsightsStatistical signals computed on top of the daily chart data.
GETinsights.trendingUpArtists or tracks accelerating fastest right now.
GETinsights.anomaliesArtists or tracks with a statistically unusual jump.
Developers

Limits and errors

The rate limit is 30 requests per minute per user, for each endpoint. More tokens do not add headroom. Details for an artist, track or playlist you do not follow spend one daily browse credit; anything you follow is free.

Your plan sets how far back date can go and how deep offset can reach. A request past the limit gets 403 FORBIDDEN, and the message names the limit.

A failed call returns a non-2xx status. Branch on the stable code string in error.data.code, not on the message.

LimitValue
PlanLabel for personal tokens. MCP connections work on every plan.
Rate30 requests per minute, per user, for each endpoint and each MCP tool.
HistoryHow far back date may reach. Plan-dependent.
PaginationHow deep offset may reach. Plan-dependent.
Browse creditsDaily. Spent on anything you do not already follow.
CodeWhen you see it
400 BAD_REQUESTThe input failed validation: a missing argument, a wrong type or malformed JSON.
401 UNAUTHORIZEDNo token, a token we cannot read, or a revoked one.
403 FORBIDDENWrong plan, past your history window, no browse credits left, or an OAuth token (m24at_) without the music24:write scope that calls a write.
404 NOT_FOUNDNo artist, track or playlist with that id.
429 TOO_MANY_REQUESTSOver 30 requests in the last minute. The message names the seconds to wait.
500 INTERNAL_SERVER_ERROROur fault. Retry a read. A follow or an unfollow is safe to retry too.