2018-09-18 16:09:48 +02:00
openapi : 3.0 .0
info :
title : AzuraCast
description : 'AzuraCast is a standalone, turnkey web radio management tool. Radio stations hosted by AzuraCast expose a public API for viewing now playing data, making requests and more.'
license :
name : 'Apache 2.0'
url : 'http://www.apache.org/licenses/LICENSE-2.0.html'
2019-10-12 11:20:13 +02:00
version : 0.9 .7 .1
2018-09-18 16:09:48 +02:00
servers :
-
url : 'https://demo.azuracast.com/api'
2018-12-24 09:47:45 +01:00
description : 'AzuraCast Public Demo Server'
2018-09-18 16:09:48 +02:00
paths :
2019-01-29 23:32:32 +01:00
/admin/custom_fields :
get :
tags :
- 'Administration : Custom Fields'
description : 'List all current custom fields in the system.'
responses :
'200' :
description : Success
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/CustomField'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
post :
tags :
- 'Administration : Custom Fields'
description : 'Create a new custom field.'
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/CustomField'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/CustomField'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
'/admin/custom_field/{id}' :
get :
tags :
- 'Administration : Custom Fields'
description : 'Retrieve details for a single custom field.'
parameters :
-
name : id
in : path
description : ID
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/CustomField'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
put :
tags :
- 'Administration : Custom Fields'
description : 'Update details of a single custom field.'
parameters :
-
name : id
in : path
description : ID
required : true
schema :
type : integer
format : int64
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/CustomField'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
delete :
tags :
- 'Administration : Custom Fields'
description : 'Delete a single custom field.'
parameters :
-
name : id
in : path
description : ID
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
2019-01-05 13:02:49 +01:00
/admin/permissions :
get :
tags :
- 'Administration : Roles'
description : 'Return a list of all available permissions.'
operationId : 'App\Controller\Api\Admin\PermissionsController::__invoke'
responses :
'200' :
description : Success
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
2019-08-16 20:18:14 +02:00
/internal/relays :
2019-07-10 19:45:54 +02:00
get :
tags :
- 'Administration : Relays'
description : 'Returns all necessary information to relay all ' 'relayable' ' stations.'
operationId : 'App\Controller\Api\Admin\RelaysController::__invoke'
parameters : [ ]
responses :
'200' :
description : Success
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/Api_Admin_Relay'
2019-01-05 13:02:49 +01:00
/admin/roles :
get :
tags :
- 'Administration : Roles'
description : 'List all current roles in the system.'
2019-01-06 09:57:09 +01:00
operationId : 'App\Controller\Api\Admin\RolesController::_denormalizeToRecord'
2019-01-05 13:02:49 +01:00
responses :
'200' :
description : Success
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/Role'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
post :
tags :
- 'Administration : Roles'
description : 'Create a new role.'
2019-01-06 09:57:09 +01:00
operationId : 'App\Controller\Api\Admin\RolesController::_denormalizeToRecord'
2019-01-05 13:02:49 +01:00
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/Role'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Role'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
'/admin/role/{id}' :
get :
tags :
- 'Administration : Roles'
description : 'Retrieve details for a single current role.'
2019-01-06 09:57:09 +01:00
operationId : 'App\Controller\Api\Admin\RolesController::_denormalizeToRecord'
2019-01-05 13:02:49 +01:00
parameters :
-
name : id
in : path
description : 'Role ID'
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Role'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
put :
tags :
- 'Administration : Roles'
description : 'Update details of a single role.'
2019-01-06 09:57:09 +01:00
operationId : 'App\Controller\Api\Admin\RolesController::_denormalizeToRecord'
2019-01-05 13:02:49 +01:00
parameters :
-
name : id
in : path
description : 'Role ID'
required : true
schema :
type : integer
format : int64
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/Role'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
delete :
tags :
- 'Administration : Roles'
description : 'Delete a single role.'
2019-01-06 09:57:09 +01:00
operationId : 'App\Controller\Api\Admin\RolesController::_denormalizeToRecord'
2019-01-05 13:02:49 +01:00
parameters :
-
name : id
in : path
description : 'Role ID'
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
2019-01-06 09:57:09 +01:00
/admin/settings :
get :
tags :
- 'Administration : Settings'
description : 'List the current values of all editable system settings.'
operationId : 'App\Controller\Api\Admin\SettingsController::listAction'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Admin_Settings'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
put :
tags :
- 'Administration : Settings'
description : 'Update settings to modify any settings provided.'
operationId : 'App\Controller\Api\Admin\SettingsController::updateAction'
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Admin_Settings'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
2019-04-08 07:09:53 +02:00
/admin/stations :
get :
tags :
- 'Administration : Stations'
description : 'List all current stations in the system.'
responses :
'200' :
description : Success
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/Station'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
post :
tags :
- 'Administration : Stations'
description : 'Create a new station.'
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/Station'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Station'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
'/admin/station/{id}' :
get :
tags :
- 'Administration : Stations'
description : 'Retrieve details for a single station.'
parameters :
-
name : id
in : path
description : ID
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Station'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
put :
tags :
- 'Administration : Stations'
description : 'Update details of a single station.'
parameters :
-
name : id
in : path
description : ID
required : true
schema :
type : integer
format : int64
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/Station'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
delete :
tags :
- 'Administration : Stations'
description : 'Delete a single station.'
parameters :
-
name : id
in : path
description : ID
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
2019-01-03 11:59:44 +01:00
/admin/users :
2018-09-18 16:09:48 +02:00
get :
tags :
2019-01-03 11:59:44 +01:00
- 'Administration : Users'
description : 'List all current users in the system.'
2018-09-18 16:09:48 +02:00
responses :
'200' :
description : Success
2019-01-03 11:59:44 +01:00
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/User'
'403' :
description : 'Access denied'
security :
-
2019-01-03 12:35:38 +01:00
api_key : [ ]
2019-01-03 11:59:44 +01:00
post :
2018-09-18 16:09:48 +02:00
tags :
2019-01-03 11:59:44 +01:00
- 'Administration : Users'
description : 'Create a new user.'
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/User'
2018-09-18 16:09:48 +02:00
responses :
'200' :
description : Success
2019-01-03 11:59:44 +01:00
content :
application/json :
schema :
$ref : '#/components/schemas/User'
'403' :
description : 'Access denied'
security :
-
2019-01-03 12:35:38 +01:00
api_key : [ ]
2019-01-03 11:59:44 +01:00
'/admin/user/{id}' :
2018-09-18 16:09:48 +02:00
get :
tags :
2019-01-03 11:59:44 +01:00
- 'Administration : Users'
description : 'Retrieve details for a single current user.'
2018-09-18 16:09:48 +02:00
parameters :
-
2019-01-03 11:59:44 +01:00
name : id
in : path
description : 'User ID'
required : true
schema :
type : integer
format : int64
2018-09-18 16:09:48 +02:00
responses :
'200' :
description : Success
2019-01-03 11:59:44 +01:00
content :
application/json :
schema :
$ref : '#/components/schemas/User'
2018-09-18 16:09:48 +02:00
'403' :
description : 'Access denied'
security :
-
2019-01-03 12:35:38 +01:00
api_key : [ ]
2019-01-03 11:59:44 +01:00
put :
tags :
- 'Administration : Users'
description : 'Update details of a single user.'
parameters :
-
name : id
in : path
description : 'User ID'
required : true
schema :
type : integer
format : int64
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/User'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
2019-01-03 12:35:38 +01:00
api_key : [ ]
2019-01-03 11:59:44 +01:00
delete :
tags :
- 'Administration : Users'
description : 'Delete a single user.'
operationId : 'App\Controller\Api\Admin\UsersController::deleteAction'
parameters :
-
name : id
in : path
description : 'User ID'
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
2019-01-03 12:35:38 +01:00
api_key : [ ]
2019-01-03 11:59:44 +01:00
/status :
2018-09-18 16:09:48 +02:00
get :
tags :
2019-01-03 11:59:44 +01:00
- Miscellaneous
description : 'Returns an affirmative response if the API is active.'
operationId : 'App\Controller\Api\IndexController::statusAction'
2018-12-22 18:27:41 +01:00
parameters : [ ]
2018-09-18 16:09:48 +02:00
responses :
'200' :
description : Success
2019-07-10 19:45:54 +02:00
content :
application/json :
schema :
$ref : '#/components/schemas/Api_SystemStatus'
2019-01-03 11:59:44 +01:00
/time :
2018-09-18 16:09:48 +02:00
get :
tags :
2019-01-03 11:59:44 +01:00
- Miscellaneous
description : 'Returns the time (with formatting) in GMT and the user' 's local time zone, if logged in.'
operationId : 'App\Controller\Api\IndexController::timeAction'
parameters : [ ]
2018-09-18 16:09:48 +02:00
responses :
'200' :
description : Success
2019-07-10 19:45:54 +02:00
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Time'
2019-01-03 11:59:44 +01:00
/nowplaying :
2018-09-18 16:09:48 +02:00
get :
tags :
2019-01-03 11:59:44 +01:00
- 'Now Playing'
description : 'Returns a full summary of all stations' ' current state.'
operationId : 'App\Controller\Api\NowplayingController::__invoke'
parameters : [ ]
2018-09-18 16:09:48 +02:00
responses :
'200' :
description : Success
2019-07-10 19:45:54 +02:00
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/Api_NowPlaying'
2019-01-03 11:59:44 +01:00
'/nowplaying/{station_id}' :
get :
2018-09-18 16:09:48 +02:00
tags :
2019-01-03 11:59:44 +01:00
- 'Now Playing'
description : 'Returns a full summary of the specified station' 's current state.'
operationId : 'App\Controller\Api\NowplayingController::__invoke'
2018-09-18 16:09:48 +02:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
responses :
'200' :
description : Success
2019-07-10 19:45:54 +02:00
content :
application/json :
schema :
$ref : '#/components/schemas/Api_NowPlaying'
2018-09-18 16:09:48 +02:00
'404' :
description : 'Station not found'
2019-04-24 15:58:04 +02:00
'/station/{station_id}/art/{media_id}' :
get :
tags :
- 'Stations : Media'
description : 'Returns the album art for a song, or a generic image.'
2019-10-11 18:58:31 +02:00
operationId : 'App\Controller\Api\Stations\Art\GetArtAction::__invoke'
2019-04-24 15:58:04 +02:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : media_id
in : path
description : 'The station media unique ID'
required : true
schema :
type : string
responses :
'200' :
description : 'The requested album artwork'
'404' :
description : 'Image not found; generic filler image.'
'/station/{station_id}/files' :
get :
tags :
- 'Stations : Media'
description : 'List all current uploaded files.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
responses :
'200' :
description : Success
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/StationMedia'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
post :
tags :
- 'Stations : Media'
description : 'Upload a new file.'
operationId : 'App\Controller\Api\Stations\FilesController::createAction'
parameters :
-
$ref : '#/components/parameters/station_id_required'
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/Api_UploadFile'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/StationMedia'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
'/station/{station_id}/file/{id}' :
get :
tags :
- 'Stations : Media'
description : 'Retrieve details for a single file.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
description : 'Media ID'
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/StationMedia'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
put :
tags :
- 'Stations : Media'
description : 'Update details of a single file.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
description : 'Media ID'
required : true
schema :
type : integer
format : int64
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/StationMedia'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
delete :
tags :
- 'Stations : Media'
description : 'Delete a single file.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
description : 'Media ID'
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
2019-01-29 23:32:32 +01:00
'/station/{station_id}/history' :
get :
tags :
- 'Stations : History'
description : 'Return song playback history items for a given station.'
operationId : 'App\Controller\Api\Stations\HistoryController::__invoke'
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : start
in : query
description : 'The start date for records, in YYYY-MM-DD format.'
required : false
schema :
type : string
-
name : end
in : query
description : 'The end date for records, in YYYY-MM-DD format.'
required : false
schema :
type : string
responses :
'200' :
description : Success
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/Api_DetailedSongHistory'
'404' :
description : 'Station not found'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
2018-09-18 16:09:48 +02:00
/stations :
get :
tags :
- 'Stations : General'
description : 'Returns a list of stations.'
operationId : 'App\Controller\Api\Stations\IndexController::listAction'
2018-12-22 18:27:41 +01:00
parameters : [ ]
2018-09-18 16:09:48 +02:00
responses :
'200' :
description : Success
2019-01-03 11:59:44 +01:00
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/Api_Station'
2018-09-18 16:09:48 +02:00
'/station/{station_id}' :
get :
tags :
- 'Stations : General'
description : 'Return information about a single station.'
operationId : 'App\Controller\Api\Stations\IndexController::indexAction'
2019-01-03 11:59:44 +01:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Station'
'404' :
description : 'Station not found'
'/station/{station_id}/listeners' :
get :
tags :
- 'Stations : Listeners'
description : 'Return detailed information about current listeners.'
operationId : 'App\Controller\Api\Stations\ListenersController::indexAction'
2018-09-18 16:09:48 +02:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
responses :
'200' :
description : Success
2019-01-29 23:32:32 +01:00
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/Api_Listener'
2018-09-18 16:09:48 +02:00
'404' :
description : 'Station not found'
2019-01-03 11:59:44 +01:00
'403' :
description : 'Access denied'
security :
-
2019-01-03 12:35:38 +01:00
api_key : [ ]
2019-04-10 06:46:51 +02:00
'/station/{station_id}/mounts' :
get :
tags :
2019-04-15 00:12:49 +02:00
- 'Stations : Mount Points'
2019-04-10 06:46:51 +02:00
description : 'List all current mount points.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
responses :
'200' :
description : Success
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/StationMount'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
post :
tags :
2019-04-15 00:12:49 +02:00
- 'Stations : Mount Points'
2019-04-10 06:46:51 +02:00
description : 'Create a new mount point.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/StationMount'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/StationMount'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
'/station/{station_id}/mount/{id}' :
get :
tags :
2019-04-15 00:12:49 +02:00
- 'Stations : Mount Points'
2019-04-10 06:46:51 +02:00
description : 'Retrieve details for a single mount point.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
description : 'Streamer ID'
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/StationMount'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
put :
tags :
2019-04-15 00:12:49 +02:00
- 'Stations : Mount Points'
2019-04-10 06:46:51 +02:00
description : 'Update details of a single mount point.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
description : 'Streamer ID'
required : true
schema :
type : integer
format : int64
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/StationMount'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
delete :
tags :
2019-04-15 00:12:49 +02:00
- 'Stations : Mount Points'
2019-04-10 06:46:51 +02:00
description : 'Delete a single mount point.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
description : 'StationMount ID'
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
2019-04-13 05:27:58 +02:00
'/station/{station_id}/playlists' :
get :
tags :
- 'Stations : Playlists'
description : 'List all current playlists.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
responses :
'200' :
description : Success
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/StationPlaylist'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
post :
tags :
- 'Stations : Playlists'
description : 'Create a new playlist.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/StationPlaylist'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/StationPlaylist'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
'/station/{station_id}/playlist/{id}' :
get :
tags :
- 'Stations : Playlists'
description : 'Retrieve details for a single playlist.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
description : 'Playlist ID'
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/StationPlaylist'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
put :
tags :
- 'Stations : Playlists'
description : 'Update details of a single playlist.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
description : 'Playlist ID'
required : true
schema :
type : integer
format : int64
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/StationPlaylist'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
delete :
tags :
- 'Stations : Playlists'
description : 'Delete a single playlist relay.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
description : 'Playlist ID'
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
2018-12-24 09:47:45 +01:00
'/station/{station_id}/queue' :
get :
tags :
2019-01-03 11:59:44 +01:00
- 'Stations : Queue'
2018-12-24 09:47:45 +01:00
description : 'Return information about the upcoming song playback queue.'
operationId : 'App\Controller\Api\Stations\QueueController::listAction'
parameters :
-
$ref : '#/components/parameters/station_id_required'
responses :
'200' :
description : Success
2019-01-03 11:59:44 +01:00
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/Api_QueuedSong'
2018-12-24 09:47:45 +01:00
'404' :
description : 'Station not found'
'403' :
description : 'Access denied'
security :
-
2019-01-03 12:35:38 +01:00
api_key : [ ]
2019-01-03 11:59:44 +01:00
'/station/{station_id}/queue/{id}' :
get :
tags :
- 'Stations : Queue'
description : 'Retrieve details of a single queued item.'
parameters :
-
name : id
in : path
description : 'Queue Item ID'
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_QueuedSong'
'404' :
description : 'Station or Queue ID not found'
'403' :
description : 'Access denied'
security :
-
2019-01-03 12:35:38 +01:00
api_key : [ ]
2019-01-03 11:59:44 +01:00
delete :
tags :
- 'Stations : Queue'
2019-03-01 03:30:25 +01:00
description : 'Delete a single queued item.'
2019-01-03 11:59:44 +01:00
parameters :
-
name : id
in : path
description : 'Queue Item ID'
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'404' :
description : 'Station or Queue ID not found'
'403' :
description : 'Access denied'
security :
-
2019-01-03 12:35:38 +01:00
api_key : [ ]
2019-04-10 06:46:51 +02:00
'/station/{station_id}/remotes' :
get :
tags :
- 'Stations : Remote Relays'
description : 'List all current remote relays.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
responses :
'200' :
description : Success
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/StationRemote'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
post :
tags :
- 'Stations : Remote Relays'
description : 'Create a new remote relay.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/StationRemote'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/StationRemote'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
'/station/{station_id}/remote/{id}' :
get :
tags :
- 'Stations : Remote Relays'
description : 'Retrieve details for a single remote relay.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
2019-04-13 05:27:58 +02:00
description : 'Remote Relay ID'
2019-04-10 06:46:51 +02:00
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/StationRemote'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
put :
tags :
- 'Stations : Remote Relays'
description : 'Update details of a single remote relay.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
2019-04-13 05:27:58 +02:00
description : 'Remote Relay ID'
2019-04-10 06:46:51 +02:00
required : true
schema :
type : integer
format : int64
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/StationRemote'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
delete :
tags :
- 'Stations : Remote Relays'
description : 'Delete a single remote relay.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
2019-04-13 05:27:58 +02:00
description : 'Remote Relay ID'
2019-04-10 06:46:51 +02:00
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
2019-01-03 11:59:44 +01:00
'/station/{station_id}/requests' :
get :
tags :
- 'Stations : Song Requests'
description : 'Return a list of requestable songs.'
operationId : 'App\Controller\Api\Stations\RequestsController::listAction'
parameters :
-
$ref : '#/components/parameters/station_id_required'
responses :
'200' :
description : Success
'404' :
description : 'Station not found'
'403' :
description : 'Station does not support requests'
'/station/{station_id}/request/{request_id}' :
post :
tags :
- 'Stations : Song Requests'
description : 'Submit a song request.'
operationId : 'App\Controller\Api\Stations\RequestsController::submitAction'
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : request_id
in : path
description : 'The requestable song ID'
required : true
schema :
type : int64
responses :
'200' :
description : Success
'404' :
description : 'Station not found'
'403' :
description : 'Station does not support requests'
2019-01-29 23:32:32 +01:00
'/station/{station_id}/status' :
get :
tags :
- 'Stations : Service Control'
description : 'Retrieve the current status of all serivces associated with the radio broadcast.'
operationId : 'App\Controller\Api\Stations\ServicesController::statusAction'
parameters :
-
$ref : '#/components/parameters/station_id_required'
responses :
'200' :
description : Success
'403' :
description : 'Access Forbidden'
security :
-
api_key : [ ]
2018-09-18 16:09:48 +02:00
'/station/{station_id}/restart' :
post :
tags :
- 'Stations : Service Control'
description : 'Restart all services associated with the radio broadcast.'
operationId : 'App\Controller\Api\Stations\ServicesController::restartAction'
parameters :
-
$ref : '#/components/parameters/station_id_required'
responses :
'200' :
description : Success
'403' :
description : 'Access Forbidden'
security :
-
2019-01-03 12:35:38 +01:00
api_key : [ ]
2018-09-18 16:09:48 +02:00
'/station/{station_id}/frontend/{action}' :
post :
tags :
- 'Stations : Service Control'
description : 'Perform service control actions on the radio frontend (Icecast, SHOUTcast, etc.)'
operationId : 'App\Controller\Api\Stations\ServicesController::frontendAction'
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : action
in : path
description : 'The action to perform (start, stop, restart)'
required : false
schema :
type : string
content : restart
responses :
'200' :
description : Success
'403' :
description : 'Access Forbidden'
security :
-
2019-01-03 12:35:38 +01:00
api_key : [ ]
2018-09-18 16:09:48 +02:00
'/station/{station_id}/backend/{action}' :
post :
tags :
- 'Stations : Service Control'
description : 'Perform service control actions on the radio backend (Liquidsoap)'
operationId : 'App\Controller\Api\Stations\ServicesController::backendAction'
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : action
in : path
2019-04-07 02:06:39 +02:00
description: 'The action to perform (for all: start, stop, restart; for Liquidsoap only : skip, disconnect)'
2018-09-18 16:09:48 +02:00
required : false
schema :
type : string
content : restart
responses :
'200' :
description : Success
'403' :
description : 'Access Forbidden'
security :
-
2019-01-03 12:35:38 +01:00
api_key : [ ]
2019-04-07 10:40:55 +02:00
'/station/{station_id}/streamers' :
get :
tags :
- 'Stations : Streamers/DJs'
description : 'List all current Streamer/DJ accounts for the specified station.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
responses :
'200' :
description : Success
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/StationStreamer'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
post :
tags :
- 'Stations : Streamers/DJs'
description : 'Create a new Streamer/DJ account.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/StationStreamer'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/StationStreamer'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
'/station/{station_id}/streamer/{id}' :
get :
tags :
- 'Stations : Streamers/DJs'
description : 'Retrieve details for a single Streamer/DJ account.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
description : 'Streamer ID'
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/StationStreamer'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
put :
tags :
- 'Stations : Streamers/DJs'
description : 'Update details of a single Streamer/DJ account.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
description : 'Streamer ID'
required : true
schema :
type : integer
format : int64
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/StationStreamer'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
delete :
tags :
- 'Stations : Streamers/DJs'
description : 'Delete a single Streamer/DJ account.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
description : 'StationStreamer ID'
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
2019-04-15 00:12:49 +02:00
'/station/{station_id}/webhooks' :
get :
tags :
- 'Stations : Web Hooks'
description : 'List all current web hooks.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
responses :
'200' :
description : Success
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/StationWebhook'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
post :
tags :
- 'Stations : Web Hooks'
description : 'Create a new web hook.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/StationWebhook'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/StationWebhook'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
'/station/{station_id}/webhook/{id}' :
get :
tags :
- 'Stations : Web Hooks'
description : 'Retrieve details for a single web hook.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
description : 'Web Hook ID'
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/StationWebhook'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
put :
tags :
- 'Stations : Web Hooks'
description : 'Update details of a single web hook.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
description : 'Web Hook ID'
required : true
schema :
type : integer
format : int64
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/StationWebhook'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
delete :
tags :
- 'Stations : Web Hooks'
description : 'Delete a single web hook relay.'
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
description : 'Web Hook ID'
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
2018-09-18 16:09:48 +02:00
components :
schemas :
2019-07-10 19:45:54 +02:00
Api_Admin_Relay :
properties :
id :
description : 'Station ID'
type : integer
example : 1
name :
description : 'Station name'
type : string
example : 'AzuraTest Radio'
description :
description : 'Station description'
type : string
example : 'An AzuraCast station!'
url :
description : 'Station homepage URL'
type : string
example : 'https://www.azuracast.com/'
genre :
description : 'The genre of the station'
type : string
example : Variety
shortcode :
description : 'Station "short code", used for URL and folder paths'
type : string
example : azuratest_radio
type :
description : 'Which broadcasting software (frontend) the station uses'
type : string
example : shoutcast2
port :
description : 'The port used by this station to serve its broadcasts.'
type : integer
example : 8000
2019-07-28 05:07:11 +02:00
relay_pw :
2019-07-10 19:45:54 +02:00
description : 'The relay password for the frontend (if applicable).'
type : string
example : p4ssw0rd
2019-07-28 05:07:11 +02:00
admin_pw :
description : 'The administrator password for the frontend (if applicable).'
type : string
example : p4ssw0rd
2019-07-10 19:45:54 +02:00
mounts :
type : array
items :
$ref : '#/components/schemas/Api_StationMount'
type : object
2019-01-06 09:57:09 +01:00
Api_Admin_Settings :
properties :
base_url :
description : 'Site Base URL'
type : string
instance_name :
description : 'AzuraCast Instance Name'
type : string
timezone :
description : 'System Default Time Zone'
type : string
prefer_browser_url :
description : 'Prefer Browser URL (If Available)'
type : integer
use_radio_proxy :
description : 'Use Web Proxy for Radio'
type : integer
history_keep_days :
description : 'Days of Playback History to Keep'
type : integer
2019-01-29 23:32:32 +01:00
always_use_ssl :
description : 'Always Use HTTPS'
type : integer
api_access_control :
description : 'API "Access-Control-Allow-Origin" header'
type : string
2019-01-06 09:57:09 +01:00
analytics :
description : 'Listener Analytics Collection'
type : string
central_updates_channel :
description : 'Check for Updates and Announcements'
type : integer
public_theme :
description : 'Base Theme for Public Pages'
type : string
hide_album_art :
description : 'Hide Album Art on Public Pages'
type : integer
homepage_redirect_url :
description : 'Homepage Redirect URL'
type : string
default_album_art_url :
description : 'Default Album Art URL'
type : string
hide_product_name :
description : 'Hide AzuraCast Branding on Public Pages'
type : integer
custom_css_public :
description : 'Custom CSS for Public Pages'
type : string
custom_js_public :
description : 'Custom JS for Public Pages'
type : string
custom_css_internal :
description : 'Custom CSS for Internal Pages'
type : string
type : object
2018-12-22 18:27:41 +01:00
Api_DetailedSongHistory :
2018-09-18 16:09:48 +02:00
allOf :
-
2018-12-22 18:27:41 +01:00
$ref : '#/components/schemas/Api_SongHistory'
2018-09-18 16:09:48 +02:00
-
properties :
listeners_start :
description : 'Number of listeners when the song playback started.'
type : integer
example : 94
listeners_end :
description : 'Number of listeners when song playback ended.'
type : integer
example : 105
delta_total :
description : 'The sum total change of listeners between the song' 's start and ending.'
type : integer
example : 11
type : object
2018-12-22 18:27:41 +01:00
Api_Error :
2018-09-18 16:09:48 +02:00
properties :
code :
description : 'The numeric code of the error.'
type : integer
example : 500
message :
description : 'The text description of the error.'
type : string
example : 'Error description.'
2019-03-25 01:12:04 +01:00
formatted_message :
description : 'The HTML-formatted text description of the error.'
type : string
example : '<b>Error description.</b><br>Detailed error text.'
extra_data :
description : 'Stack traces and other supplemental data.'
2018-09-18 16:09:48 +02:00
type : array
items : { }
success :
description : 'Used for API calls that expect an \Entity\Api\Status type response.'
type : boolean
example : false
type : object
2018-12-22 18:27:41 +01:00
Api_Listener :
2018-09-18 16:09:48 +02:00
properties :
ip :
description : 'The listener' 's IP address'
type : string
example : 127.0 .0 .1
user_agent :
description : 'The listener' 's HTTP User-Agent'
type : string
example : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36'
is_mobile :
description : 'Whether the user-agent is likely a mobile browser.'
type : boolean
example : true
connected_on :
description : 'UNIX timestamp that the user first connected.'
type : integer
2019-10-12 11:20:13 +02:00
example : 1570848556
2018-09-18 16:09:48 +02:00
connected_time :
description : 'Number of seconds that the user has been connected.'
type : integer
example : 30
location :
description : 'Location metadata, if available'
type : array
items : { }
type : object
2018-12-22 18:27:41 +01:00
Api_NewRecord :
allOf :
-
$ref : '#/components/schemas/Api_Status'
-
properties :
links :
type : array
items :
type : string
example : 'http://localhost/api/record/1'
type : object
Api_NowPlaying :
2018-09-18 16:09:48 +02:00
properties :
station :
2018-12-22 18:27:41 +01:00
$ref : '#/components/schemas/Api_Station'
2018-09-18 16:09:48 +02:00
listeners :
2018-12-22 18:27:41 +01:00
$ref : '#/components/schemas/Api_NowPlayingListeners'
2018-09-18 16:09:48 +02:00
live :
2018-12-22 18:27:41 +01:00
$ref : '#/components/schemas/Api_NowPlayingLive'
2018-09-18 16:09:48 +02:00
now_playing :
2018-12-22 18:27:41 +01:00
$ref : '#/components/schemas/Api_NowPlayingCurrentSong'
2018-09-18 16:09:48 +02:00
playing_next :
2018-12-22 18:27:41 +01:00
$ref : '#/components/schemas/Api_SongHistory'
2018-09-18 16:09:48 +02:00
song_history :
type : array
items :
2018-12-22 18:27:41 +01:00
$ref : '#/components/schemas/Api_SongHistory'
2018-09-18 16:09:48 +02:00
cache :
description : 'Debugging information about where the now playing data comes from.'
type : string
enum :
- hit
- database
- station
type : object
2018-12-22 18:27:41 +01:00
Api_NowPlayingCurrentSong :
2018-09-18 16:09:48 +02:00
allOf :
-
2018-12-22 18:27:41 +01:00
$ref : '#/components/schemas/Api_SongHistory'
2018-09-18 16:09:48 +02:00
-
properties :
elapsed :
description : 'Elapsed time of the song' 's playback since it started.'
type : integer
example : 25
remaining :
description : 'Remaining time in the song, in seconds.'
type : integer
example : 155
type : object
2018-12-22 18:27:41 +01:00
Api_NowPlayingListeners :
2018-09-18 16:09:48 +02:00
properties :
current :
description : 'Current listeners, either unique (if supplied) or total (non-unique)'
type : integer
example : 15
unique :
description : 'Total unique current listeners'
type : integer
example : 15
total :
description : 'Total non-unique current listeners'
type : integer
example : 20
type : object
2018-12-22 18:27:41 +01:00
Api_NowPlayingLive :
2018-09-18 16:09:48 +02:00
properties :
is_live :
description : 'Whether the stream is known to currently have a live DJ.'
type : boolean
example : false
streamer_name :
description : 'The current active streamer/DJ, if one is available.'
type : string
example : 'DJ Jazzy Jeff'
type : object
2018-12-22 18:27:41 +01:00
Api_QueuedSong :
allOf :
-
$ref : '#/components/schemas/Api_SongHistory'
-
properties :
cued_at :
description : 'UNIX timestamp when the item was cued for playback.'
type : integer
2019-10-12 11:20:13 +02:00
example : 1570848556
2018-12-22 18:27:41 +01:00
autodj_custom_uri :
description : 'Custom AutoDJ playback URI, if it exists.'
type : string
example : ''
links :
type : array
items :
type : string
example : 'http://localhost/api/stations/1/queue/1'
type : object
Api_Song :
2018-09-18 16:09:48 +02:00
properties :
id :
description : 'The song' 's 32-character unique identifier hash'
type : string
example : 9f33bbc912c19603e51be8e0987d076b
text :
description : 'The song title, usually "Artist - Title"'
type : string
example : 'Chet Porter - Aluko River'
artist :
description : 'The song artist.'
type : string
example : 'Chet Porter'
title :
description : 'The song title.'
type : string
example : 'Aluko River'
album :
description : 'The song album.'
type : string
example : 'Moving Castle'
lyrics :
description : 'Lyrics to the song.'
type : string
example : ''
art :
description : 'URL to the album artwork (if available).'
type : string
example : 'https://picsum.photos/1200/1200'
custom_fields :
type : array
items :
type : string
example : custom_field_value
type : object
2018-12-22 18:27:41 +01:00
Api_SongHistory :
2018-09-18 16:09:48 +02:00
properties :
sh_id :
description : 'Song history unique identifier'
type : integer
played_at :
description : 'UNIX timestamp when playback started.'
type : integer
2019-10-12 11:20:13 +02:00
example : 1570848556
2018-09-18 16:09:48 +02:00
duration :
description : 'Duration of the song in seconds'
type : integer
example : 180
playlist :
description : 'Indicates the playlist that the song was played from, if available, or empty string if not.'
type : string
example : 'Top 100'
is_request :
description : 'Indicates whether the song is a listener request.'
type : boolean
song :
2018-12-22 18:27:41 +01:00
$ref : '#/components/schemas/Api_Song'
2018-09-18 16:09:48 +02:00
type : object
2018-12-22 18:27:41 +01:00
Api_Station :
2018-09-18 16:09:48 +02:00
properties :
id :
description : 'Station ID'
type : integer
example : 1
name :
description : 'Station name'
type : string
example : 'AzuraTest Radio'
shortcode :
description : 'Station "short code", used for URL and folder paths'
type : string
example : azuratest_radio
description :
description : 'Station description'
type : string
example : 'An AzuraCast station!'
frontend :
description : 'Which broadcasting software (frontend) the station uses'
type : string
example : shoutcast2
backend :
description : 'Which AutoDJ software (backend) the station uses'
type : string
example : liquidsoap
listen_url :
description : 'The full URL to listen to the default mount of the station'
type : string
example : 'http://localhost:8000/radio.mp3'
is_public :
description : 'If the station is public (i.e. should be shown in listings of all stations)'
type : boolean
example : true
mounts :
type : array
items :
2018-12-22 18:27:41 +01:00
$ref : '#/components/schemas/Api_StationMount'
2018-09-18 16:09:48 +02:00
remotes :
type : array
items :
2018-12-22 18:27:41 +01:00
$ref : '#/components/schemas/Api_StationRemote'
2018-09-18 16:09:48 +02:00
type : object
2018-12-22 18:27:41 +01:00
Api_StationMount :
2019-03-25 01:12:04 +01:00
allOf :
-
$ref : '#/components/schemas/Api_StationRemote'
-
properties :
2019-07-10 19:45:54 +02:00
path :
description : 'The relative path that corresponds to this mount point'
type : string
example : /radio.mp3
2019-03-25 01:12:04 +01:00
is_default :
description : 'If the mount is the default mount for the parent station'
type : boolean
example : true
type : object
Api_StationRemote :
2018-09-18 16:09:48 +02:00
properties :
2019-08-16 20:18:14 +02:00
id :
description : 'Mount/Remote ID number.'
type : integer
example : 1
2018-09-18 16:09:48 +02:00
name :
description : 'Mount point name/URL'
type : string
example : /radio.mp3
url :
description : 'Full listening URL specific to this mount'
type : string
example : 'http://localhost:8000/radio.mp3'
bitrate :
description : 'Bitrate (kbps) of the broadcasted audio (if known)'
type : integer
example : 128
format :
description : 'Audio encoding format of broadcasted audio (if known)'
type : string
example : mp3
2019-08-16 20:18:14 +02:00
listeners :
$ref : '#/components/schemas/Api_NowPlayingListeners'
2018-09-18 16:09:48 +02:00
type : object
2018-12-22 18:27:41 +01:00
Api_StationRequest :
2018-09-18 16:09:48 +02:00
properties :
request_id :
description : 'Requestable ID unique identifier'
2018-11-26 21:54:49 +01:00
type : string
2018-09-18 16:09:48 +02:00
example : 1
request_url :
description : 'URL to directly submit request'
2018-11-26 21:54:49 +01:00
type : string
2018-09-18 16:09:48 +02:00
example : /api/station/1/request/1
song :
2018-12-22 18:27:41 +01:00
$ref : '#/components/schemas/Api_Song'
2018-09-18 16:09:48 +02:00
type : object
2019-01-29 23:32:32 +01:00
Api_StationServiceStatus :
properties :
backend_running :
type : boolean
example : true
frontend_running :
type : boolean
example : true
type : object
2018-12-22 18:27:41 +01:00
Api_Status :
2018-09-18 16:09:48 +02:00
properties :
success :
type : boolean
example : true
message :
type : string
example : 'Changes saved successfully.'
2019-03-25 01:12:04 +01:00
formatted_message :
type : string
example : '<b>Changes saved successfully.</b>'
2018-09-18 16:09:48 +02:00
type : object
2018-12-22 18:27:41 +01:00
Api_SystemStatus :
2018-09-18 16:09:48 +02:00
properties :
online :
description : 'Whether the service is online or not (should always be true)'
type : boolean
example : true
timestamp :
description : 'The current UNIX timestamp'
type : integer
2019-10-12 11:20:13 +02:00
example : 1570848556
2018-09-18 16:09:48 +02:00
type : object
2018-12-22 18:27:41 +01:00
Api_Time :
2018-09-18 16:09:48 +02:00
properties :
timestamp :
description : 'The current UNIX timestamp'
type : integer
example : 1497652397
gmt_datetime :
type : string
example : '2017-06-16 10:33:17'
gmt_date :
type : string
example : 'June 16, 2017'
gmt_time :
type : string
example : '10:33pm'
gmt_timezone :
type : string
example : GMT
gmt_timezone_abbr :
type : string
example : GMT
local_datetime :
type : string
example : '2017-06-16 10:33:17'
local_date :
type : string
example : 'June 16, 2017'
local_time :
type : string
example : '10:33pm'
local_timezone :
type : string
example : UTC
local_timezone_abbr :
type : string
example : UTC
type : object
2019-04-24 15:58:04 +02:00
Api_UploadFile :
properties :
path :
description : 'The destination path of the uploaded file.'
type : string
example : relative/path/to/file.mp3
file :
description : 'The base64-encoded contents of the file to upload.'
type : string
example : ''
type : object
2019-01-29 23:32:32 +01:00
CustomField :
properties :
id :
type : integer
name :
type : string
short_name :
description : 'The programmatic name for the field. Can be auto-generated from the full name.'
type : string
2019-10-11 18:58:31 +02:00
auto_assign :
description : 'An ID3v2 field to automatically assign to this value, if it exists in the media file.'
type : string
2019-01-29 23:32:32 +01:00
type : object
2019-07-28 05:07:11 +02:00
Relay :
properties :
id :
type : integer
example : 1
base_url :
type : string
example : 'http://custom-url.example.com'
name :
type : string
example : Relay
is_visible_on_public_pages :
type : boolean
example : true
created_at :
type : integer
2019-10-12 11:20:13 +02:00
example : 1570848556
2019-07-28 05:07:11 +02:00
updated_at :
type : integer
2019-10-12 11:20:13 +02:00
example : 1570848556
2019-07-28 05:07:11 +02:00
type : object
2019-01-05 13:02:49 +01:00
Role :
properties :
id :
type : integer
example : 1
name :
type : string
example : 'Super Administrator'
permissions :
items : { }
type : object
2018-12-22 18:27:41 +01:00
Station :
2019-04-08 07:09:53 +02:00
properties :
id :
type : integer
example : 1
name :
description : 'The full display name of the station.'
type : string
example : 'AzuraTest Radio'
short_name :
description : 'The URL-friendly name for the station, typically auto-generated from the full station name.'
type : string
example : azuratest_radio
is_enabled :
description : 'If set to "false", prevents the station from broadcasting but leaves it in the database.'
type : boolean
example : true
frontend_type :
description : 'The frontend adapter (icecast,shoutcast,remote,etc)'
type : string
example : icecast
frontend_config :
description : 'An array containing station-specific frontend configuration'
type : array
items : { }
backend_type :
description : 'The backend adapter (liquidsoap,etc)'
type : string
example : liquidsoap
backend_config :
description : 'An array containing station-specific backend configuration'
type : array
items : { }
description :
type : string
example : 'A sample radio station.'
url :
type : string
example : 'https://demo.azuracast.com/'
genre :
type : string
example : Various
radio_base_dir :
type : string
example : /var/azuracast/stations/azuratest_radio
radio_media_dir :
type : string
example : /var/azuracast/stations/azuratest_radio/media
automation_settings :
type : array
items : { }
enable_requests :
description : 'Whether listeners can request songs to play on this station.'
type : boolean
example : true
request_delay :
type : integer
example : 5
request_threshold :
type : integer
example : 15
disconnect_deactivate_streamer :
type : integer
example : 0
enable_streamers :
description : 'Whether streamers are allowed to broadcast to this station at all.'
type : boolean
example : false
is_streamer_live :
description : 'Whether a streamer is currently active on the station.'
type : boolean
example : false
enable_public_page :
description : 'Whether this station is visible as a public page and in a now-playing API response.'
type : boolean
example : true
api_history_items :
description : 'The number of "last played" history items to show for a given station in the Now Playing API responses.'
type : integer
example : 5
storage_quota :
type : string
2019-04-25 06:43:51 +02:00
example : '50 GB'
storage_quota_bytes :
type : string
example : '50000000000'
2019-04-08 07:09:53 +02:00
storage_used :
type : string
2019-04-25 06:43:51 +02:00
example : '1 GB'
storage_used_bytes :
type : string
example : '1000000000'
2019-05-15 00:18:18 +02:00
timezone :
description : 'The time zone that station operations should take place in.'
type : string
example : UTC
2018-12-22 18:27:41 +01:00
type : object
2019-04-24 15:58:04 +02:00
StationMedia :
properties :
id :
type : integer
example : 1
song_id :
type : string
example : 098F6BCD4621D373CADE4E832627B4F6
title :
description : 'The name of the media file' 's title.'
type : string
example : 'Test Song'
artist :
description : 'The name of the media file' 's artist.'
type : string
example : 'Test Artist'
album :
description : 'The name of the media file' 's album.'
type : string
example : 'Test Album'
lyrics :
description : 'Full lyrics of the track, if available.'
type : string
example : '...Never gonna give you up...'
isrc :
description : 'The track ISRC (International Standard Recording Code), used for licensing purposes.'
type : string
example : GBARL0600786
length :
description : 'The song duration in seconds.'
type : integer
example : 240
length_text :
description : 'The formatted song duration (in mm:ss format)'
type : string
example : '4:00'
path :
description : 'The relative path of the media file.'
type : string
example : test.mp3
mtime :
description : 'The UNIX timestamp when the database was last modified.'
type : integer
2019-10-12 11:20:13 +02:00
example : 1570848556
2019-04-24 15:58:04 +02:00
fade_overlap :
description : 'The length of time (in seconds) before the next song starts in the fade;'
type : number
format : float
example : 2
fade_in :
description : 'The length of time (in seconds) to fade in the next track;'
type : number
format : float
example : 3
fade_out :
description : 'The length of time (in seconds) to fade out the previous track;'
type : number
format : float
example : 3
cue_in :
description : 'The length of time (in seconds) from the start of the track to start playing;'
type : number
format : float
example : 30
cue_out :
description : 'The length of time (in seconds) from the CUE-IN of the track to stop playing;'
type : number
format : float
example : 30
2019-04-25 02:16:12 +02:00
playlists :
2019-04-24 15:58:04 +02:00
items : { }
type : object
2019-04-10 06:46:51 +02:00
StationMount :
properties :
id :
type : integer
example : 1
name :
type : string
example : /radio.mp3
display_name :
type : string
example : '128kbps MP3'
is_visible_on_public_pages :
type : boolean
example : true
is_default :
type : boolean
example : false
is_public :
type : boolean
example : false
fallback_mount :
type : string
example : /error.mp3
relay_url :
type : string
example : 'http://radio.example.com:8000/radio.mp3'
authhash :
type : string
example : ''
enable_autodj :
type : boolean
example : true
autodj_format :
type : string
example : mp3
autodj_bitrate :
type : integer
example : 128
custom_listen_url :
type : string
example : 'https://custom-listen-url.example.com/stream.mp3'
frontend_config :
type : string
items : { }
2019-08-16 20:18:14 +02:00
listeners_unique :
description : 'The most recent number of unique listeners.'
type : integer
example : 10
listeners_total :
description : 'The most recent number of total (non-unique) listeners.'
type : integer
example : 12
2019-04-10 06:46:51 +02:00
type : object
2019-04-13 05:27:58 +02:00
StationPlaylist :
properties :
id :
type : integer
example : 1
name :
type : string
example : 'Test Playlist'
type :
type : string
example : default
source :
type : string
example : songs
order :
type : string
example : shuffle
remote_url :
type : string
example : 'http://remote-url.example.com/stream.mp3'
remote_type :
type : string
example : stream
remote_buffer :
description : 'The total time (in seconds) that Liquidsoap should buffer remote URL streams.'
type : integer
example : 0
is_enabled :
type : boolean
example : true
is_jingle :
description : 'If yes, do not send jingle metadata to AutoDJ or trigger web hooks.'
type : boolean
example : false
play_per_songs :
type : integer
example : 5
play_per_minutes :
type : integer
example : 120
play_per_hour_minute :
type : integer
example : 15
schedule_start_time :
type : integer
example : 900
schedule_end_time :
type : integer
example : 2200
schedule_days :
type : string
example : '0,1,2,3'
weight :
type : integer
example : 3
include_in_requests :
type : boolean
example : true
include_in_automation :
type : boolean
example : false
2019-05-15 00:18:18 +02:00
backend_options :
type : string
example : 'interrupt,loop_once,single_track,merge'
2019-04-13 05:27:58 +02:00
type : object
2019-04-10 06:46:51 +02:00
StationRemote :
properties :
id :
type : integer
example : 1
display_name :
type : string
example : '128kbps MP3'
is_visible_on_public_pages :
type : boolean
example : true
type :
type : string
example : icecast
enable_autodj :
type : boolean
example : false
autodj_format :
type : string
example : mp3
autodj_bitrate :
type : integer
example : 128
custom_listen_url :
type : string
example : 'https://custom-listen-url.example.com/stream.mp3'
url :
type : string
example : 'http://custom-url.example.com'
mount :
type : string
example : /stream.mp3
source_port :
type : integer
example : 8000
source_mount :
type : string
example : /
source_username :
type : string
example : source
source_password :
type : string
example : password
is_public :
type : boolean
example : false
2019-08-16 20:18:14 +02:00
listeners_unique :
description : 'The most recent number of unique listeners.'
type : integer
example : 10
listeners_total :
description : 'The most recent number of total (non-unique) listeners.'
type : integer
example : 12
2019-04-10 06:46:51 +02:00
type : object
2019-04-07 10:40:55 +02:00
StationStreamer :
properties :
id :
type : integer
example : 1
streamer_username :
type : string
example : dj_test
streamer_password :
type : string
example : ''
display_name :
type : string
example : 'Test DJ'
comments :
type : string
example : 'This is a test DJ account.'
is_active :
type : boolean
example : true
reactivate_at :
type : integer
2019-10-12 11:20:13 +02:00
example : 1570848556
2019-04-15 00:12:49 +02:00
type : object
StationWebhook :
properties :
id :
type : integer
example : 1
name :
description : 'The nickname of the webhook connector.'
type : string
example : 'Twitter Post'
type :
description : 'The type of webhook connector to use.'
type : string
example : twitter
is_enabled :
type : boolean
example : true
triggers :
description : 'List of events that should trigger the webhook notification.'
type : array
items : { }
config :
description : 'Detailed webhook configuration (if applicable)'
type : array
items : { }
metadata :
description : 'Internal details used by the webhook to preserve state.'
type : array
items : { }
2019-04-07 10:40:55 +02:00
type : object
2019-04-24 15:58:04 +02:00
'' :
properties :
unique_id :
description : 'A unique identifier associated with this record.'
type : string
example : 69b536afc7ebbf16457b8645
type : object
2018-12-22 18:27:41 +01:00
User :
properties :
id :
type : integer
example : 1
email :
type : string
example : demo@azuracast.com
auth_password :
type : string
example : ''
name :
type : string
example : 'Demo Account'
locale :
type : string
example : en_US
theme :
type : string
example : dark
2019-03-25 01:12:04 +01:00
two_factor_secret :
type : string
example : A1B2C3D4
2018-12-22 18:27:41 +01:00
created_at :
type : integer
2019-10-12 11:20:13 +02:00
example : 1570848556
2018-12-22 18:27:41 +01:00
updated_at :
type : integer
2019-10-12 11:20:13 +02:00
example : 1570848556
2018-12-22 18:27:41 +01:00
roles :
items : { }
type : object
2018-09-18 16:09:48 +02:00
responses :
todo :
description : 'This API call has no documented response (yet)'
parameters :
station_id_required :
name : station_id
in : path
description : 'The station ID'
required : true
schema :
type : int64
example : 1
securitySchemes :
api_key :
type : apiKey
name : X-API-Key
in : header
tags :
-
name : 'Now Playing'
description : 'Endpoints that provide full summaries of the current state of stations.'
-
name: 'Stations : General'
-
name: 'Stations : Song Requests'
2019-04-15 00:12:49 +02:00
-
name: 'Stations : Service Control'
2019-01-29 23:32:32 +01:00
-
name: 'Stations : History'
2018-09-18 16:09:48 +02:00
-
name: 'Stations : Listeners'
2019-01-03 11:59:44 +01:00
-
name: 'Stations : Media'
2019-04-15 00:12:49 +02:00
-
name: 'Stations : Mount Points'
-
name: 'Stations : Playlists'
2019-01-03 11:59:44 +01:00
-
name: 'Stations : Queue'
2019-04-15 00:12:49 +02:00
-
name: 'Stations : Remote Relays'
2019-04-07 10:40:55 +02:00
-
name: 'Stations : Streamers/DJs'
2019-01-03 11:59:44 +01:00
-
2019-04-15 00:12:49 +02:00
name: 'Stations : Web Hooks'
2019-01-29 23:32:32 +01:00
-
name: 'Administration : Custom Fields'
2019-01-03 11:59:44 +01:00
-
name: 'Administration : Users'
2019-07-10 19:45:54 +02:00
-
name: 'Administration : Relays'
2019-01-05 13:02:49 +01:00
-
name: 'Administration : Roles'
2019-01-06 09:57:09 +01:00
-
name: 'Administration : Settings'
2019-04-08 07:09:53 +02:00
-
name: 'Administration : Stations'
2019-01-03 11:59:44 +01:00
-
name : Miscellaneous
2018-09-18 16:09:48 +02:00
externalDocs :
description : 'AzuraCast on GitHub'
url : 'https://github.com/AzuraCast/AzuraCast'