Radio Control API Documentation

Important information and safety

1. Important! The API key gives you full access to the radio. Keep it only on your server and do not share it with anyone.
2. The API allows you to receive information about the radio station and manage panel functions from your website, application, or bot.
3. The API is not a final stable version. Request parameters may be changed at any time.
4. The API with all functions is available only for PRO plans.
5. Passing the API key in the request link is strongly discouraged. Use a POST request to our HTTPS address.
6. Do not place the API key in the website page code and try not to use it in a link.
7. Test commands on test data or a test radio before launching in combat mode.
8. Make no more than one API request per second. Excessive requests may result in automatic temporary blocking of your server's IP address. You can cache the received data on your server.

How to get an API key

1. Open the control panel of the desired radio.
2. Go to Settings -> PRO Package .
3. Find the PRO API key for developers block.
4. Copy the API key or prepared link from this block.
5. To change the API key, enter a new Secret Password (6 to 30 Latin letters or numbers) in the field and save the settings. Requests will use the API key displayed in the panel, not the secret password itself.

How to use the API and execute commands

The public radio status (status.json) works without a key and is accessible to everyone. The server returns the radio station name, current track, presenter, number of listeners, history, stream links, and other public information. A detailed description of the fields is available in the OpenAPI specification for status.json. Open the link in your browser, replacing LOGIN with your radio station's username:
https://myradio24.com/users/LOGIN/status.json

To control the radio, send a request to your API address:
https://myradio24.com/en/api/LOGIN

At a minimum, you need to pass the API key apikey and the command name in the act parameter.
They can be passed using the GET method directly in the link, and additional parameters must be passed using a POST request.
For security reasons, we strongly recommend transmitting the API key covertly using the POST method.
For example, this link shows the current state of the broadcast and the queue:
https://myradio24.com/en/api/ЛОГИН?apikey=YOUR_API_KEY&act=current_status

How to find current commands and query parameters

You can find and view the required API command directly in the radio control panel. Open the browser's developer tools, the Network tab, and the Fetch/XHR filter. Then, perform the required action in the panel and open a request to /ru/api/LOGIN .
The request will show the act command name and all passed parameters. Do not share the API key, cookies, or listener data with others.

A simple example of PHP code

Do not make the file containing the real API key publicly available or display the key on the page.
This example retrieves the current radio state. Replace the radio login and key with your own values:
 <?php
$radio="LOGIN";
$apikey="YOUR_API_KEY";

function myradio24Api($radio, $apikey, $act, $post = []) {
	$url = "https://myradio24.com/ru/api/$radio?act=$act";
	$post['apikey'] = $apikey;
	$post['act'] = $act;
	$opts = [ 'http' => ['method' => 'POST', 'header' => 'Content-Type: application/x-www-form-urlencoded', 'content' => http_build_query($post)] ];
	$get = file_get_contents($url, false, stream_context_create($opts));
	if($act=="stats_getData") return $get; //download doc
	$result = json_decode($get, true);
	if(!$result || !is_array($result)) return ['error'=>'Error requesting to the server.'];
	return $result;
}

$result = myradio24Api($radio, $apikey, 'current_status');
print_r($result);

API response and errors

The API returns JSON. The server responds to all processed requests with an HTTP 200 status code.
If a required parameter is missing or the response contains an error, its description will be in the error field.
In the example above, we check whether the server request was successful. If it was unsuccessful, we return our error: Server request error. Some commands return ready-made panel fragments in the html , form , or callback fields. Do not display them on your site without testing.
If the key is missing or incorrect:
{"error":"You do not have access."}
If the command is unknown:
{"error":"no action"}

Command examples and descriptions

Current broadcast and queue

current_status - get the status of the broadcast, Auto-DJ, number of listeners, host, rebroadcast, current track and queue.
current_deleteQueue - remove an item from the queue. Get the queueID parameter from the most recent current_status response.

Listener and moderation teams

mod_list - get active connections across all threads. No additional parameters required.
The response contains an HTML file, a div, and a callback. The HTML displays the stream, IP address, country and city, connection time, device, browser, and referral source, if available.
mod_menu - get the menu of the selected connection.
Required parameters: server, mount, listener_id and ip.
Take all four values only from the latest mod_list response. The ip parameter is an opaque panel token.
mod_banForm - get the form of bans by IP and country.
mod_killListener - disable the selected connection. The server, mount, and listener_id parameters are taken from the latest mod_list.
mod_banIp - block the IP address of the selected connection. The IP, server, mount, and listener_id parameters are taken from the latest mod_list.
To remove the block, pass the ip and delete=1.
mod_banSave - save access rules by country. Parameters: save=1, mod_access, and mod_countries.
mod_access values: empty string - filter disabled, deny - block the listed countries, allow - allow only the listed countries.
In mod_countries, pass two-letter country codes separated by spaces.
Be careful! mod_killListener immediately terminates the connection, and mod_banIp may deny access to a directory or relay if it uses a shared IP.

Ether control

control_restartMenu - get the menu for starting and stopping the radio.
control_shuffleMenu - get the menu of the current playback mode.
control_next - skip to the next track. No additional parameters required.
control_stop - stop Auto-DJ. No additional parameters are required.
control_restart - Start or restart Auto-DJ. No additional parameters are required.
control_shuffle - change the playback mode. The shuffle parameter is required.
Acceptable shuffle values: 0 - in order, 1 - random without shuffling the playlist, 2 - shuffle the playlist at the beginning or end.
Caution! control_stop, control_restart, control_next, and control_shuffle immediately affect the broadcast.

Panel users

users_editForm - get the form for creating or editing a user.
users_list - get a list of panel users.
To edit, pass the edit parameter with the username.
users_menu - get the user menu. The name parameter is required.
users_edit - create or save a user.
Basic parameters: name, pass, priority, starttime and stoptime.
Additional form parameters: edit_name, vmid, hide, delstat, weekdays, and perms[].
When editing, pass edit_name with the old username.
Starttime and stoptime are set in 15-minute increments. Values of 00:00 and 00:00 indicate 24-hour access.
If weekdays is not specified, access is permitted on any day. pass is the user's password for the LIVE broadcast.
Permissions are transferred as perms[control], perms[settings], perms[streams], perms[users], perms[live], perms[table], perms[files], perms[cronlist], perms[library], perms[covers], perms[mod], perms[stats], perms[logs] and perms[idea].
users_upload - upload a user avatar. Submit multipart/form-data with the name and file. Use JPG or PNG with a size of 300x300.
users_delete - delete a user. The name parameter is required.
Important! Do not remove the administrator or change the permissions of real employees without verifying their name.

Playlists

playlist_createForm - get the playlist creation form.
playlist_create - create a playlist. The newplaylist parameter is required.
Optional parameters: allfiles - create from all files, replace - replace the existing playlist.
playlist_editForm - retrieves data for the selected playlist. The playlist_name parameter is required.
The response contains the associated playlist_id. Use only the ID from the response for the desired name.
playlist_editName - rename a playlist. Parameters: playlist_id and new_name.
playlist_editColor - change the playlist color. Parameters: playlist_id and new_color.
playlist_delete - delete a playlist. The playlist_id parameter is required.
playlist_listTracks - Get playlist tracks. The playlist parameter is required.
playlist_menu - get the context menu of the tracks in the selected playlist.
playlist_moveTrack - move a track. Parameters: playlist, track_id, and to_track_id.
playlist_deleteTracks - delete the selected tracks. Pass the playlist and the track_ids[] array.
playlist_setPlaylists - saves a list of active broadcast playlists. The playlists parameter contains a string from the current current_status.
Caution! Before calling playlist_delete , request playlist_editForm again and ensure that playlist_id refers to the correct playlist.

Files and folders

files_list - retrieves folders, files, playlists, and summary data. The optional parameters are folder and search.
The response contains folder, folders, files, files_count, files_size, files_length, playlists, files_back and callback.
file_playedInfo - Get information about the last playback. Required parameter is file_id, optional double.
file_info - Get file information and format. Parameters file_id and optional getvolume.
files_defaultMenu , folder_menu , files_menu - get context menus. For files_menu , pass the selected files in the files parameter.
folder_renameForm - Get the folder renaming form. The currentFolder parameter.
folder_rename - rename a folder. Parameters: path, currentFolder, and newname.
file_renameForm - Get the file renaming form. The file_id parameter.
file_rename - rename the file. Parameters file_id and newname.
file_queueTrackForm - Get the file queue form. Parameters: songid, songname, songpos, and playlist.
The queuetype parameter accepts replace, clear, first, or last. The startsong parameter interrupts the current track, and playlist changes the current playlist if necessary.
file_queueTrack - queue a file. The song, queuetype, startsong, playlist, and songpos parameters are taken from file_queueTrackForm.
file_recode - recode the file. File_id and recode parameters.
files_toPlaylist - add files or a folder to a playlist. Parameters: playlist and files[] array. The folder is passed with the leading / character.
files_delete - delete the selected files. Pass an indexed array file_ids[0], file_ids[1], and so on.
fileupload_upload - upload a file. Use multipart/form-data with the folder, file, and idx fields.
To upload to the root directory, pass an empty folder. For a new folder, pass its name ending with a /.
file_play - get a link to play or download a file. The play parameter contains the file ID.
Important! file_recode fails on a file stored as Cloud: the server returns a message that the action is not available for a Cloud file.
Caution! files_delete deletes files from the media library. Before making a request, re-get files_list and check each ID.

Schedule

cronlist_list - get a ready list of tasks and their positions.
cronlist_edit - get a new task form. For an existing task, pass edit followed by the position number.
cronlist_menu - get the task menu. Parameters are pos and disabled.
calendar_loadTemplate - get the calendar grid. The required parameter is seldate in the YYYY-MM-DD format.
cronlist_save - create or save a schedule task.
Main parameters: type, playlist, method, date[], minute, number, starttime, stoptime, shuffle, wait and queuetype.
Additional parameters: edit, enabletable, relay, startsong, nointerrupt, and nextlists.
Values of type: empty string - broadcast playlist, insert - insert completely, insertone - insert one track, insertover - insert over PRO, enabletable - change table mode, changerelay - change relay.
Method values: date - by date and time, minute - after N minutes, number - after N tracks.
Queuetype values: replace, clear, first, or last.
The date[] parameter can be passed multiple times.
cronlist_play - run the task now. The pos parameter is required.
The command is accepted immediately, but the actual addition of the track to the queue may take about a minute.
cronlist_disable - disables the task. The pos parameter is required.
cronlist_enable - enable a previously disabled task. The pos parameter is required.
cronlist_sort - change the order of cronlist tasks. Parameters pos and newpos.
cronlist_delete - delete a task. The pos parameter is required.
Caution! cronlist_play runs the task immediately, while cronlist_delete deletes it permanently.

Streams and retransmissions

streams_list - get a list of main, additional and video streams.
streams_editForm - get the stream form.
streams_menu - Get the menu of the selected stream. The mount parameter is required.
streams_edit - Create or edit a stream. Uses the mount, kbpsformat, key, url, playlist, editmount, and off parameters.
streams_delete - delete an additional stream. The mount parameter is required.
kbpsformat values for radio: 32.mp3, 48.mp3, 64.mp3, 96.mp3, 128.mp3, 192.mp3, 256.mp3, 320.mp3 and the same values with the .aac extension.
For video, audio.rtmp, video.rtmp, restream.rtmp, and livestream.rtmp are available. The url parameter contains the RTMP server address, key is the stream key, playlist contains space-separated file numbers, and off=1 disables the stream.
For an additional stream, use mounts like LOGIN_1, LOGIN_2, and so on. To modify an existing stream, take the mount and editmount from the latest streams_editForm or streams_menu response. An invalid name returns the message "The stream name is specified incorrectly."
intros_upload - upload the stream's intro music. Use multipart/form-data with the mount and file fields.
intros_download - download the screensaver. Parameters: responseType=blob and kbpsformat.
intros_delete - delete the intro. The kbpsformat parameter.
records_startForm - Get the recording form for the selected stream. The mount parameter is required.
records_start - Enables or disables recording. Parameters are mount and hours. A positive value of hours specifies the recording period in hours, while hours=0 disables recording completely.
videos_upload - upload a video background via multipart/form-data with the file field. JPG, images, and MP4/FLV are supported; the recommended size is 1280x720, duration up to 60 seconds, and file size up to 50 MB.
videos_list - get a list of loaded video backgrounds.
videos_download - download a video background. Parameters: responseType=blob and file.
videos_delete - delete video background. File parameter.

Order table and individual settings

table_getTable - get current and processed orders, block list and update callback.
table_settings - get the order table settings form.
radio_setConfig - change a single setting. Required parameters: key and value.
Valid keys are enabletable, table_limit, table_timeout, table_notplayed, table_notplayedartist, table_queue, table_priority, and table_jingle.
enabletable: 0 - off, 1 - manual broadcast, 2 - Auto-DJ, 3 - manual broadcast and Auto-DJ.
table_limit - limit of unprocessed orders from one IP; table_timeout - pause in minutes before a new order from the same IP; table_notplayed - pause before repeating a track order; table_notplayedartist - pause before repeating an artist.
table_queue: empty - after similar tracks, first - to the beginning, last - to the end. table_priority: empty - when the queue is empty, next - next, order - in order. table_jingle contains the name of the playlist or folder for the jingle, or an empty string.
Before using these keys, get table_settings and pass the value in form format.
table_setBan - ban or unban the order sender. Parameters: ip and ban. Get the ip value from the latest table_getTable.
The value ban=1 blocks the address, ban=0 removes the block.
table_setStatus - change the order status. Parameters: order_id and status. The status values are: wait - pending, next - in queue, no - rejected, ok - completed.
The public order form is located at:
https://myradio24.com/ru/table/LOGIN
It sends the table_order command with the parameters from, for, songartist, songname, fileid, and comment. For a website, it's recommended to use a pre-built page or the table code from the panel: this maintains compatibility when updating the public handler.
The public component also uses table_files to retrieve Auto-DJ tracks and table_orders for the user's order list. These three commands don't require an API key and refer to the existing order table, not administrative access.

General radio settings

settings_loadTemplate - get the current main settings form.
settings_saveSettings - save the main station settings.
The form uses the parameters limit, servertype, titlename, url, timezone, date_format, streamnametype, autodjname, shufflefiles, kbps, uploadrecode, version, statusver, dev_version, relays_on, redirect_listeners, genre, country, relay, and setplayed.
public_loadTemplate - get the current publication form.
public_save - save publication settings. The form uses fm, googleplay, hidden, maxsongs, nogoogle, nolisteners, public, and vmid.
Both teams take a full picture of their respective uniforms.
settings_uploadLogo - Upload the station logo via multipart/form-data with the file field. Use a JPG or PNG with a size of 300x80.
public_uploadIcon - Upload the MyRadio24 app icon via multipart/form-data with the "file" field. Use a 64x64 JPG or PNG file, preferably no larger than 5 KB.
To remove a logo or icon, the panel uploads a file of an invalid format. The server returns a format error, but the image is deleted.
Important! These forms must be submitted in their entirety. A partial request may result in missing parameters being omitted.
Do not automate the settings in the PRO section with passwords, callbacks, and API keys via the API.

Library, artists, albums and covers

library_list - list of shared media library.
library_menu - Get the shared library track menu. Parameters: file and name.
library_copyTrack - Copy a shared library track to your files. Parameters: file and name.
library_queueTrack - sets the shared library track next. Parameters: file and name.
artists_list - List or search for artists. Optional parameters: search, strict, uploaded, my, and p.
artists_menu - the artist menu. The artist_id parameter and the optional own parameter.
artists_add - add an artist. The artist parameter.
artists_uploadNocover - upload an image for artists without cover via multipart/form-data with the file field.
artists_uploadCover - Upload an artist's cover image. Multipart fields include artist_id, file, and the optional "own." Use JPG, PNG, or WEBP files with a size of 600x600.
artists_deleteCover - delete an artist's cover. Parameters include artist_id and an optional "own."
The artists_add command creates an artist entry, but there's no separate command to delete an entry in the current panel. Add an artist only when necessary.
albums_list - List or search for albums. Optional parameters: artist, search, strict, uploaded, my, and p.
albums_menu - Gets the album menu. The album_id parameter and the optional own parameter.
albums_uploadCover - Upload album cover. Multipart fields: album_id, file, and optional "own."
albums_deleteCover - delete album cover. Parameters: album_id and optional "own."
songs_list - list or search for tracks. Optional parameters: artist, search, strict, uploaded, my, and p.
songs_menu - Get a track's menu. The song_id parameter and the optional own parameter are required.
songs_uploadCover - upload track cover art. Multipart fields: song_id, file, and optional own.
songs_deleteCover - delete track cover art. Parameters song_id and optional own.
covers_list - a list of custom covers. Optional parameters: artist, title, and strict.
covers_listArtists - list of artists for covers.
covers_listSongs - list of tracks for covers.
searchcovers_list - search for cover art. Required parameter: track in the format Artist - Track Title.

Statistics, history and reports

stats_list - connection statistics. Required parameter: date in YYYY-MM-DD format.
online_list - online statistics. Required parameter: date.
history_list - playback history. Required parameter: date.
logs_list - search through logs. Optional parameters: filter, rsort, and search.
history_download - download history. Parameters: date and responseType=blob.
logs_download - download logs. Parameter responseType=blob, optional filter, rsort, and search.
data_downloadFiles - download a file report. Parameters: fromdate, todate, fields, format, and responseType=blob.
data_downloadSongs - download a track report. Parameters: fromdate, todate, fields, format, and responseType=blob.
The history_download, logs_download, data_downloadFiles, and data_downloadSongs downloads return Content-Type: text/plain and the file content.

Downloading statistics stats_getData

Statistics download can be called using either the GET or POST method.
stats_getData - download statistics. Parameters: date, download, format.
The date parameter has the format YYYY-MM-DD, download is 1, and format can be json.
The server returns a file with a name like LOGIN_stat_2026-08-20.json.