musicore
api para desenvolvedores
musicore api

Busque no catálogo do Musicore direto da sua aplicação

Uma chave de API só sua, pra fazer buscas de faixas (título, artista, capa, URL de streaming) e usar em qualquer app, bot ou site — sem precisar lidar com scraping nem com a API bruta do audio.com.

Comece agora

Entre com a mesma conta (e-mail/senha) que você usa no app, pra gerar sua chave de API — grátis, na hora.

autenticação

Toda requisição precisa da sua chave no header x-api-key. Não existe autenticação por query string — chaves só no header, pra não ficarem gravadas em logs de acesso ou histórico do navegador. Uma chave é válida enquanto estiver ativada; se você desativar, ela para de funcionar (mas continua a mesma se você reativar depois).

# header obrigatório em toda chamada
x-api-key: mcapi_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
endpoints
GET /api-v1-search GET /api-v1-trending GET /api-v1-usage Erros Rate limit Exemplos de código
GET /.netlify/functions/api-v1-usage não consome cota

Consulta quanto da sua cota mensal já foi usado. Chame isso quando quiser (ex: antes de disparar um lote grande de buscas) sem gastar requisições — só o api-v1-search e o api-v1-trending contam pro limite.

# exemplo com curl
curl "https://musicore.app/.netlify/functions/api-v1-usage" \
  -H "x-api-key: SUA_CHAVE_AQUI"

Resposta 200:

{
  "limit": 2000,
  "used": 137,
  "remaining": 1863,
  "cycleStartedAt": "2026-08-01T12:00:00.000Z",
  "cycleResetsAt": "2026-08-31T12:00:00.000Z",
  "active": true
}
erros

Todo erro vem no formato { "error": "mensagem" }, com um destes códigos HTTP:

códigoquando acontece
400Faltou um parâmetro obrigatório (ex: q no /api-v1-search) ou o corpo da requisição é inválido.
401Faltou o header x-api-key, ou a chave enviada não existe.
403A chave existe mas está desativada. Reative em /developers.html.
405Método HTTP errado — todos os endpoints atuais da API são GET.
429Cota mensal atingida. Confira cycleResetsAt em /api-v1-usage pra saber quando renova.
500Erro interno do Musicore. Se persistir, nos avise.
502O catálogo do audio.com não respondeu (só no /api-v1-search). Tente de novo em alguns segundos.
rate limit & cota

A API grátis do Musicore inclui 2.000 requisições por ciclo de 30 dias (contadas a partir da sua primeira chamada). api-v1-search e api-v1-trending consomem 1 requisição cada; api-v1-usage é de graça. Toda resposta bem-sucedida de endpoint que consome cota traz dois headers pra você acompanhar em tempo real, sem precisar chamar /api-v1-usage à parte:

X-RateLimit-Limit: 2000
X-RateLimit-Remaining: 1863

Ao estourar a cota, toda chamada aos endpoints pagos devolve 429 até o ciclo renovar. Não há throttling por segundo — só o limite mensal.

exemplos de código
# busca
curl "https://musicore.app/.netlify/functions/api-v1-search?q=daft+punk" \
  -H "x-api-key: SUA_CHAVE_AQUI"

# mais tocadas
curl "https://musicore.app/.netlify/functions/api-v1-trending?limit=10" \
  -H "x-api-key: SUA_CHAVE_AQUI"

# uso da cota
curl "https://musicore.app/.netlify/functions/api-v1-usage" \
  -H "x-api-key: SUA_CHAVE_AQUI"
// busca
const res = await fetch(
  'https://musicore.app/.netlify/functions/api-v1-search?q=daft+punk',
  { headers: { 'x-api-key': 'SUA_CHAVE_AQUI' } }
);
if (!res.ok) {
  const err = await res.json();
  throw new Error(err.error);
}
const { results } = await res.json();
console.log(results);
# pip install requests
import requests

API_KEY = "SUA_CHAVE_AQUI"
BASE = "https://musicore.app/.netlify/functions"

r = requests.get(
    f"{BASE}/api-v1-search",
    params={"q": "daft punk", "limit": 5},
    headers={"x-api-key": API_KEY},
)
r.raise_for_status()
for track in r.json()["results"]:
    print(track["title"], "-", track["artist"])