🎵 +10.000 músicas disponíveis

A API de músicas
feita para o MTA:SA

Busque qualquer música e obtenha o link formatado com ou sem acento grave — pronto para usar direto no seu servidor MTA:SA. Simples, rápido e gratuito para começar.

wave-example.js
// Buscar música na Wave API
const response = await fetch(
  'https://waveapi.fun/search?q=Eminem',
  { headers: { 'Authorization': 'Bearer TOKEN' } }
);

const data = await response.json();

// Resposta com links prontos
{
  "id": "eminem_001",
  "title": "Lose Yourself",
  "artist": "Eminem",
  "url_with_grave": "`https://...",
  "url_clean": "https://...",
  "duration": 326
}

Três passos,
pronto para jogar

Integre a Wave API ao seu servidor MTA:SA em minutos, sem complicações.

// 01

Busque qualquer música

Use o endpoint /search com o nome ou artista. Nossa base conta com mais de 10.000 faixas prontas.

// 02

Copie o link formatado

Receba o link com acento grave (url_with_grave) já formatado para o MTA:SA, ou a versão limpa sem caracteres especiais.

// 03

Use direto no jogo

Cole o link no seu script Lua. A função playSound() do MTA:SA aceita o link com grave nativamente.

Tudo que você precisa,
nada que você não usa

Desenvolvida especificamente para o ecossistema MTA:SA, com atenção a cada detalhe.

Busca por nome / artista

Pesquise músicas por título, artista ou ambos combinados. Resultados relevantes e ordenados por popularidade.

`url

Link com acento grave

O campo url_with_grave retorna o link encapsulado com ` para uso direto nas funções do MTA:SA.

Link limpo sem grave

Prefere sem formatação especial? url_clean entrega a URL pura, compatível com qualquer uso.

Alta disponibilidade

Infraestrutura com 99.9% de uptime. Monitoramento 24/7 e redundância para que seu servidor nunca fique na mão.

Resposta ultra-rápida

Latência média abaixo de 100ms. CDN distribuída para garantir velocidade independente de onde seu servidor está.

Documentação clara

Exemplos em JavaScript, Python e cURL. Swagger-like com exemplos reais de código para integrar em minutos.

Teste agora mesmo

Simule uma busca e veja a resposta da API em tempo real, incluindo os dois formatos de link.

GET /search 200 OK
{
  "id": "em001",
  "title": "Lose Yourself",
  "artist": "Eminem",
  "duration": 326,
  "cover": "https://...",
  "url_with_grave": "`https://waveapi.fun/s/em001`",
  "url_clean": "https://waveapi.fun/s/em001"
}
Links prontos

Referência da API

Endpoints documentados com exemplos reais. Integre em minutos.

GET /song/{id}

Retorna os dados completos de uma música específica pelo seu identificador único.

ParâmetroTipoObrigatórioDescrição
id string Obrigatório ID único da música (path param)

Campos especiais MTA:SA

url_with_grave
Link encapsulado com acento grave (`). Compatível com playSound() no MTA:SA.
url_clean
URL pura sem caracteres especiais. Ideal para armazenamento em banco de dados ou exibição na interface.
const id = 'em001';
const res = await fetch(`https://waveapi.fun/song/${id}`, {
  headers: { 'Authorization': 'Bearer SEU_TOKEN' }
});
const song = await res.json();
response = requests.get(
  'https://waveapi.fun/song/em001',
  headers={'Authorization': 'Bearer SEU_TOKEN'}
)
song = response.json()
curl https://waveapi.fun/song/em001 \
  -H "Authorization: Bearer SEU_TOKEN"
AUTH Autenticação

A Wave API usa autenticação via Bearer Token. Inclua o header em todas as requisições autenticadas. No plano Free, algumas rotas funcionam sem autenticação com limite reduzido.

Authorization: Bearer <SEU_TOKEN>

Obtenha seu token em waveapi.fun/dashboard após criar sua conta.

Comece grátis,
cresça no seu ritmo

Sem cartão de crédito para o plano Free. Cancele quando quiser.

Free
R$0/mês

Para testar e projetos pessoais pequenos.

  • 500 requisições/dia
  • Sem autenticação necessária
  • Busca por nome e artista
  • url_with_grave e url_clean
  • Suporte por email
  • SLA garantido
Começar Grátis
Ultra
Em breve

Para redes de servidores e integrações avançadas.

  • Requisições ilimitadas
  • Múltiplos tokens
  • Acesso antecipado a recursos
  • Webhook de eventos
  • Suporte dedicado (Discord)
  • SLA 99.9% garantido
Entrar na lista

Feita para o
universo MTA:SA

Multi Theft Auto: San Andreas tem um ecossistema de scripting Lua único. O campo url_with_grave foi criado especificamente para funcionar com a função playSound() sem nenhuma gambiarra.

Lua 5.1
Compatível
MTA:SA
1.5.8+
0ms
overhead no Lua
music_system.lua LUA
-- Wave API no MTA:SA
-- Busca e toca música via HTTP

local WaveAPI = {}
WaveAPI.token = "SEU_TOKEN"
WaveAPI.base = "https://waveapi.fun"

function WaveAPI.search(query, cb)
  local url = WaveAPI.base
    .. "/search?q=" .. query
  fetchRemote(url, {
    headers = { Authorization =
      "Bearer " .. WaveAPI.token }
  }, function(data)
    local song = fromJSON(data)
    -- url_with_grave já tem os `
    local sound = playSound(
      song.results[1].url_with_grave
    )
    cb(sound)
  end)
end

-- Uso:
WaveAPI.search("Eminem", function(s)
  setSoundVolume(s, 0.8)
end)
0 Músicas disponíveis
0 Uptime garantido
0 Latência média
0 Desenvolvedores

Perguntas frequentes

O que é o acento grave e por que ele é necessário no MTA:SA?
+
No MTA:SA, a função playSound() requer que URLs de streams externos sejam passadas com um acento grave (`) no início e no fim. O campo url_with_grave da Wave API já entrega o link formatado corretamente, eliminando a necessidade de manipulação manual da string em Lua.
Preciso de autenticação para usar a API?
+
No plano Free, você pode fazer até 500 requisições por dia sem nenhum token. Para volumes maiores ou acesso a recursos avançados, você precisará de um token Bearer obtido no painel após criar uma conta.
A Wave API funciona com outros jogos além do MTA:SA?
+
Sim! Embora tenha sido otimizada para MTA:SA, qualquer aplicação pode usar a Wave API. O campo url_clean retorna a URL sem formatação especial, compatível com qualquer linguagem e plataforma.
Qual é o limite de requisições por segundo?
+
O plano Free permite até 10 requisições por segundo. O plano Pro eleva esse limite para 50 req/s. Em caso de excesso, a API retorna status 429 (Too Many Requests) com o header Retry-After indicando quando tentar novamente.
Como faço para adicionar músicas à base de dados?
+
Atualmente a curadoria é feita pela nossa equipe para garantir qualidade e disponibilidade dos links. Se precisar de uma música específica, abra uma solicitação no Discord e avaliaremos em até 48 horas. Usuários Pro têm prioridade nas solicitações.
Os links expiram?
+
Os IDs das músicas são permanentes — a URL /song/{id} sempre retorna os dados atualizados. Recomendamos não armazenar os links diretamente pois podem ser atualizados; sempre busque via ID para garantir disponibilidade.