Documentação de Autenticação e Conta - Superaudio Play
Endpoints de autenticação, cadastro e gerenciamento de conta de usuários Controla/RadioStore
(ManagerClientsController e StoreClientsController), além de endereços (AddressController) e
dados públicos de rádios (RDS e playlists via RadioPlayWebController) usados pelo Superaudio Play.
Esta API não utiliza o código
401 (Unauthorized). Falhas de autenticação/autorização
retornam
403 (Forbidden).
400 - Bad Request (parâmetros obrigatórios ausentes ou inválidos)
{
"status": "error",
"message": "É necessário informar social_app_id ou password."
}
403 - Forbidden (credenciais inválidas ou token de autenticação ausente/inválido)
{
"status": "error",
"message": "Sua senha ou seu e-mail não conferem."
}
404 - Not Found (recurso não encontrado, ex: perfil de acesso ou cliente inexistente)
{
"status": "error",
"message": "Perfil de acesso inválido"
}
500 - Internal Server Error (erro inesperado no servidor)
{
"status": "error",
"message": "Ocorreu um erro inesperado. Tente novamente mais tarde."
}
Conta / Autenticação (RadioStore)
POST
/radio-store/manager-clients/authorize-client-id
Fazer login
Autentica por e-mail/senha ou, alternativamente, por login social (social_app_id + email).
Parâmetros POST
| emailobrigatório | E-mail do usuário. |
| password | Senha do usuário (obrigatório quando social_app_id não for informado). |
| social_app_id | ID do provedor de login social (alternativa ao password, para login via redes sociais). |
Em caso de sucesso, a resposta também inclui api_token (JWT) e api_token_expires_in.
POST
/radio-store/manager-clients/client-logout
Fazer logout
Headers
| Authorizationobrigatório | Token do usuário autenticado. |
Exemplo
axios
.post(url, {}, {
headers: {
Authorization: 'Bearer ' + token,
}
});
GET
/radio-store/manager-clients/get-client-logged
Buscar usuário logado
Headers
| Authorizationobrigatório | Token do usuário autenticado. |
Exemplo
axios
.get(url, {
headers: {
Authorization: 'Bearer ' + token,
}
});
POST
/radio-store/store-clients/ajax-recovery-account
Recuperar conta (gerar nova senha)
Uma nova senha será gerada e enviada para o email especificado.
Parâmetros POST
| emailobrigatório | E-mail do usuário. |
| request_from | Origem do cadastro. Options: Web, App, VirtualAudioCard. Default: Web. |
| company_id | ID da companhia que esta sendo requisitada a recuperação de senha. |
Exemplo
axios
.post(url, {
email: 'exemplo@gmail.com',
request_from: 'App',
company_id: 50
});
POST
/radio-store/manager-clients/register-client
Registrar ouvinte
Parâmetros POST
| user_typeobrigatório | Tipo de cadastro. Options: Listener, Radio. |
| social_app_id | ID do provedor de login social (opcional, para cadastro via redes sociais). |
| location[country_id] | País. |
| location[state] | UF estado. |
| location[city_id] | Cidade. |
| location[city_name] | Nome cidade (apenas quando o país não for Brasil). |
| location[state_name] | Nome da cidade (apenas quando o país não for Brasil). |
| location[district] | Bairro. |
| location[phone_1] | Telefone. |
| name_fantasyobrigatório | Nome do usuário. |
| name_corporateobrigatório | Nome do usuário (passar o mesmo name_fantasy). |
| emailobrigatório | E-mail do usuário. |
| passwordobrigatório | Senha do usuário. |
| confirm_passwordobrigatório | Senha do usuário. |
| registered_by | ID da companhia. Registrar ouvinte para uma companhia. |
| request_from | Origem do cadastro. Options: Web, App, VirtualAudioCard. Default: Web. |
| accessProfiles | Códigos de perfil de acesso (enviar como array). |
| file | Foto do ouvinte (opcional). |
Quando request_from for "App" e user_type for "Listener", os campos de
localização acima (telefone, cidade, bairro, estado) tornam-se opcionais.
accessProfiles
Após a confirmação do cadastro, será gerada uma solicitação para que o gestor da
companhia aprove a entrada do usuário no perfil de acesso, caso a aprovação automática
não esteja habilitada. Enviar os códigos como array:
let formData = new FormData();
accessProfileCodes.forEach(item => {
formData.append('accessProfiles[]', item.code);
});
POST
/radio-store/manager-clients/update-client-logged
Editar cadastro de ouvinte
Parâmetros POST
| name_fantasy | Nome do usuário. |
| name_corporate | Nome do usuário (passar o mesmo name_fantasy). |
| email | E-mail do usuário. |
| location[phone_1] | Telefone. |
| location[country_id] | País. |
| location[state] | UF estado. |
| location[city_id] | Cidade. |
| location[city_name] | Nome cidade (apenas quando o país não for Brasil). |
| location[state_name] | Nome da cidade (apenas quando o país não for Brasil). |
| location[district] | Bairro. |
| file | Foto do ouvinte (opcional). |
POST
/radio-store/manager-clients/delete-account-client-logged
Encerrar conta
Headers
| Authorizationobrigatório | Token do usuário autenticado. |
Exemplo
axios
.post(url, {}, {
headers: {
Authorization: 'Bearer ' + token,
}
});
GET
/radio-store/manager-clients/check-access-profile-is-valid?code=startradios-podcasts
Verificar se um perfil de acesso é válido
Parâmetros GET (querystring)
| codeobrigatório | Código do perfil de acesso. |
GET
/radio-store/store-clients/configs-superaudio
Buscar Configs do SuperAudio (banners, termos de uso, contatos, configs do play e mais)
Nenhum parâmetro obrigatório.
POST
/radio-store/manager-clients/set-favorite-content-client-logged
Favoritar conteúdo
Headers
| Authorizationobrigatório | Token do usuário autenticado. |
Parâmetros POST
| foreign_key | ID do conteúdo. |
| model |
Model para identificar o tipo de conteúdo sendo alterado. Options: MediasTypes
(Podcast), Clients (Rádio de cliente), Branchs (Rádio de companhia, mas ainda não
funciona), Collections (Coleção).
|
| remove_favorite | Parâmetro boolean que define se é para adicionar ou remover favorito. |
| change_receive_notifications | Parâmetro boolean que define se deve alterar de receive_notifications. |
| receive_notifications | Parâmetro boolean que define se o usuário receberá notificações do conteúdo favoritado. |
| company_id | ID da companhia (opcional). Restringe o favorito ao contexto de uma companhia específica. |
Exemplo
let podcastModel = 'MediasTypes',
requestData = {
foreign_key: podcastId,
model: podcastModel,
remove_favorite: false
},
requestOptions = {
headers: {
Authorization: 'Bearer ' + token,
}
};
axios.post(url, requestData, requestOptions);
Endereços (AddressController)
GET
/api/address/request-countries/:publicKey
Buscar países
Parâmetros GET
| publicKeyobrigatório | Chave pública fornecida pela Superaudio. Requisições sem a chave correta retornam 403. |
GET
/api/address/request-states/:publicKey/
Buscar estados
Parâmetros GET
| publicKeyobrigatório | Chave pública fornecida pela Superaudio. Requisições sem a chave correta retornam 403. |
Retorna apenas estados do Brasil.
GET
/api/address/request-cities/:publicKey/:uf
Buscar cidades
Parâmetros GET
| publicKeyobrigatório | Chave pública fornecida pela Superaudio. Requisições sem a chave correta retornam 403. |
| ufobrigatório | UF do estado retornado no endpoint de estados. |
RDS / RadioPlay Web (RadioPlayWebController)
GET
/api/radio/:slug/rds
Buscar informações públicas de RDS de uma rádio
Parâmetros GET
| slugobrigatório | Slug / ID Único de identificação da rádio. |
| m |
Parâmetro de query opcional (?m=clients|branchs) que determina se deve
buscar o rádio de companhia (branchs) ou o rádio de cliente (clients). Se não for
especificado, "branchs" será considerado como padrão.
|
GET
/api/radio-play/web/playlists/:branch/
Buscar playlists de uma rádio
Parâmetros GET
| branchobrigatório | ID da rádio (branch). |
GET
/api/radio-play/web/playlist/:branch/:date | /api/radio-play/web/playlist/:id/
Buscar uma playlist de uma rádio
Aceita duas formas: por rádio + data, ou diretamente pelo ID da playlist.
Parâmetros GET
| branch | ID da rádio (branch). Obrigatório quando id não for informado. |
| date | Data da playlist. Obrigatório quando id não for informado. |
| id | ID da playlist. Alternativa a branch + date. |