2018-09-18 14:09:48 +00: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'
2021-08-22 15:52:49 +00:00
version : 0.14 .1
2018-09-18 14:09:48 +00:00
servers :
-
url : 'https://demo.azuracast.com/api'
2018-12-24 08:47:45 +00:00
description : 'AzuraCast Public Demo Server'
2018-09-18 14:09:48 +00:00
paths :
2019-01-29 22:32:32 +00:00
/admin/custom_fields :
get :
tags :
- 'Administration : Custom Fields'
description : 'List all current custom fields in the system.'
2021-12-12 11:01:53 +00:00
operationId : getCustomFields
2019-01-29 22:32:32 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : addCustomField
2019-01-29 22:32:32 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : getCustomField
2019-01-29 22:32:32 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : editCustomField
2019-01-29 22:32:32 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : deleteCustomField
2019-01-29 22:32:32 +00:00
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 12:02:49 +00:00
/admin/permissions :
get :
tags :
- 'Administration : Roles'
description : 'Return a list of all available permissions.'
2021-12-12 11:01:53 +00:00
operationId : getPermissions
2019-01-05 12:02:49 +00:00
responses :
'200' :
description : Success
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
2019-08-16 18:18:14 +00:00
/internal/relays :
2019-07-10 17:45:54 +00:00
get :
tags :
- 'Administration : Relays'
description : 'Returns all necessary information to relay all ' 'relayable' ' stations.'
2021-12-12 11:01:53 +00:00
operationId : internalGetRelayDetails
2019-07-10 17:45:54 +00:00
parameters : [ ]
responses :
'200' :
description : Success
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/Api_Admin_Relay'
2019-01-05 12:02:49 +00:00
/admin/roles :
get :
tags :
- 'Administration : Roles'
description : 'List all current roles in the system.'
2021-12-12 11:01:53 +00:00
operationId : getRoles
2019-01-05 12:02:49 +00: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.'
2021-12-12 11:01:53 +00:00
operationId : addRole
2019-01-05 12:02:49 +00: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.'
2021-12-12 11:01:53 +00:00
operationId : getRole
2019-01-05 12:02:49 +00: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.'
2021-12-12 11:01:53 +00:00
operationId : editRole
2019-01-05 12:02:49 +00: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.'
2021-12-12 11:01:53 +00:00
operationId : deleteRole
2019-01-05 12:02:49 +00: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 08:57:09 +00:00
/admin/settings :
get :
tags :
- 'Administration : Settings'
description : 'List the current values of all editable system settings.'
2021-12-12 11:01:53 +00:00
operationId : getSettings
2019-01-06 08:57:09 +00:00
responses :
'200' :
description : Success
content :
application/json :
schema :
2020-12-04 15:12:10 +00:00
$ref : '#/components/schemas/Settings'
2019-01-06 08:57:09 +00:00
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
put :
tags :
- 'Administration : Settings'
description : 'Update settings to modify any settings provided.'
2021-12-12 11:01:53 +00:00
operationId : editSettings
2019-01-06 08:57:09 +00:00
requestBody :
content :
application/json :
schema :
2020-12-04 15:12:10 +00:00
$ref : '#/components/schemas/Settings'
2019-01-06 08:57:09 +00:00
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
2019-04-08 05:09:53 +00:00
/admin/stations :
get :
tags :
- 'Administration : Stations'
description : 'List all current stations in the system.'
2021-12-12 11:01:53 +00:00
operationId : adminGetStations
2019-04-08 05:09:53 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : adminAddStation
2019-04-08 05:09:53 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : adminGetStation
2019-04-08 05:09:53 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : adminEditStation
2019-04-08 05:09:53 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : adminDeleteStation
2019-04-08 05:09:53 +00:00
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 : [ ]
2020-11-10 03:06:48 +00:00
/admin/storage_locations :
get :
tags :
- 'Administration : Storage Locations'
description : 'List all current storage locations in the system.'
2021-12-12 11:01:53 +00:00
operationId : getStorageLocations
2020-11-10 03:06:48 +00:00
responses :
'200' :
description : Success
content :
application/json :
schema :
type : array
items :
2020-11-27 08:16:00 +00:00
$ref : '#/components/schemas/Api_Admin_StorageLocation'
2020-11-10 03:06:48 +00:00
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
post :
tags :
- 'Administration : Storage Locations'
description : 'Create a new storage location.'
2021-12-12 11:01:53 +00:00
operationId : addStorageLocation
2020-11-10 03:06:48 +00:00
requestBody :
content :
application/json :
schema :
2020-11-27 08:16:00 +00:00
$ref : '#/components/schemas/Api_Admin_StorageLocation'
2020-11-10 03:06:48 +00:00
responses :
'200' :
description : Success
content :
application/json :
schema :
2020-11-27 08:16:00 +00:00
$ref : '#/components/schemas/Api_Admin_StorageLocation'
2020-11-10 03:06:48 +00:00
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
'/admin/storage_location/{id}' :
get :
tags :
- 'Administration : Storage Locations'
description : 'Retrieve details for a single storage location.'
2021-12-12 11:01:53 +00:00
operationId : getStorageLocation
2020-11-10 03:06:48 +00:00
parameters :
-
name : id
in : path
description : 'User ID'
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
2020-11-27 08:16:00 +00:00
$ref : '#/components/schemas/Api_Admin_StorageLocation'
2020-11-10 03:06:48 +00:00
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
put :
tags :
- 'Administration : Storage Locations'
description : 'Update details of a single storage location.'
2021-12-12 11:01:53 +00:00
operationId : editStorageLocation
2020-11-10 03:06:48 +00:00
parameters :
-
name : id
in : path
description : 'Storage Location ID'
required : true
schema :
type : integer
format : int64
requestBody :
content :
application/json :
schema :
2020-11-27 08:16:00 +00:00
$ref : '#/components/schemas/Api_Admin_StorageLocation'
2020-11-10 03:06:48 +00:00
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
delete :
tags :
- 'Administration : Storage Locations'
description : 'Delete a single storage location.'
2021-12-12 11:01:53 +00:00
operationId : deleteStorageLocation
2020-11-10 03:06:48 +00:00
parameters :
-
name : id
in : path
description : 'Storage Location 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 10:59:44 +00:00
/admin/users :
2018-09-18 14:09:48 +00:00
get :
tags :
2019-01-03 10:59:44 +00:00
- 'Administration : Users'
description : 'List all current users in the system.'
2021-12-12 11:01:53 +00:00
operationId : getUsers
2018-09-18 14:09:48 +00:00
responses :
'200' :
description : Success
2019-01-03 10:59:44 +00:00
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/User'
'403' :
description : 'Access denied'
security :
-
2019-01-03 11:35:38 +00:00
api_key : [ ]
2019-01-03 10:59:44 +00:00
post :
2018-09-18 14:09:48 +00:00
tags :
2019-01-03 10:59:44 +00:00
- 'Administration : Users'
description : 'Create a new user.'
2021-12-12 11:01:53 +00:00
operationId : addUser
2019-01-03 10:59:44 +00:00
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/User'
2018-09-18 14:09:48 +00:00
responses :
'200' :
description : Success
2019-01-03 10:59:44 +00:00
content :
application/json :
schema :
$ref : '#/components/schemas/User'
'403' :
description : 'Access denied'
security :
-
2019-01-03 11:35:38 +00:00
api_key : [ ]
2019-01-03 10:59:44 +00:00
'/admin/user/{id}' :
2018-09-18 14:09:48 +00:00
get :
tags :
2019-01-03 10:59:44 +00:00
- 'Administration : Users'
description : 'Retrieve details for a single current user.'
2021-12-12 11:01:53 +00:00
operationId : getUser
2018-09-18 14:09:48 +00:00
parameters :
-
2019-01-03 10:59:44 +00:00
name : id
in : path
description : 'User ID'
required : true
schema :
type : integer
format : int64
2018-09-18 14:09:48 +00:00
responses :
'200' :
description : Success
2019-01-03 10:59:44 +00:00
content :
application/json :
schema :
$ref : '#/components/schemas/User'
2018-09-18 14:09:48 +00:00
'403' :
description : 'Access denied'
security :
-
2019-01-03 11:35:38 +00:00
api_key : [ ]
2019-01-03 10:59:44 +00:00
put :
tags :
- 'Administration : Users'
description : 'Update details of a single user.'
2021-12-12 11:01:53 +00:00
operationId : editUser
2019-01-03 10:59:44 +00:00
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 11:35:38 +00:00
api_key : [ ]
2019-01-03 10:59:44 +00:00
delete :
tags :
- 'Administration : Users'
description : 'Delete a single user.'
2021-12-12 11:01:53 +00:00
operationId : deleteUser
2019-01-03 10:59:44 +00:00
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 11:35:38 +00:00
api_key : [ ]
2019-01-03 10:59:44 +00:00
/status :
2018-09-18 14:09:48 +00:00
get :
tags :
2019-01-03 10:59:44 +00:00
- Miscellaneous
description : 'Returns an affirmative response if the API is active.'
2021-06-29 01:03:59 +00:00
operationId : bc32a129ca3e8ad2060b71bdd90da78d
2018-12-22 17:27:41 +00:00
parameters : [ ]
2018-09-18 14:09:48 +00:00
responses :
'200' :
description : Success
2019-07-10 17:45:54 +00:00
content :
application/json :
schema :
$ref : '#/components/schemas/Api_SystemStatus'
2019-01-03 10:59:44 +00:00
/time :
2018-09-18 14:09:48 +00:00
get :
tags :
2019-01-03 10:59:44 +00:00
- Miscellaneous
description : 'Returns the time (with formatting) in GMT and the user' 's local time zone, if logged in.'
2021-06-29 01:03:59 +00:00
operationId : 3092a8238a915a0b6b324f2a90942a94
2019-01-03 10:59:44 +00:00
parameters : [ ]
2018-09-18 14:09:48 +00:00
responses :
'200' :
description : Success
2019-07-10 17:45:54 +00:00
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Time'
2019-01-03 10:59:44 +00:00
/nowplaying :
2018-09-18 14:09:48 +00:00
get :
tags :
2019-01-03 10:59:44 +00:00
- 'Now Playing'
description : 'Returns a full summary of all stations' ' current state.'
2021-12-12 11:01:53 +00:00
operationId : 2ac086b9720325236f99cd3c185cc5c8
2019-01-03 10:59:44 +00:00
parameters : [ ]
2018-09-18 14:09:48 +00:00
responses :
'200' :
description : Success
2019-07-10 17:45:54 +00:00
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/Api_NowPlaying'
2019-01-03 10:59:44 +00:00
'/nowplaying/{station_id}' :
get :
2018-09-18 14:09:48 +00:00
tags :
2019-01-03 10:59:44 +00:00
- 'Now Playing'
description : 'Returns a full summary of the specified station' 's current state.'
2021-12-12 11:01:53 +00:00
operationId : 4ffcbe7b5873aecdb0872e3b312c6791
2018-09-18 14:09:48 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
responses :
'200' :
description : Success
2019-07-10 17:45:54 +00:00
content :
application/json :
schema :
$ref : '#/components/schemas/Api_NowPlaying'
2018-09-18 14:09:48 +00:00
'404' :
description : 'Station not found'
2019-04-24 13:58:04 +00:00
'/station/{station_id}/art/{media_id}' :
get :
tags :
- 'Stations : Media'
description : 'Returns the album art for a song, or a generic image.'
2021-06-29 01:03:59 +00:00
operationId : 1b9853f0af3c8fbe4d3af9af0e6d1a45
2019-04-24 13:58:04 +00: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.'
2021-12-12 11:01:53 +00:00
operationId : getFiles
2019-04-24 13:58:04 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : addFile
2019-04-24 13:58:04 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : getFile
2019-04-24 13:58:04 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : editFile
2019-04-24 13:58:04 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : deleteFile
2019-04-24 13:58:04 +00:00
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 22:32:32 +00:00
'/station/{station_id}/history' :
get :
tags :
- 'Stations : History'
description : 'Return song playback history items for a given station.'
2021-12-12 11:01:53 +00:00
operationId : getStationHistory
2019-01-29 22:32:32 +00:00
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 14:09:48 +00:00
/stations :
get :
tags :
- 'Stations : General'
description : 'Returns a list of stations.'
2021-12-12 11:01:53 +00:00
operationId : getStations
2018-12-22 17:27:41 +00:00
parameters : [ ]
2018-09-18 14:09:48 +00:00
responses :
'200' :
description : Success
2019-01-03 10:59:44 +00:00
content :
application/json :
schema :
type : array
items :
2021-08-22 15:52:49 +00:00
$ref : '#/components/schemas/Api_NowPlaying_Station'
2018-09-18 14:09:48 +00:00
'/station/{station_id}' :
get :
tags :
- 'Stations : General'
description : 'Return information about a single station.'
2021-12-12 11:01:53 +00:00
operationId : getStation
2019-01-03 10:59:44 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
responses :
'200' :
description : Success
content :
application/json :
schema :
2021-08-22 15:52:49 +00:00
$ref : '#/components/schemas/Api_NowPlaying_Station'
2019-01-03 10:59:44 +00:00
'404' :
description : 'Station not found'
'/station/{station_id}/listeners' :
get :
tags :
- 'Stations : Listeners'
description : 'Return detailed information about current listeners.'
2021-12-12 11:01:53 +00:00
operationId : getStationListeners
2018-09-18 14:09:48 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
responses :
'200' :
description : Success
2019-01-29 22:32:32 +00:00
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/Api_Listener'
2018-09-18 14:09:48 +00:00
'404' :
description : 'Station not found'
2019-01-03 10:59:44 +00:00
'403' :
description : 'Access denied'
security :
-
2019-01-03 11:35:38 +00:00
api_key : [ ]
2019-04-10 04:46:51 +00:00
'/station/{station_id}/mounts' :
get :
tags :
2019-04-14 22:12:49 +00:00
- 'Stations : Mount Points'
2019-04-10 04:46:51 +00:00
description : 'List all current mount points.'
2021-12-12 11:01:53 +00:00
operationId : getStationMounts
2019-04-10 04:46:51 +00:00
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-14 22:12:49 +00:00
- 'Stations : Mount Points'
2019-04-10 04:46:51 +00:00
description : 'Create a new mount point.'
2021-12-12 11:01:53 +00:00
operationId : addMount
2019-04-10 04:46:51 +00:00
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-14 22:12:49 +00:00
- 'Stations : Mount Points'
2019-04-10 04:46:51 +00:00
description : 'Retrieve details for a single mount point.'
2021-12-12 11:01:53 +00:00
operationId : getMount
2019-04-10 04:46:51 +00:00
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-14 22:12:49 +00:00
- 'Stations : Mount Points'
2019-04-10 04:46:51 +00:00
description : 'Update details of a single mount point.'
2021-12-12 11:01:53 +00:00
operationId : editMount
2019-04-10 04:46:51 +00:00
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-14 22:12:49 +00:00
- 'Stations : Mount Points'
2019-04-10 04:46:51 +00:00
description : 'Delete a single mount point.'
2021-12-12 11:01:53 +00:00
operationId : deleteMount
2019-04-10 04:46:51 +00:00
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 03:27:58 +00:00
'/station/{station_id}/playlists' :
get :
tags :
- 'Stations : Playlists'
description : 'List all current playlists.'
2021-12-12 11:01:53 +00:00
operationId : getPlaylists
2019-04-13 03:27:58 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : addPlaylist
2019-04-13 03:27:58 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : getPlaylist
2019-04-13 03:27:58 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : editPlaylist
2019-04-13 03:27:58 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : deletePlaylist
2019-04-13 03:27:58 +00:00
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 : [ ]
2021-05-25 04:29:07 +00:00
'/station/{station_id}/podcast/{podcast_id}/episodes' :
get :
tags :
- 'Stations : Podcasts'
description : 'List all current episodes for a given podcast ID.'
2021-12-12 11:01:53 +00:00
operationId : getEpisodes
2021-05-25 04:29:07 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : podcast_id
in : path
description : 'Podcast ID'
required : true
schema :
type : string
responses :
'200' :
description : Success
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/Api_PodcastEpisode'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
post :
tags :
- 'Stations : Podcasts'
description : 'Create a new podcast episode.'
2021-12-12 11:01:53 +00:00
operationId : addEpisode
2021-05-25 04:29:07 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : podcast_id
in : path
description : 'Podcast ID'
required : true
schema :
type : string
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/Api_PodcastEpisode'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_PodcastEpisode'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
'/station/{station_id}/podcast/{podcast_id}/episode/{id}' :
get :
tags :
- 'Stations : Podcasts'
description : 'Retrieve details for a single podcast episode.'
2021-12-12 11:01:53 +00:00
operationId : getEpisode
2021-05-25 04:29:07 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : podcast_id
in : path
description : 'Podcast ID'
required : true
schema :
type : string
-
name : id
in : path
description : 'Podcast Episode ID'
required : true
schema :
type : string
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_PodcastEpisode'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
put :
tags :
- 'Stations : Podcasts'
description : 'Update details of a single podcast episode.'
2021-12-12 11:01:53 +00:00
operationId : editEpisode
2021-05-25 04:29:07 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : podcast_id
in : path
description : 'Podcast ID'
required : true
schema :
type : string
-
name : id
in : path
description : 'Podcast Episode ID'
required : true
schema :
type : string
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/Api_PodcastEpisode'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
delete :
tags :
- 'Stations : Podcasts'
description : 'Delete a single podcast episode.'
2021-12-12 11:01:53 +00:00
operationId : deleteEpisode
2021-05-25 04:29:07 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : podcast_id
in : path
description : 'Podcast ID'
required : true
schema :
type : string
-
name : id
in : path
description : 'Podcast Episode ID'
required : true
schema :
type : string
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
'/station/{station_id}/podcasts' :
get :
tags :
- 'Stations : Podcasts'
description : 'List all current podcasts.'
2021-12-12 11:01:53 +00:00
operationId : getPodcasts
2021-05-25 04:29:07 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
responses :
'200' :
description : Success
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/Api_Podcast'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
post :
tags :
- 'Stations : Podcasts'
description : 'Create a new podcast.'
2021-12-12 11:01:53 +00:00
operationId : addPodcast
2021-05-25 04:29:07 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Podcast'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Podcast'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
'/station/{station_id}/podcast/{id}' :
get :
tags :
- 'Stations : Podcasts'
description : 'Retrieve details for a single podcast.'
2021-12-12 11:01:53 +00:00
operationId : getPodcast
2021-05-25 04:29:07 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
description : 'Podcast ID'
required : true
schema :
type : string
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Podcast'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
put :
tags :
- 'Stations : Podcasts'
description : 'Update details of a single podcast.'
2021-12-12 11:01:53 +00:00
operationId : editPodcast
2021-05-25 04:29:07 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
description : 'Podcast ID'
required : true
schema :
type : string
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Podcast'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
delete :
tags :
- 'Stations : Podcasts'
description : 'Delete a single podcast.'
2021-12-12 11:01:53 +00:00
operationId : deletePodcast
2021-05-25 04:29:07 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
description : 'Podcast ID'
required : true
schema :
type : string
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
2018-12-24 08:47:45 +00:00
'/station/{station_id}/queue' :
get :
tags :
2019-01-03 10:59:44 +00:00
- 'Stations : Queue'
2018-12-24 08:47:45 +00:00
description : 'Return information about the upcoming song playback queue.'
2021-12-12 11:01:53 +00:00
operationId : getQueue
2018-12-24 08:47:45 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
responses :
'200' :
description : Success
2019-01-03 10:59:44 +00:00
content :
application/json :
schema :
type : array
items :
2020-11-10 03:06:48 +00:00
$ref : '#/components/schemas/Api_StationQueueDetailed'
2018-12-24 08:47:45 +00:00
'404' :
description : 'Station not found'
'403' :
description : 'Access denied'
security :
-
2019-01-03 11:35:38 +00:00
api_key : [ ]
2019-01-03 10:59:44 +00:00
'/station/{station_id}/queue/{id}' :
get :
tags :
- 'Stations : Queue'
description : 'Retrieve details of a single queued item.'
2021-12-12 11:01:53 +00:00
operationId : getQueueItem
2019-01-03 10:59:44 +00:00
parameters :
2021-06-29 01:03:59 +00:00
-
$ref : '#/components/parameters/station_id_required'
2019-01-03 10:59:44 +00:00
-
name : id
in : path
description : 'Queue Item ID'
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
2020-11-10 03:06:48 +00:00
$ref : '#/components/schemas/Api_StationQueueDetailed'
2019-01-03 10:59:44 +00:00
'404' :
description : 'Station or Queue ID not found'
'403' :
description : 'Access denied'
security :
-
2019-01-03 11:35:38 +00:00
api_key : [ ]
2019-01-03 10:59:44 +00:00
delete :
tags :
- 'Stations : Queue'
2019-03-01 02:30:25 +00:00
description : 'Delete a single queued item.'
2021-12-12 11:01:53 +00:00
operationId : deleteQueueItem
2019-01-03 10:59:44 +00:00
parameters :
2021-06-29 01:03:59 +00:00
-
$ref : '#/components/parameters/station_id_required'
2019-01-03 10:59:44 +00:00
-
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 11:35:38 +00:00
api_key : [ ]
2019-04-10 04:46:51 +00:00
'/station/{station_id}/remotes' :
get :
tags :
- 'Stations : Remote Relays'
description : 'List all current remote relays.'
2021-12-12 11:01:53 +00:00
operationId : getRelays
2019-04-10 04:46:51 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
responses :
'200' :
description : Success
content :
application/json :
schema :
type : array
items :
2021-08-22 15:52:49 +00:00
$ref : '#/components/schemas/Api_StationRemote'
2019-04-10 04:46:51 +00:00
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
post :
tags :
- 'Stations : Remote Relays'
description : 'Create a new remote relay.'
2021-12-12 11:01:53 +00:00
operationId : addRelay
2019-04-10 04:46:51 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
requestBody :
content :
application/json :
schema :
2021-08-22 15:52:49 +00:00
$ref : '#/components/schemas/Api_StationRemote'
2019-04-10 04:46:51 +00:00
responses :
'200' :
description : Success
content :
application/json :
schema :
2021-08-22 15:52:49 +00:00
$ref : '#/components/schemas/Api_StationRemote'
2019-04-10 04:46:51 +00:00
'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.'
2021-12-12 11:01:53 +00:00
operationId : getRelay
2019-04-10 04:46:51 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
2019-04-13 03:27:58 +00:00
description : 'Remote Relay ID'
2019-04-10 04:46:51 +00:00
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
2021-08-22 15:52:49 +00:00
$ref : '#/components/schemas/Api_StationRemote'
2019-04-10 04:46:51 +00:00
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
put :
tags :
- 'Stations : Remote Relays'
description : 'Update details of a single remote relay.'
2021-12-12 11:01:53 +00:00
operationId : editRelay
2019-04-10 04:46:51 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
2019-04-13 03:27:58 +00:00
description : 'Remote Relay ID'
2019-04-10 04:46:51 +00:00
required : true
schema :
type : integer
format : int64
requestBody :
content :
application/json :
schema :
2021-08-22 15:52:49 +00:00
$ref : '#/components/schemas/Api_StationRemote'
2019-04-10 04:46:51 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : deleteRelay
2019-04-10 04:46:51 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
2019-04-13 03:27:58 +00:00
description : 'Remote Relay ID'
2019-04-10 04:46:51 +00: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 10:59:44 +00:00
'/station/{station_id}/requests' :
get :
tags :
- 'Stations : Song Requests'
description : 'Return a list of requestable songs.'
2021-12-12 11:01:53 +00:00
operationId : getRequestableSongs
2019-01-03 10:59:44 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : submitSongRequest
2019-01-03 10:59:44 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : request_id
in : path
description : 'The requestable song ID'
required : true
schema :
2021-09-04 23:27:46 +00:00
type : string
2019-01-03 10:59:44 +00:00
responses :
'200' :
description : Success
'404' :
description : 'Station not found'
'403' :
description : 'Station does not support requests'
2020-02-19 15:05:15 +00:00
'/station/{station_id}/schedule' :
get :
tags :
- 'Stations : Schedules'
description : 'Return upcoming and currently ongoing schedule entries.'
2021-12-12 11:01:53 +00:00
operationId : getSchedule
2020-02-19 15:05:15 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : now
in : query
description : 'The date/time to compare schedule items to. Defaults to the current date and time.'
required : false
schema :
type : string
-
name : rows
in : query
description : 'The number of upcoming/ongoing schedule entries to return. Defaults to 5.'
required : false
schema :
type : integer
responses :
'200' :
description : Success
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/Api_StationSchedule'
'404' :
description : 'Station not found'
'403' :
description : 'Access denied'
2019-01-29 22:32:32 +00:00
'/station/{station_id}/status' :
get :
tags :
- 'Stations : Service Control'
description : 'Retrieve the current status of all serivces associated with the radio broadcast.'
2021-12-12 11:01:53 +00:00
operationId : getServiceStatus
2019-01-29 22:32:32 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
responses :
'200' :
description : Success
'403' :
description : 'Access Forbidden'
security :
-
api_key : [ ]
2018-09-18 14:09:48 +00:00
'/station/{station_id}/restart' :
post :
tags :
- 'Stations : Service Control'
description : 'Restart all services associated with the radio broadcast.'
2021-12-12 11:01:53 +00:00
operationId : restartServices
2018-09-18 14:09:48 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
responses :
'200' :
description : Success
'403' :
description : 'Access Forbidden'
security :
-
2019-01-03 11:35:38 +00:00
api_key : [ ]
2018-09-18 14:09:48 +00:00
'/station/{station_id}/frontend/{action}' :
post :
tags :
- 'Stations : Service Control'
description : 'Perform service control actions on the radio frontend (Icecast, SHOUTcast, etc.)'
2021-12-12 11:01:53 +00:00
operationId : doFrontendServiceAction
2018-09-18 14:09:48 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : action
in : path
description : 'The action to perform (start, stop, restart)'
required : false
schema :
type : string
2021-06-29 01:03:59 +00:00
default : restart
2018-09-18 14:09:48 +00:00
responses :
'200' :
description : Success
'403' :
description : 'Access Forbidden'
security :
-
2019-01-03 11:35:38 +00:00
api_key : [ ]
2018-09-18 14:09:48 +00:00
'/station/{station_id}/backend/{action}' :
post :
tags :
- 'Stations : Service Control'
description : 'Perform service control actions on the radio backend (Liquidsoap)'
2021-12-12 11:01:53 +00:00
operationId : doBackendServiceAction
2018-09-18 14:09:48 +00:00
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : action
in : path
2019-04-07 00:06:39 +00:00
description: 'The action to perform (for all: start, stop, restart; for Liquidsoap only : skip, disconnect)'
2018-09-18 14:09:48 +00:00
required : false
schema :
type : string
2021-06-29 01:03:59 +00:00
default : restart
2018-09-18 14:09:48 +00:00
responses :
'200' :
description : Success
'403' :
description : 'Access Forbidden'
security :
-
2019-01-03 11:35:38 +00:00
api_key : [ ]
2021-12-12 11:01:53 +00:00
'/station/{station_id}/sftp-users' :
get :
tags :
- 'Stations : SFTP Users'
description : 'List all current SFTP users.'
operationId : getSftpUsers
parameters :
-
$ref : '#/components/parameters/station_id_required'
responses :
'200' :
description : Success
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/SftpUser'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
post :
tags :
- 'Stations : SFTP Users'
description : 'Create a new SFTP user.'
operationId : addSftpUser
parameters :
-
$ref : '#/components/parameters/station_id_required'
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/SftpUser'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/SftpUser'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
'/station/{station_id}/sftp-user/{id}' :
get :
tags :
- 'Stations : SFTP Users'
description : 'Retrieve details for a single SFTP user.'
operationId : getSftpUser
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
description : 'SFTP User ID'
required : true
schema :
type : integer
format : int64
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/SftpUser'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
put :
tags :
- 'Stations : SFTP Users'
description : 'Update details of a single SFTP user.'
operationId : editSftpUser
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
description : 'Remote Relay ID'
required : true
schema :
type : integer
format : int64
requestBody :
content :
application/json :
schema :
$ref : '#/components/schemas/SftpUser'
responses :
'200' :
description : Success
content :
application/json :
schema :
$ref : '#/components/schemas/Api_Status'
'403' :
description : 'Access denied'
security :
-
api_key : [ ]
delete :
tags :
- 'Stations : SFTP Users'
description : 'Delete a single remote relay.'
operationId : deleteSftpUser
parameters :
-
$ref : '#/components/parameters/station_id_required'
-
name : id
in : path
description : 'Remote Relay 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-07 08:40:55 +00:00
'/station/{station_id}/streamers' :
get :
tags :
- 'Stations : Streamers/DJs'
description : 'List all current Streamer/DJ accounts for the specified station.'
2021-12-12 11:01:53 +00:00
operationId : getStreamers
2019-04-07 08:40:55 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : addStreamer
2019-04-07 08:40:55 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : getStreamer
2019-04-07 08:40:55 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : editStreamer
2019-04-07 08:40:55 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : deleteStreamer
2019-04-07 08:40:55 +00:00
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-14 22:12:49 +00:00
'/station/{station_id}/webhooks' :
get :
tags :
- 'Stations : Web Hooks'
description : 'List all current web hooks.'
2021-12-12 11:01:53 +00:00
operationId : getWebhooks
2019-04-14 22:12:49 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : addWebhook
2019-04-14 22:12:49 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : getWebhook
2019-04-14 22:12:49 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : editWebhook
2019-04-14 22:12:49 +00:00
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.'
2021-12-12 11:01:53 +00:00
operationId : deleteWebhook
2019-04-14 22:12:49 +00:00
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 14:09:48 +00:00
components :
schemas :
2019-07-10 17:45:54 +00:00
Api_Admin_Relay :
properties :
id :
description : 'Station ID'
type : integer
example : 1
name :
description : 'Station name'
type : string
example : 'AzuraTest Radio'
2021-08-05 03:50:32 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
shortcode :
2021-04-14 20:28:27 +00:00
description : 'Station "short code", used for URL and folder paths'
type : string
example : azuratest_radio
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
description :
2019-07-10 17:45:54 +00:00
description : 'Station description'
type : string
example : 'An AzuraCast station!'
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
url :
2019-07-10 17:45:54 +00:00
description : 'Station homepage URL'
type : string
example : 'https://www.azuracast.com/'
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
genre :
2019-07-10 17:45:54 +00:00
description : 'The genre of the station'
type : string
example : Variety
2021-08-05 03:50:32 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
type :
2019-07-10 17:45:54 +00:00
description : 'Which broadcasting software (frontend) the station uses'
type : string
example : shoutcast2
2021-08-05 03:50:32 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
port :
2019-07-10 17:45:54 +00:00
description : 'The port used by this station to serve its broadcasts.'
type : integer
example : 8000
2021-12-12 11:01:53 +00:00
nullable : true
2019-07-28 03:07:11 +00:00
relay_pw :
2019-07-10 17:45:54 +00:00
description : 'The relay password for the frontend (if applicable).'
type : string
example : p4ssw0rd
2019-07-28 03:07:11 +00:00
admin_pw :
description : 'The administrator password for the frontend (if applicable).'
type : string
example : p4ssw0rd
2019-07-10 17:45:54 +00:00
mounts :
type : array
2021-12-12 11:01:53 +00:00
items : { }
2019-07-10 17:45:54 +00:00
type : object
2020-11-27 08:16:00 +00:00
Api_Admin_StorageLocation :
2021-12-12 11:01:53 +00:00
properties :
id :
type : integer
example : 1
type :
description : 'The type of storage location.'
type : string
example : station_media
adapter :
description : 'The storage adapter to use for this location.'
type : string
example : local
path :
description : 'The local path, if the local adapter is used, or path prefix for S3/remote adapters.'
type : string
example : /var/azuracast/stations/azuratest_radio/media
nullable : true
s3CredentialKey :
description : 'The credential key for S3 adapters.'
type : string
example : your-key-here
nullable : true
s3CredentialSecret :
description : 'The credential secret for S3 adapters.'
type : string
example : your-secret-here
nullable : true
s3Region :
description : 'The region for S3 adapters.'
type : string
example : your-region
nullable : true
s3Version :
description : 'The API version for S3 adapters.'
type : string
example : latest
nullable : true
s3Bucket :
description : 'The S3 bucket name for S3 adapters.'
type : string
example : your-bucket-name
nullable : true
s3Endpoint :
description : 'The optional custom S3 endpoint S3 adapters.'
type : string
example : 'https://your-region.digitaloceanspaces.com'
nullable : true
storageQuota :
type : string
example : '50 GB'
nullable : true
storageQuotaBytes :
type : string
example : '120000'
nullable : true
storageUsed :
type : string
example : '1 GB'
nullable : true
storageUsedBytes :
type : string
example : '60000'
nullable : true
storageAvailable :
type : string
example : '1 GB'
nullable : true
storageAvailableBytes :
type : string
example : '120000'
nullable : true
storageUsedPercent :
type : integer
example : '75'
nullable : true
isFull :
type : boolean
example : 'true'
uri :
description : 'The URI associated with the storage location.'
type : string
example : /var/azuracast/www
stations :
description : 'The stations using this storage location, if any.'
type : array
items :
type : string
example : 'AzuraTest Radio'
nullable : true
2020-11-27 08:16:00 +00:00
type : object
2018-12-22 17:27:41 +00:00
Api_DetailedSongHistory :
2021-12-12 11:01:53 +00:00
type : object
2018-09-18 14:09:48 +00:00
allOf :
-
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
2021-12-12 11:01:53 +00:00
-
$ref : '#/components/schemas/Api_NowPlaying_SongHistory'
2018-12-22 17:27:41 +00:00
Api_Error :
2018-09-18 14:09:48 +00:00
properties :
code :
description : 'The numeric code of the error.'
type : integer
example : 500
2021-12-12 11:01:53 +00:00
type :
description : 'The programmatic class of error.'
type : string
example : NotLoggedInException
2018-09-18 14:09:48 +00:00
message :
description : 'The text description of the error.'
type : string
example : 'Error description.'
2019-03-25 00:12:04 +00:00
formatted_message :
description : 'The HTML-formatted text description of the error.'
type : string
example : '<b>Error description.</b><br>Detailed error text.'
2021-12-12 11:01:53 +00:00
nullable : true
2019-03-25 00:12:04 +00:00
extra_data :
description : 'Stack traces and other supplemental data.'
2018-09-18 14:09:48 +00: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 17:27:41 +00:00
Api_Listener :
2018-09-18 14:09:48 +00:00
properties :
ip :
description : 'The listener' 's IP address'
type : string
example : 127.0 .0 .1
user_agent :
2020-11-10 03:06:48 +00:00
description : "The listener's HTTP User-Agent\n\nphpcs:disable Generic.Files.LineLength"
2018-09-18 14:09:48 +00:00
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'
2021-12-12 11:01:53 +00:00
hash :
description : 'A unique identifier for this instance of this listener on this user agent (used for unique calculations).'
type : string
example : ''
2021-01-28 00:20:05 +00:00
client :
description : 'The listener' 's client details (extracted from user-agent)'
type : string
example : ''
2018-09-18 14:09:48 +00:00
is_mobile :
description : 'Whether the user-agent is likely a mobile browser.'
type : boolean
example : true
2021-01-28 00:20:05 +00:00
mount_is_local :
description : 'Whether the user is connected to a local mount point or a remote one.'
type : boolean
example : false
mount_name :
description : 'The display name of the mount point.'
type : string
example : /radio.mp3
2018-09-18 14:09:48 +00:00
connected_on :
description : 'UNIX timestamp that the user first connected.'
type : integer
2021-09-04 23:27:46 +00:00
example : 1609480800
2021-04-14 20:28:27 +00:00
connected_until :
description : 'UNIX timestamp that the user disconnected (or the latest timestamp if they are still connected).'
type : integer
2021-09-04 23:27:46 +00:00
example : 1609480800
2018-09-18 14:09:48 +00: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 17:27:41 +00:00
Api_NewRecord :
2021-12-12 11:01:53 +00:00
type : object
2018-12-22 17:27:41 +00:00
allOf :
-
properties :
links :
type : array
items :
type : string
example : 'http://localhost/api/record/1'
2021-12-12 11:01:53 +00:00
-
$ref : '#/components/schemas/Api_Status'
2021-08-22 15:52:49 +00:00
Api_NowPlaying_CurrentSong :
2021-12-12 11:01:53 +00:00
type : object
2021-08-22 15:52:49 +00:00
allOf :
-
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
2021-12-12 11:01:53 +00:00
-
$ref : '#/components/schemas/Api_NowPlaying_SongHistory'
2021-08-22 15:52:49 +00:00
Api_NowPlaying_Listeners :
properties :
total :
description : 'Total non-unique current listeners'
type : integer
example : 20
unique :
description : 'Total unique current listeners'
type : integer
example : 15
current :
description : 'Total non-unique current listeners (Legacy field, may be retired in the future.)'
type : integer
example : 20
type : object
Api_NowPlaying_Live :
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'
broadcast_start :
description : 'The start timestamp of the current broadcast, if one is available.'
type : integer
example : '1591548318'
2021-12-12 11:01:53 +00:00
nullable : true
2021-08-22 15:52:49 +00:00
type : object
2018-12-22 17:27:41 +00:00
Api_NowPlaying :
2018-09-18 14:09:48 +00:00
properties :
station :
2021-08-22 15:52:49 +00:00
$ref : '#/components/schemas/Api_NowPlaying_Station'
2018-09-18 14:09:48 +00:00
listeners :
2021-08-22 15:52:49 +00:00
$ref : '#/components/schemas/Api_NowPlaying_Listeners'
2018-09-18 14:09:48 +00:00
live :
2021-08-22 15:52:49 +00:00
$ref : '#/components/schemas/Api_NowPlaying_Live'
2018-09-18 14:09:48 +00:00
now_playing :
2021-12-12 11:01:53 +00:00
$ref : '#/components/schemas/Api_NowPlaying_CurrentSong'
2018-09-18 14:09:48 +00:00
playing_next :
2021-12-12 11:01:53 +00:00
$ref : '#/components/schemas/Api_NowPlaying_StationQueue'
2018-09-18 14:09:48 +00:00
song_history :
type : array
items :
2021-08-22 15:52:49 +00:00
$ref : '#/components/schemas/Api_NowPlaying_SongHistory'
2021-03-09 08:49:16 +00:00
is_online :
description : 'Whether the stream is currently online.'
type : boolean
example : true
2018-09-18 14:09:48 +00:00
cache :
description : 'Debugging information about where the now playing data comes from.'
type : string
enum :
- hit
- database
- station
2021-12-12 11:01:53 +00:00
nullable : true
2018-09-18 14:09:48 +00:00
type : object
2021-08-22 15:52:49 +00:00
Api_NowPlaying_SongHistory :
properties :
sh_id :
description : 'Song history unique identifier'
type : integer
played_at :
description : 'UNIX timestamp when playback started.'
type : integer
2021-09-04 23:27:46 +00:00
example : 1609480800
2021-08-22 15:52:49 +00: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'
nullable : true
2021-12-12 11:01:53 +00:00
streamer :
2021-08-22 15:52:49 +00:00
description : 'Indicates the current streamer that was connected, if available, or empty string if not.'
type : string
example : 'Test DJ'
2021-12-12 11:01:53 +00:00
nullable : true
2021-08-22 15:52:49 +00:00
is_request :
description : 'Indicates whether the song is a listener request.'
type : boolean
song :
$ref : '#/components/schemas/Api_Song'
type : object
Api_NowPlaying_Station :
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'
example : 'http://localhost:8000/radio.mp3'
url :
description : 'The public URL of the station.'
type : string
example : 'https://example.com/'
2021-12-12 11:01:53 +00:00
nullable : true
2021-08-22 15:52:49 +00:00
public_player_url :
description : 'The public player URL for the station.'
example : 'https://example.com/public/example_station'
playlist_pls_url :
description : 'The playlist download URL in PLS format.'
example : 'https://example.com/public/example_station/playlist.pls'
playlist_m3u_url :
description : 'The playlist download URL in M3U format.'
example : 'https://example.com/public/example_station/playlist.m3u'
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 :
$ref : '#/components/schemas/Api_NowPlaying_StationMount'
remotes :
type : array
items :
$ref : '#/components/schemas/Api_NowPlaying_StationRemote'
type : object
Api_NowPlaying_StationMount :
2021-12-12 11:01:53 +00:00
type : object
2018-09-18 14:09:48 +00:00
allOf :
-
properties :
2021-08-22 15:52:49 +00:00
path :
description : 'The relative path that corresponds to this mount point'
type : string
example : /radio.mp3
is_default :
description : 'If the mount is the default mount for the parent station'
type : boolean
example : true
2021-12-12 11:01:53 +00:00
-
$ref : '#/components/schemas/Api_NowPlaying_StationRemote'
2021-08-22 15:52:49 +00:00
Api_NowPlaying_StationQueue :
2018-09-18 14:09:48 +00:00
properties :
2021-08-22 15:52:49 +00:00
cued_at :
2021-12-12 11:01:53 +00:00
description : 'UNIX timestamp when the AutoDJ is expected to queue the song for playback.'
type : integer
example : 1609480800
played_at :
2021-08-22 15:52:49 +00:00
description : 'UNIX timestamp when playback is expected to start.'
2018-09-18 14:09:48 +00:00
type : integer
2021-09-04 23:27:46 +00:00
example : 1609480800
2021-08-22 15:52:49 +00:00
duration :
description : 'Duration of the song in seconds'
2018-09-18 14:09:48 +00:00
type : integer
2021-08-22 15:52:49 +00:00
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'
2021-12-12 11:01:53 +00:00
nullable : true
2021-08-22 15:52:49 +00:00
is_request :
description : 'Indicates whether the song is a listener request.'
type : boolean
song :
$ref : '#/components/schemas/Api_Song'
2018-09-18 14:09:48 +00:00
type : object
2021-08-22 15:52:49 +00:00
Api_NowPlaying_StationRemote :
2018-09-18 14:09:48 +00:00
properties :
2021-08-22 15:52:49 +00:00
id :
description : 'Mount/Remote ID number.'
type : integer
example : 1
name :
description : 'Mount point name/URL'
2018-09-18 14:09:48 +00:00
type : string
2021-08-22 15:52:49 +00:00
example : /radio.mp3
url :
description : 'Full listening URL specific to this mount'
example : 'http://localhost:8000/radio.mp3'
bitrate :
description : 'Bitrate (kbps) of the broadcasted audio (if known)'
2020-06-22 04:36:14 +00:00
type : integer
2021-08-22 15:52:49 +00:00
example : 128
nullable : true
2021-12-12 11:01:53 +00:00
format :
2021-08-22 15:52:49 +00:00
description : 'Audio encoding format of broadcasted audio (if known)'
type : string
example : mp3
2021-12-12 11:01:53 +00:00
nullable : true
2021-08-22 15:52:49 +00:00
listeners :
$ref : '#/components/schemas/Api_NowPlaying_Listeners'
2018-09-18 14:09:48 +00:00
type : object
2021-05-25 04:29:07 +00:00
Api_Podcast :
type : object
allOf :
-
properties :
id :
2021-06-29 01:03:59 +00:00
type : string
2021-05-25 04:29:07 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
storage_location_id :
2021-06-29 01:03:59 +00:00
type : integer
2021-05-25 04:29:07 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
title :
2021-05-25 04:29:07 +00:00
type : string
nullable : true
2021-12-12 11:01:53 +00:00
link :
2021-05-25 04:29:07 +00:00
type : string
nullable : true
2021-12-12 11:01:53 +00:00
description :
2021-05-25 04:29:07 +00:00
type : string
nullable : true
2021-12-12 11:01:53 +00:00
language :
2021-06-29 01:03:59 +00:00
type : string
2021-08-05 03:50:32 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
author :
2021-08-05 03:50:32 +00:00
type : string
nullable : true
2021-12-12 11:01:53 +00:00
email :
2021-08-05 03:50:32 +00:00
type : string
2021-12-12 11:01:53 +00:00
nullable : true
2021-05-25 04:29:07 +00:00
has_custom_art :
type : boolean
art :
2021-06-29 01:03:59 +00:00
type : string
2021-12-12 11:01:53 +00:00
nullable : true
2021-05-25 04:29:07 +00:00
art_updated_at :
type : integer
categories :
2021-05-30 18:55:26 +00:00
type : array
2021-05-25 04:29:07 +00:00
items :
type : string
episodes :
2021-05-30 18:55:26 +00:00
type : array
2021-05-25 04:29:07 +00:00
items :
type : string
2021-12-12 11:01:53 +00:00
-
$ref : '#/components/schemas/HasLinks'
2021-05-25 04:29:07 +00:00
Api_PodcastEpisode :
type : object
allOf :
-
properties :
id :
type : string
nullable : true
2021-12-12 11:01:53 +00:00
title :
2021-05-25 04:29:07 +00:00
type : string
nullable : true
2021-12-12 11:01:53 +00:00
description :
2021-06-29 01:03:59 +00:00
type : string
2021-12-12 11:01:53 +00:00
nullable : true
2021-05-25 04:29:07 +00:00
explicit :
type : boolean
publish_at :
2021-06-29 01:03:59 +00:00
type : integer
2021-12-12 11:01:53 +00:00
nullable : true
2021-05-25 04:29:07 +00:00
has_media :
type : boolean
media :
$ref : '#/components/schemas/Api_PodcastMedia'
has_custom_art :
type : boolean
art :
2021-06-29 01:03:59 +00:00
type : string
2021-12-12 11:01:53 +00:00
nullable : true
2021-05-25 04:29:07 +00:00
art_updated_at :
type : integer
2021-12-12 11:01:53 +00:00
-
$ref : '#/components/schemas/HasLinks'
2021-05-25 04:29:07 +00:00
Api_PodcastMedia :
properties :
id :
type : string
nullable : true
2021-12-12 11:01:53 +00:00
original_name :
2021-06-29 01:03:59 +00:00
type : string
2021-12-12 11:01:53 +00:00
nullable : true
2021-05-25 04:29:07 +00:00
length :
type : number
format : float
length_text :
type : string
nullable : true
2021-12-12 11:01:53 +00:00
path :
2021-06-29 01:03:59 +00:00
type : string
2021-12-12 11:01:53 +00:00
nullable : true
2021-05-25 04:29:07 +00:00
type : object
2018-12-22 17:27:41 +00:00
Api_Song :
2018-09-18 14:09:48 +00: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'
2020-11-10 03:06:48 +00:00
genre :
description : 'The song genre.'
type : string
example : Rock
2018-09-18 14:09:48 +00:00
lyrics :
description : 'Lyrics to the song.'
type : string
example : ''
art :
description : 'URL to the album artwork (if available).'
example : 'https://picsum.photos/1200/1200'
custom_fields :
type : array
items :
type : string
example : custom_field_value
type : object
2020-06-22 04:36:14 +00:00
Api_StationOnDemand :
properties :
track_id :
description : 'Track ID unique identifier'
type : string
example : 1
download_url :
description : 'URL to download/play track.'
type : string
example : /api/station/1/ondemand/download/1
media :
$ref : '#/components/schemas/Api_Song'
2020-08-01 01:09:18 +00:00
playlist :
type : string
2020-06-22 04:36:14 +00:00
type : object
2021-04-26 11:36:24 +00:00
Api_StationPlaylistQueue :
properties :
spm_id :
description : 'ID of the StationPlaylistMedia record associating this track with the playlist'
type : integer
example : 1
2021-12-12 11:01:53 +00:00
nullable : true
2021-04-26 11:36:24 +00:00
media_id :
description : 'ID of the StationPlaylistMedia record associating this track with the playlist'
type : integer
example : 1
song_id :
description : 'The song' 's 32-character unique identifier hash'
type : string
example : 9f33bbc912c19603e51be8e0987d076b
artist :
description : 'The song artist.'
type : string
example : 'Chet Porter'
title :
description : 'The song title.'
type : string
example : 'Aluko River'
type : object
2020-11-10 03:06:48 +00:00
Api_StationQueueDetailed :
2021-05-30 18:55:26 +00:00
type : object
2020-11-10 03:06:48 +00:00
allOf :
-
properties :
2021-12-12 11:01:53 +00:00
sent_to_autodj :
description : 'Indicates whether the song has been sent to the AutoDJ.'
type : boolean
is_played :
description : 'Indicates whether the song has already been marked as played.'
type : boolean
2020-11-27 08:16:00 +00:00
autodj_custom_uri :
description : 'Custom AutoDJ playback URI, if it exists.'
type : string
example : ''
2021-12-12 11:01:53 +00:00
nullable : true
-
$ref : '#/components/schemas/Api_NowPlaying_StationQueue'
-
$ref : '#/components/schemas/HasLinks'
2019-03-25 00:12:04 +00:00
Api_StationRemote :
2018-09-18 14:09:48 +00:00
type : object
2021-08-22 15:52:49 +00:00
allOf :
-
properties :
id :
type : integer
nullable : true
2021-12-12 11:01:53 +00:00
display_name :
2021-08-22 15:52:49 +00:00
type : string
example : '128kbps MP3'
2021-12-12 11:01:53 +00:00
nullable : true
2021-08-22 15:52:49 +00:00
is_visible_on_public_pages :
type : boolean
example : true
type :
type : string
example : icecast
is_editable :
type : boolean
example : 'true'
enable_autodj :
type : boolean
example : false
autodj_format :
type : string
example : mp3
nullable : true
2021-12-12 11:01:53 +00:00
autodj_bitrate :
2021-08-22 15:52:49 +00:00
type : integer
example : 128
nullable : true
2021-12-12 11:01:53 +00:00
custom_listen_url :
2021-08-22 15:52:49 +00:00
type : string
example : 'https://custom-listen-url.example.com/stream.mp3'
2021-12-12 11:01:53 +00:00
nullable : true
2021-08-22 15:52:49 +00:00
url :
type : string
example : 'https://custom-url.example.com'
mount :
type : string
example : /stream.mp3
nullable : true
2021-12-12 11:01:53 +00:00
admin_password :
2021-08-22 15:52:49 +00:00
type : string
example : password
nullable : true
2021-12-12 11:01:53 +00:00
source_port :
2021-08-22 15:52:49 +00:00
type : integer
example : 8000
nullable : true
2021-12-12 11:01:53 +00:00
source_mount :
2021-08-22 15:52:49 +00:00
type : string
example : /
nullable : true
2021-12-12 11:01:53 +00:00
source_username :
2021-08-22 15:52:49 +00:00
type : string
example : source
nullable : true
2021-12-12 11:01:53 +00:00
source_password :
2021-08-22 15:52:49 +00:00
type : string
example : password
2021-12-12 11:01:53 +00:00
nullable : true
2021-08-22 15:52:49 +00:00
is_public :
type : boolean
example : false
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
2021-12-12 11:01:53 +00:00
-
$ref : '#/components/schemas/HasLinks'
2018-12-22 17:27:41 +00:00
Api_StationRequest :
2018-09-18 14:09:48 +00:00
properties :
request_id :
description : 'Requestable ID unique identifier'
2018-11-26 20:54:49 +00:00
type : string
2018-09-18 14:09:48 +00:00
example : 1
request_url :
description : 'URL to directly submit request'
2018-11-26 20:54:49 +00:00
type : string
2018-09-18 14:09:48 +00:00
example : /api/station/1/request/1
song :
2018-12-22 17:27:41 +00:00
$ref : '#/components/schemas/Api_Song'
2018-09-18 14:09:48 +00:00
type : object
2020-02-19 15:05:15 +00:00
Api_StationSchedule :
properties :
id :
description : 'Unique identifier for this schedule entry.'
type : integer
example : 1
type :
description : 'The type of this schedule entry.'
type : string
enum :
- playlist
- streamer
example : playlist
name :
description : 'Either the playlist or streamer' 's display name.'
type : string
example : 'Example Schedule Entry'
2021-12-12 11:01:53 +00:00
title :
description : 'The full name of the type and name combined.'
type : string
example: 'Playlist : Example Schedule Entry'
2020-02-19 15:05:15 +00:00
start_timestamp :
description : 'The start time of the schedule entry, in UNIX format.'
type : integer
2021-09-04 23:27:46 +00:00
example : 1609480800
2020-02-19 15:05:15 +00:00
start :
description : 'The start time of the schedule entry, in ISO 8601 format.'
type : string
example : '020-02-19T03:00:00-06:00'
end_timestamp :
description : 'The end time of the schedule entry, in UNIX format.'
type : integer
2021-09-04 23:27:46 +00:00
example : 1609480800
2020-02-19 15:05:15 +00:00
end :
description : 'The start time of the schedule entry, in ISO 8601 format.'
type : string
example : '020-02-19T05:00:00-06:00'
is_now :
description : 'Whether the event is currently ongoing.'
type : boolean
example : true
type : object
2019-01-29 22:32:32 +00:00
Api_StationServiceStatus :
properties :
backend_running :
type : boolean
example : true
frontend_running :
type : boolean
example : true
2021-12-12 11:01:53 +00:00
station_has_started :
type : boolean
example : true
station_needs_restart :
type : boolean
example : true
2019-01-29 22:32:32 +00:00
type : object
2018-12-22 17:27:41 +00:00
Api_Status :
2018-09-18 14:09:48 +00:00
properties :
success :
type : boolean
example : true
message :
type : string
example : 'Changes saved successfully.'
2019-03-25 00:12:04 +00:00
formatted_message :
type : string
example : '<b>Changes saved successfully.</b>'
2018-09-18 14:09:48 +00:00
type : object
2018-12-22 17:27:41 +00:00
Api_SystemStatus :
2018-09-18 14:09:48 +00: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
2021-09-04 23:27:46 +00:00
example : 1609480800
2018-09-18 14:09:48 +00:00
type : object
2018-12-22 17:27:41 +00:00
Api_Time :
2018-09-18 14:09:48 +00:00
properties :
timestamp :
description : 'The current UNIX timestamp'
type : integer
example : 1497652397
2020-10-09 21:31:48 +00:00
utc_datetime :
2018-09-18 14:09:48 +00:00
type : string
example : '2017-06-16 10:33:17'
2020-10-09 21:31:48 +00:00
utc_date :
2018-09-18 14:09:48 +00:00
type : string
example : 'June 16, 2017'
2020-10-09 21:31:48 +00:00
utc_time :
2018-09-18 14:09:48 +00:00
type : string
example : '10:33pm'
2020-10-09 21:31:48 +00:00
utc_json :
2018-09-18 14:09:48 +00:00
type : string
2020-10-09 21:31:48 +00:00
example : '2012-12-25T16:30:00.000000Z'
2018-09-18 14:09:48 +00:00
type : object
2020-12-01 13:45:01 +00:00
HasLinks :
properties :
links :
type : array
items :
type : string
example : 'http://localhost/api/stations/1/queue/1'
type : object
2019-04-24 13:58:04 +00:00
Api_UploadFile :
properties :
path :
2021-12-12 11:01:53 +00:00
description : 'The destination path of the uploaded file.'
2019-04-24 13:58:04 +00:00
type : string
example : relative/path/to/file.mp3
file :
2021-12-12 11:01:53 +00:00
description : 'The base64-encoded contents of the file to upload.'
2019-04-24 13:58:04 +00:00
type : string
example : ''
type : object
2019-01-29 22:32:32 +00:00
CustomField :
type : object
2021-05-30 18:55:26 +00:00
allOf :
-
properties :
name :
type : string
short_name :
description : 'The programmatic name for the field. Can be auto-generated from the full name.'
type : string
auto_assign :
description : 'An ID3v2 field to automatically assign to this value, if it exists in the media file.'
type : string
2021-12-12 11:01:53 +00:00
nullable : true
-
$ref : '#/components/schemas/HasAutoIncrementId'
2019-07-28 03:07:11 +00:00
Relay :
type : object
2021-05-30 18:55:26 +00:00
allOf :
-
properties :
base_url :
type : string
2021-06-15 23:29:25 +00:00
example : 'https://custom-url.example.com'
2021-05-30 18:55:26 +00:00
name :
type : string
example : Relay
2021-12-12 11:01:53 +00:00
nullable : true
2021-05-30 18:55:26 +00:00
is_visible_on_public_pages :
type : boolean
example : true
created_at :
type : integer
2021-09-04 23:27:46 +00:00
example : 1609480800
2021-05-30 18:55:26 +00:00
updated_at :
type : integer
2021-09-04 23:27:46 +00:00
example : 1609480800
2021-12-12 11:01:53 +00:00
-
$ref : '#/components/schemas/HasAutoIncrementId'
2019-01-05 12:02:49 +00:00
Role :
type : object
2021-05-30 18:55:26 +00:00
allOf :
-
properties :
name :
type : string
example : 'Super Administrator'
permissions :
type : array
items : { }
2021-12-12 11:01:53 +00:00
-
$ref : '#/components/schemas/HasAutoIncrementId'
2020-12-04 15:12:10 +00:00
Settings :
properties :
2021-04-26 11:36:24 +00:00
app_unique_identifier :
2021-05-30 18:55:26 +00:00
type : string
2021-04-26 11:36:24 +00:00
base_url :
description : 'Site Base URL'
2020-12-04 15:12:10 +00:00
type : string
example : 'https://your.azuracast.site'
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
instance_name :
2021-04-26 11:36:24 +00:00
description : 'AzuraCast Instance Name'
2020-12-04 15:12:10 +00:00
type : string
example : 'My AzuraCast Instance'
2021-12-12 11:01:53 +00:00
nullable : true
2021-04-26 11:36:24 +00:00
prefer_browser_url :
description : 'Prefer Browser URL (If Available)'
2020-12-04 15:12:10 +00:00
type : boolean
example : 'false'
2021-04-26 11:36:24 +00:00
use_radio_proxy :
description : 'Use Web Proxy for Radio'
2020-12-04 15:12:10 +00:00
type : boolean
example : 'false'
2021-04-26 11:36:24 +00:00
history_keep_days :
description : 'Days of Playback History to Keep'
2020-12-04 15:12:10 +00:00
type : integer
2021-04-26 11:36:24 +00:00
always_use_ssl :
description : 'Always Use HTTPS'
2020-12-04 15:12:10 +00:00
type : boolean
example : 'false'
2021-04-26 11:36:24 +00:00
api_access_control :
2021-05-30 18:55:26 +00:00
description : 'API ' 'Access-Control-Allow-Origin' ' header'
2020-12-04 15:12:10 +00:00
type : string
example : '*'
2021-12-12 11:01:53 +00:00
nullable : true
2021-04-26 11:36:24 +00:00
enable_websockets :
description : 'Whether to use Websockets for Now Playing data updates.'
2020-12-04 15:12:10 +00:00
type : boolean
example : 'false'
analytics :
description : 'Listener Analytics Collection'
type : string
2021-12-12 11:01:53 +00:00
nullable : true
2021-04-26 11:36:24 +00:00
check_for_updates :
description : 'Check for Updates and Announcements'
2020-12-04 15:12:10 +00:00
type : boolean
example : 'true'
2021-04-26 11:36:24 +00:00
update_results :
2020-12-04 15:12:10 +00:00
description : 'Results of the latest update check.'
2021-12-12 11:01:53 +00:00
type : array
items : { }
2020-12-04 15:12:10 +00:00
example : ''
2021-12-12 11:01:53 +00:00
nullable : true
2021-04-26 11:36:24 +00:00
update_last_run :
description : 'The UNIX timestamp when updates were last checked.'
2020-12-04 15:12:10 +00:00
type : integer
2021-09-04 23:27:46 +00:00
example : 1609480800
2021-04-26 11:36:24 +00:00
public_theme :
description : 'Base Theme for Public Pages'
2020-12-04 15:12:10 +00:00
type : string
example : light
2021-12-12 11:01:53 +00:00
nullable : true
2021-04-26 11:36:24 +00:00
hide_album_art :
description : 'Hide Album Art on Public Pages'
2020-12-04 15:12:10 +00:00
type : boolean
example : 'false'
2021-04-26 11:36:24 +00:00
homepage_redirect_url :
description : 'Homepage Redirect URL'
2020-12-04 15:12:10 +00:00
type : string
example : 'https://example.com/'
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
default_album_art_url :
2021-04-26 11:36:24 +00:00
description : 'Default Album Art URL'
2020-12-04 15:12:10 +00:00
type : string
example : 'https://example.com/image.jpg'
2021-12-12 11:01:53 +00:00
nullable : true
2021-04-26 11:36:24 +00:00
use_external_album_art_when_processing_media :
description : 'Attempt to fetch album art from external sources when processing media.'
2021-01-28 00:20:05 +00:00
type : boolean
example : 'false'
2021-04-26 11:36:24 +00:00
use_external_album_art_in_apis :
description : 'Attempt to fetch album art from external sources in API requests.'
2021-01-28 00:20:05 +00:00
type : boolean
example : 'false'
2021-04-26 11:36:24 +00:00
last_fm_api_key :
description : 'An API key to connect to Last.fm services, if provided.'
2021-01-28 00:20:05 +00:00
type : string
example : SAMPLE-API-KEY
2021-12-12 11:01:53 +00:00
nullable : true
2021-04-26 11:36:24 +00:00
hide_product_name :
description : 'Hide AzuraCast Branding on Public Pages'
2020-12-04 15:12:10 +00:00
type : boolean
example : 'false'
2021-04-26 11:36:24 +00:00
public_custom_css :
description : 'Custom CSS for Public Pages'
2020-12-04 15:12:10 +00:00
type : string
example : ''
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
public_custom_js :
2021-04-26 11:36:24 +00:00
description : 'Custom JS for Public Pages'
2020-12-04 15:12:10 +00:00
type : string
example : ''
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
internal_custom_css :
2021-04-26 11:36:24 +00:00
description : 'Custom CSS for Internal Pages'
2020-12-04 15:12:10 +00:00
type : string
example : ''
2021-12-12 11:01:53 +00:00
nullable : true
2021-04-26 11:36:24 +00:00
backup_enabled :
description : 'Whether backup is enabled.'
2020-12-04 15:12:10 +00:00
type : boolean
example : 'false'
2021-04-26 11:36:24 +00:00
backup_time_code :
description : 'The timecode (i.e. 400 for 4:00AM) when automated backups should run.'
2020-12-07 18:17:00 +00:00
type : string
2020-12-04 15:12:10 +00:00
example : 400
2021-12-12 11:01:53 +00:00
nullable : true
2021-04-26 11:36:24 +00:00
backup_exclude_media :
description : 'Whether to exclude media in automated backups.'
2020-12-04 15:12:10 +00:00
type : boolean
example : 'false'
2021-04-26 11:36:24 +00:00
backup_keep_copies :
description : 'Number of backups to keep, or infinite if zero/null.'
2020-12-04 15:12:10 +00:00
type : integer
example : 2
2021-04-26 11:36:24 +00:00
backup_storage_location :
description : 'The storage location ID for automated backups.'
2020-12-04 15:12:10 +00:00
type : integer
example : 1
2021-12-12 11:01:53 +00:00
nullable : true
2021-04-26 11:36:24 +00:00
backup_last_run :
description : 'The UNIX timestamp when automated backup was last run.'
2020-12-04 15:12:10 +00:00
type : integer
2021-09-04 23:27:46 +00:00
example : 1609480800
2021-04-26 11:36:24 +00:00
backup_last_output :
description : 'The output of the latest automated backup task.'
2020-12-04 15:12:10 +00:00
type : string
example : ''
2021-12-12 11:01:53 +00:00
nullable : true
2021-04-26 11:36:24 +00:00
setup_complete_time :
description : 'The UNIX timestamp when setup was last completed.'
2020-12-04 15:12:10 +00:00
type : integer
2021-09-04 23:27:46 +00:00
example : 1609480800
2020-12-04 15:12:10 +00:00
nowplaying :
description : 'The current cached now playing data.'
2021-12-12 11:01:53 +00:00
type : array
items : { }
2020-12-04 15:12:10 +00:00
example : ''
2021-12-12 11:01:53 +00:00
nullable : true
2021-04-26 11:36:24 +00:00
sync_nowplaying_last_run :
description : 'The UNIX timestamp when the now playing sync task was last run.'
2020-12-04 15:12:10 +00:00
type : integer
2021-09-04 23:27:46 +00:00
example : 1609480800
2021-04-26 11:36:24 +00:00
sync_short_last_run :
2021-05-30 18:55:26 +00:00
description : 'The UNIX timestamp when the 60-second ' 'short' ' sync task was last run.'
2020-12-04 15:12:10 +00:00
type : integer
2021-09-04 23:27:46 +00:00
example : 1609480800
2021-04-26 11:36:24 +00:00
sync_medium_last_run :
2021-05-30 18:55:26 +00:00
description : 'The UNIX timestamp when the 5-minute ' 'medium' ' sync task was last run.'
2020-12-04 15:12:10 +00:00
type : integer
2021-09-04 23:27:46 +00:00
example : 1609480800
2021-04-26 11:36:24 +00:00
sync_long_last_run :
2021-05-30 18:55:26 +00:00
description : 'The UNIX timestamp when the 1-hour ' 'long' ' sync task was last run.'
2020-12-04 15:12:10 +00:00
type : integer
2021-09-04 23:27:46 +00:00
example : 1609480800
2021-04-26 11:36:24 +00:00
external_ip :
description : 'This installation' 's external IP.'
2020-12-04 15:12:10 +00:00
type : string
example : 192.168 .1 .1
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
geolite_license_key :
2021-04-26 11:36:24 +00:00
description : 'The license key for the Maxmind Geolite download.'
2020-12-04 15:12:10 +00:00
type : string
example : ''
2021-12-12 11:01:53 +00:00
nullable : true
2021-04-26 11:36:24 +00:00
geolite_last_run :
description : 'The UNIX timestamp when the Maxmind Geolite was last downloaded.'
2020-12-04 15:12:10 +00:00
type : integer
2021-09-04 23:27:46 +00:00
example : 1609480800
2021-05-25 04:29:07 +00:00
enable_advanced_features :
2021-05-30 18:55:26 +00:00
description : 'Whether to enable ' 'advanced' ' functionality in the system that is intended for power users.'
2021-02-20 02:43:54 +00:00
type : boolean
example : false
2021-04-26 11:36:24 +00:00
mail_enabled :
description : 'Enable e-mail delivery across the application.'
2021-03-09 08:49:16 +00:00
type : boolean
example : 'true'
2021-04-26 11:36:24 +00:00
mail_sender_name :
description : 'The name of the sender of system e-mails.'
2021-03-09 08:49:16 +00:00
type : string
example : AzuraCast
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
mail_sender_email :
2021-04-26 11:36:24 +00:00
description : 'The e-mail address of the sender of system e-mails.'
2021-03-09 08:49:16 +00:00
type : string
example : example@example.com
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
mail_smtp_host :
2021-04-26 11:36:24 +00:00
description : 'The host to send outbound SMTP mail.'
2021-03-09 08:49:16 +00:00
type : string
example : smtp.example.com
2021-12-12 11:01:53 +00:00
nullable : true
2021-04-26 11:36:24 +00:00
mail_smtp_port :
description : 'The port for sending outbound SMTP mail.'
2021-03-09 08:49:16 +00:00
type : integer
example : 465
2021-04-26 11:36:24 +00:00
mail_smtp_username :
description : 'The username when connecting to SMTP mail.'
2021-03-09 08:49:16 +00:00
type : string
example : username
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
mail_smtp_password :
2021-04-26 11:36:24 +00:00
description : 'The password when connecting to SMTP mail.'
2021-03-09 08:49:16 +00:00
type : string
example : password
2021-12-12 11:01:53 +00:00
nullable : true
2021-04-26 11:36:24 +00:00
mail_smtp_secure :
description : 'Whether to use a secure (TLS) connection when sending SMTP mail.'
2021-03-09 08:49:16 +00:00
type : boolean
example : 'true'
2021-04-26 11:36:24 +00:00
avatar_service :
description : 'The external avatar service to use when fetching avatars.'
2021-04-14 20:28:27 +00:00
type : string
example : libravatar
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
avatar_default_url :
2021-04-26 11:36:24 +00:00
description : 'The default avatar URL.'
2021-04-14 20:28:27 +00:00
type : string
example : ''
2021-12-12 11:01:53 +00:00
nullable : true
2020-12-04 15:12:10 +00:00
type : object
2021-12-12 11:01:53 +00:00
SftpUser :
2018-12-22 17:27:41 +00:00
type : object
2021-05-30 18:55:26 +00:00
allOf :
2021-12-12 11:01:53 +00:00
-
properties :
username :
type : string
password :
type : string
publicKeys :
type : string
nullable : true
2021-05-30 18:55:26 +00:00
-
$ref : '#/components/schemas/HasAutoIncrementId'
2021-12-12 11:01:53 +00:00
Station :
type : object
allOf :
2021-05-30 18:55:26 +00:00
-
properties :
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
2021-12-12 11:01:53 +00:00
nullable : true
2021-05-30 18:55:26 +00:00
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
2021-12-12 11:01:53 +00:00
nullable : true
2021-05-30 18:55:26 +00:00
backend_config :
description : 'An array containing station-specific backend configuration'
type : array
items : { }
description :
type : string
example : 'A sample radio station.'
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
url :
2021-05-30 18:55:26 +00:00
type : string
example : 'https://demo.azuracast.com/'
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
genre :
2021-05-30 18:55:26 +00:00
type : string
example : Various
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
radio_base_dir :
2021-05-30 18:55:26 +00:00
type : string
example : /var/azuracast/stations/azuratest_radio
2021-12-12 11:01:53 +00:00
nullable : true
2021-05-30 18:55:26 +00:00
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
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
request_threshold :
2021-05-30 18:55:26 +00:00
type : integer
example : 15
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
disconnect_deactivate_streamer :
2021-05-30 18:55:26 +00:00
type : integer
example : 0
2021-12-12 11:01:53 +00:00
nullable : true
2021-05-30 18:55:26 +00:00
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
enable_on_demand :
description : 'Whether this station has a public ' 'on-demand' ' streaming and download page.'
type : boolean
example : true
enable_on_demand_download :
description : 'Whether the ' 'on-demand' ' page offers download capability.'
type : boolean
example : true
api_history_items :
description : 'The number of ' 'last played' ' history items to show for a station in API responses.'
type : integer
example : 5
timezone :
description : 'The time zone that station operations should take place in.'
type : string
example : UTC
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
default_album_art_url :
2021-05-30 18:55:26 +00:00
description : 'The station-specific default album artwork URL.'
type : string
example : 'https://example.com/image.jpg'
2021-12-12 11:01:53 +00:00
nullable : true
-
$ref : '#/components/schemas/HasAutoIncrementId'
2019-04-24 13:58:04 +00:00
StationMedia :
type : object
2020-12-01 13:45:01 +00:00
allOf :
-
properties :
2021-05-30 18:55:26 +00:00
unique_id :
description : 'A unique identifier associated with this record.'
type : string
example : 69b536afc7ebbf16457b8645
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
album :
2020-12-01 13:45:01 +00:00
description : 'The name of the media file' 's album.'
type : string
example : 'Test Album'
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
genre :
2020-12-01 13:45:01 +00:00
description : 'The genre of the media file.'
type : string
example : Rock
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
lyrics :
2020-12-01 13:45:01 +00:00
description : 'Full lyrics of the track, if available.'
type : string
example : '...Never gonna give you up...'
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
isrc :
2020-12-01 13:45:01 +00:00
description : 'The track ISRC (International Standard Recording Code), used for licensing purposes.'
type : string
example : GBARL0600786
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
length :
2020-12-01 13:45:01 +00:00
description : 'The song duration in seconds.'
type : number
format : float
example : 240
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
length_text :
2020-12-01 13:45:01 +00:00
description : 'The formatted song duration (in mm:ss format)'
type : string
example : '4:00'
2021-12-12 11:01:53 +00:00
nullable : true
2020-12-01 13:45:01 +00: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
2021-09-04 23:27:46 +00:00
example : 1609480800
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
amplify :
2021-05-30 18:55:26 +00:00
description : 'The amount of amplification (in dB) to be applied to the radio source (liq_amplify)'
2020-12-01 13:45:01 +00:00
type : number
format : float
example : -14
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
fade_overlap :
2021-05-30 18:55:26 +00:00
description : 'The length of time (in seconds) before the next song starts in the fade (liq_start_next)'
2020-12-01 13:45:01 +00:00
type : number
format : float
example : 2
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
fade_in :
2021-05-30 18:55:26 +00:00
description : 'The length of time (in seconds) to fade in the next track (liq_fade_in)'
2020-12-01 13:45:01 +00:00
type : number
format : float
example : 3
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
fade_out :
2021-05-30 18:55:26 +00:00
description : 'The length of time (in seconds) to fade out the previous track (liq_fade_out)'
2020-12-01 13:45:01 +00:00
type : number
format : float
example : 3
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
cue_in :
2021-05-30 18:55:26 +00:00
description : 'The length of time (in seconds) from the start of the track to start playing (liq_cue_in)'
2020-12-01 13:45:01 +00:00
type : number
format : float
example : 30
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
cue_out :
2021-05-30 18:55:26 +00:00
description : 'The length of time (in seconds) from the CUE-IN of the track to stop playing (liq_cue_out)'
2020-12-01 13:45:01 +00:00
type : number
format : float
example : 30
2021-12-12 11:01:53 +00:00
nullable : true
2020-12-01 13:45:01 +00:00
art_updated_at :
description : 'The latest time (UNIX timestamp) when album art was updated.'
type : integer
2021-09-04 23:27:46 +00:00
example : 1609480800
2020-12-01 13:45:01 +00:00
playlists :
2021-05-30 18:55:26 +00:00
type : array
2020-12-01 13:45:01 +00:00
items : { }
2021-12-12 11:01:53 +00:00
-
$ref : '#/components/schemas/HasAutoIncrementId'
-
$ref : '#/components/schemas/HasSongFields'
2019-04-10 04:46:51 +00:00
StationMount :
type : object
2021-05-30 18:55:26 +00:00
allOf :
-
properties :
name :
type : string
example : /radio.mp3
display_name :
type : string
example : '128kbps MP3'
2021-12-12 11:01:53 +00:00
nullable : true
2021-05-30 18:55:26 +00:00
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
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
relay_url :
2021-05-30 18:55:26 +00:00
type : string
2021-06-15 23:29:25 +00:00
example : 'https://radio.example.com:8000/radio.mp3'
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
authhash :
2021-05-30 18:55:26 +00:00
type : string
example : ''
2021-12-12 11:01:53 +00:00
nullable : true
2021-06-29 01:03:59 +00:00
max_listener_duration :
type : integer
example : 43200
2021-05-30 18:55:26 +00:00
enable_autodj :
type : boolean
example : true
autodj_format :
type : string
example : mp3
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
autodj_bitrate :
2021-05-30 18:55:26 +00:00
type : integer
example : 128
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
custom_listen_url :
2021-05-30 18:55:26 +00:00
type : string
example : 'https://custom-listen-url.example.com/stream.mp3'
2021-12-12 11:01:53 +00:00
nullable : true
2021-05-30 18:55:26 +00:00
frontend_config :
type : array
items : { }
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
2021-12-12 11:01:53 +00:00
-
$ref : '#/components/schemas/HasAutoIncrementId'
2021-05-30 18:55:26 +00:00
StationPlaylist :
2019-11-21 02:06:38 +00:00
type : object
2021-05-30 18:55:26 +00:00
allOf :
-
properties :
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
2021-06-15 23:29:25 +00:00
example : 'https://remote-url.example.com/stream.mp3'
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
remote_type :
2021-05-30 18:55:26 +00:00
type : string
example : stream
2021-12-12 11:01:53 +00:00
nullable : true
2021-05-30 18:55:26 +00:00
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
weight :
type : integer
example : 3
include_in_requests :
type : boolean
example : true
include_in_on_demand :
description : 'Whether this playlist' 's media is included in ' 'on demand' ' download/streaming if enabled.'
type : boolean
example : true
include_in_automation :
type : boolean
example : false
backend_options :
type : string
example : 'interrupt,loop_once,single_track,merge'
2021-12-12 11:01:53 +00:00
nullable : true
2021-05-30 18:55:26 +00:00
avoid_duplicates :
type : boolean
example : true
schedule_items :
type : array
items : { }
2021-12-12 11:01:53 +00:00
-
$ref : '#/components/schemas/HasAutoIncrementId'
2020-02-19 15:05:15 +00:00
StationSchedule :
type : object
2021-05-30 18:55:26 +00:00
allOf :
-
properties :
start_time :
type : integer
example : 900
end_time :
type : integer
example : 2200
days :
description : 'Array of ISO-8601 days (1 for Monday, 7 for Sunday)'
type : string
example : '0,1,2,3'
2021-12-12 11:01:53 +00:00
nullable : true
2021-08-05 03:50:32 +00:00
loop_once :
type : boolean
example : false
2021-12-12 11:01:53 +00:00
-
$ref : '#/components/schemas/HasAutoIncrementId'
2019-04-07 08:40:55 +00:00
StationStreamer :
2021-05-30 18:55:26 +00:00
description : 'Station streamers (DJ accounts) allowed to broadcast to a station.'
2020-02-19 15:05:15 +00:00
type : object
2021-05-30 18:55:26 +00:00
allOf :
-
properties :
streamer_username :
type : string
example : dj_test
streamer_password :
type : string
example : ''
display_name :
type : string
example : 'Test DJ'
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
comments :
2021-05-30 18:55:26 +00:00
type : string
example : 'This is a test DJ account.'
2021-12-12 11:01:53 +00:00
nullable : true
2021-05-30 18:55:26 +00:00
is_active :
type : boolean
example : true
enforce_schedule :
type : boolean
example : false
reactivate_at :
2021-06-29 01:03:59 +00:00
type : integer
2021-09-04 23:27:46 +00:00
example : 1609480800
2021-12-12 11:01:53 +00:00
nullable : true
2021-05-30 18:55:26 +00:00
schedule_items :
type : array
items : { }
2021-12-12 11:01:53 +00:00
-
$ref : '#/components/schemas/HasAutoIncrementId'
2020-02-19 15:05:15 +00:00
StationStreamerBroadcast :
2021-05-30 18:55:26 +00:00
description : 'Each individual broadcast associated with a streamer.'
2019-04-14 22:12:49 +00:00
type : object
2021-05-30 18:55:26 +00:00
allOf :
-
$ref : '#/components/schemas/HasAutoIncrementId'
2019-04-14 22:12:49 +00:00
StationWebhook :
2021-05-30 18:55:26 +00:00
type : object
allOf :
-
properties :
name :
description : 'The nickname of the webhook connector.'
type : string
example : 'Twitter Post'
2021-12-12 11:01:53 +00:00
nullable : true
2021-05-30 18:55:26 +00:00
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 : { }
2021-12-12 11:01:53 +00:00
-
$ref : '#/components/schemas/HasAutoIncrementId'
2021-05-30 18:55:26 +00:00
HasAutoIncrementId :
2019-04-14 22:12:49 +00:00
properties :
id :
2021-06-29 01:03:59 +00:00
type : integer
2021-12-12 11:01:53 +00:00
nullable : true
2021-06-15 23:29:25 +00:00
type : object
HasSongFields :
properties :
song_id :
type : string
text :
type : string
nullable : true
2021-12-12 11:01:53 +00:00
artist :
2021-06-15 23:29:25 +00:00
type : string
nullable : true
2021-12-12 11:01:53 +00:00
title :
2021-06-29 01:03:59 +00:00
type : string
2021-12-12 11:01:53 +00:00
nullable : true
2019-04-07 08:40:55 +00:00
type : object
2021-05-30 18:55:26 +00:00
HasUniqueId :
2019-04-24 13:58:04 +00:00
properties :
2021-05-30 18:55:26 +00:00
id :
2021-06-29 01:03:59 +00:00
type : string
2021-12-12 11:01:53 +00:00
nullable : true
2019-04-24 13:58:04 +00:00
type : object
2018-12-22 17:27:41 +00:00
User :
type : object
2021-05-30 18:55:26 +00:00
allOf :
-
properties :
email :
type : string
example : demo@azuracast.com
new_password :
type : string
example : ''
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
name :
2021-05-30 18:55:26 +00:00
type : string
example : 'Demo Account'
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
locale :
2021-05-30 18:55:26 +00:00
type : string
example : en_US
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
theme :
2021-05-30 18:55:26 +00:00
type : string
example : dark
2021-06-29 01:03:59 +00:00
nullable : true
2021-12-12 11:01:53 +00:00
two_factor_secret :
2021-05-30 18:55:26 +00:00
type : string
example : A1B2C3D4
2021-12-12 11:01:53 +00:00
nullable : true
2021-05-30 18:55:26 +00:00
created_at :
type : integer
2021-09-04 23:27:46 +00:00
example : 1609480800
2021-05-30 18:55:26 +00:00
updated_at :
type : integer
2021-09-04 23:27:46 +00:00
example : 1609480800
2021-05-30 18:55:26 +00:00
roles :
type : array
items : { }
2021-12-12 11:01:53 +00:00
-
$ref : '#/components/schemas/HasAutoIncrementId'
2018-09-18 14:09:48 +00:00
responses :
todo :
description : 'This API call has no documented response (yet)'
parameters :
station_id_required :
2021-12-12 11:01:53 +00:00
name : station_id_required
2018-09-18 14:09:48 +00:00
in : path
required : true
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-14 22:12:49 +00:00
-
name: 'Stations : Service Control'
2019-01-29 22:32:32 +00:00
-
name: 'Stations : History'
2018-09-18 14:09:48 +00:00
-
name: 'Stations : Listeners'
2020-02-19 15:05:15 +00:00
-
name: 'Stations : Schedules'
2019-01-03 10:59:44 +00:00
-
name: 'Stations : Media'
2019-04-14 22:12:49 +00:00
-
name: 'Stations : Mount Points'
-
name: 'Stations : Playlists'
2021-05-25 04:29:07 +00:00
-
name: 'Stations : Podcasts'
2019-01-03 10:59:44 +00:00
-
name: 'Stations : Queue'
2019-04-14 22:12:49 +00:00
-
name: 'Stations : Remote Relays'
2021-12-12 11:01:53 +00:00
-
name: 'Stations : SFTP Users'
2019-04-07 08:40:55 +00:00
-
name: 'Stations : Streamers/DJs'
2019-01-03 10:59:44 +00:00
-
2019-04-14 22:12:49 +00:00
name: 'Stations : Web Hooks'
2019-01-29 22:32:32 +00:00
-
name: 'Administration : Custom Fields'
2019-01-03 10:59:44 +00:00
-
name: 'Administration : Users'
2019-07-10 17:45:54 +00:00
-
name: 'Administration : Relays'
2019-01-05 12:02:49 +00:00
-
name: 'Administration : Roles'
2019-01-06 08:57:09 +00:00
-
name: 'Administration : Settings'
2019-04-08 05:09:53 +00:00
-
name: 'Administration : Stations'
2020-12-01 13:45:01 +00:00
-
name: 'Administration : Storage Locations'
2019-01-03 10:59:44 +00:00
-
name : Miscellaneous
2018-09-18 14:09:48 +00:00
externalDocs :
description : 'AzuraCast on GitHub'
url : 'https://github.com/AzuraCast/AzuraCast'