Documentação do app desktop Placa Virtual
GET /radio-store/virtual-sound-card/get-radios Buscar rádios disponíveis para o usuário autenticado
Retorna a lista de rádios (branches) disponíveis para o usuário autenticado, com nome fantasia e imagem de capa de cada uma.
Headers
| Authorizationobrigatório | Token do usuário autenticado (Bearer JWT). |
Exemplo
axios
.get('/radio-store/virtual-sound-card/get-radios', {
headers: {
Authorization: 'Bearer ' + token,
}
});
200Sucesso
{
"radios": [
{
"id": 211,
"name_fantasy": "Rádio Exemplo",
"cover": {
"uri": "https://cdn.superaudio.com.br/branchs/211/cover.jpg"
}
}
]
}
403Forbidden
Header Authorization ausente ou token inválido/expirado (usuário não autenticado).
{
"message": "Você não está logado"
}
500Internal Server Error
Erro inesperado ao processar a requisição.
{
"message": "Erro inesperado. Tente novamente mais tarde."
}
POST /radio-store/manager-clients/client-informations Atualizar usuário online / Atualizar o que o cliente ouviu ou está ouvindo
Parâmetros POST (JSON body)
| client[id] | ID do usuário logado |
| audio[branch][id] | ID da rádio |
| audio[client_radio][id] | ID da rádio de cliente que se cadastrou |
| audio[radio_play][id] | ID da rádio cadastrada em Administrador/Radios Online |
| audio[music][id] | ID da música de uma coleção sendo ouvida (deve ser passado o id da coleção no parâmetro abaixo) |
| audio[collection][id] | ID da coleção sendo ouvida (deve ser passado o id da música no parâmetro acima) |
| audio[music_store][id] | ID da música sendo ouvida na plataforma /play |
| audio[version][id] | ID da mídia (versão) do conteúdo sendo escutado |
| audio[event]obrigatório | Tipo de evento (started, listening e finish). started = usuário começou a escutar; listening = usuário está escutando; finish = usuário parou de escutar. |
| audio[listen]obrigatório | Tempo total que o usuário está escutando desde o primeiro play com o evento started (em segundos) |
| modelnão utilizado |
Parâmetro obsoleto/informativo: o back-end NÃO lê este campo. O "model" do conteúdo escutado é inferido automaticamente a partir de qual id de audio[...] foi enviado (branch, client_radio, radio_play, music+collection, music_store ou version). Pode ser omitido com segurança. Branchs = derivado de audio[branch][id] (rádio de companhia) Musics = derivado de audio[music][id] + audio[collection][id] (música de uma coleção) MusicStore = derivado de audio[music_store][id] (música da plataforma /play) RadiosPlay = derivado de audio[radio_play][id] (rádio cadastrada em Administrador/Radios Online) Clients = derivado de audio[client_radio][id] (rádio de cliente que se cadastrou) |
| audio[percentage] (type: int) | Porcentagem que o usuário já ouviu de um conteúdo. (exceto rádios) |
| heardLogConfirmationobrigatório |
Parâmetro que confirma que o usuário escutou o áudio atual. - Primeira chamada enviar como false. - Se o valor for enviado como 'false' e a porcentagem for maior que 10%, o sistema verificará se o cliente já escutou o áudio há 10 minutos atrás. Caso não tenha ouvido, será criado um novo registro e a resposta será 'true'. - Próximas requisições reenviar o valor retornado na anterior. Pelo que entendi até o momento, um novo log só deve ser salvo se tiverem passado mais de 10 minutos desde que o usuário ouviu o áudio atual e se o usuário tiver escutado mais de 10% do conteúdo. OBS: Se for um model de rádios (Branchs, Clients ou RadiosPlay) não é necessário passar porcentagem, pois será forçado 10%. |
| request_from (options: Web, App, VirtualAudioCard) | Origem da requisição |
| company_idnão utilizado | Parâmetro obsoleto/informativo: o back-end NÃO lê este campo. A companhia é identificada automaticamente a partir da rádio/coleção/versão sendo escutada (audio[branch], audio[collection] ou audio[version]). Pode ser omitido com segurança. |
Exemplo simples apenas com parâmetros obrigatórios
axios
.post('/radio-store/manager-clients/client-informations', {
audio: {
branch: {
id: 211
},
event: 'started',
listen: 0
},
client: {
id: 1
},
heardLogConfirmation: false
});
200Sucesso
{
"status": "success",
"client": {
"id": 1,
"validate_access": "2026-07-28T12:34:56+00:00"
},
"listener": {
"id": 55,
"client_id": 1,
"branch_id": 211,
"time_played": 0,
"started": "2026-07-28T12:30:00+00:00",
"finish": null,
"request_from": "VirtualAudioCard"
},
"heardLogConfirmation": true
}
400Bad Request
Parâmetro "client" não enviado, ou "client[id]" não corresponde a um cliente existente.
{
"status": "error",
"message": "Client nao informado."
}
{
"status": "error",
"message": "Cliente informado nao encontrado."
}
500Internal Server Error
Erro inesperado ao processar a requisição.
{
"status": "error",
"message": "Erro inesperado. Tente novamente mais tarde."
}