Documentação da API

Envie likes com uma única requisição GET. Autenticação por API key.

v2 disponível. Os exemplos abaixo usam /api/v2/. Se a sua integração já roda em /api/v1/, não precisa mudar nada: as duas versões respondem exatamente igual, com os mesmos parâmetros e o mesmo retorno. A v1 segue ativa e sem data de desligamento.
Endpoint
GET https://like200.garenafreefire.com.br/api/v2/enviar
Parâmetros (query string)
ParâmetroObrigatórioDescrição
keySimUma das suas API keys — cada uma tem limite próprio (gerencie no painel). Também aceita no header x-api-key
uidSimID do jogador (somente números)
regionNãoRegião/servidor. Padrão: BR
Exemplo de chamada
curl "https://like200.garenafreefire.com.br/api/v2/enviar?key=SUA_API_KEY&uid=123456789®ion=BR"

Ou direto no navegador:

https://like200.garenafreefire.com.br/api/v2/enviar?key=SUA_API_KEY&uid=123456789
Resposta de sucesso 200
{
  "sucesso": true,
  "nickname": "PlayerNick",
  "uid": "123456789",
  "regiao": "BR",
  "likes_antes": 1200,
  "likes_enviados": 100,
  "likes_delta": 100,
  "likes_depois": 1300,
  "tempo_ms": 2143,
  "uso_hoje": 5,
  "limite_diario": 100,
  "restantes_hoje": 95
}
Respostas de erro

Sempre retornam "sucesso": false e um campo erro:

HTTPerroSignificado
401sem_chave / chave_invalidaAPI key ausente ou inválida
403sem_planoNenhum plano ativo
400uid_invalidouid ausente ou não numérico
429limite_diarioLimite da janela atingido (zera às 13:00)
404id_nao_encontradoID do jogador não existe — não desconta
409ja_enviadoID já recebeu likes na janela atual (lockdown) — não desconta
409em_processamentoEste ID já está sendo processado agora — não desconta
503servidor_lotadoServidor ocupado — tente de novo — não desconta
502/504falha / timeoutErro temporário — não desconta

Cobrança: se o envio for processado pela fonte (com ou sem likes), desconta 1 do limite da janela. Lockdown, ID inexistente e erros não descontam.

Fila: processadas em paralelo até um limite; acima disso, sua chamada apenas aguarda a vez e retorna só quando a fonte responder — sem resposta intermediária.

{ "sucesso": false, "erro": "limite_diario", "mensagem": "Limite desta key (100 envios) atingido. Renova todo dia as 13:00 (America/Sao_Paulo).", "uso_hoje": 100, "limite_diario": 100, "restantes_hoje": 0, "reseta_em": "2026-09-21T16:00:00.000Z" }

Importante: cada envio processado desconta 1 do limite; atingido o limite, novos envios são bloqueados. Cada ID entra em lockdown após um envio e não pode reenviar até a janela renovar.

⏱ O limite zera às 13:00 (horário de Brasília), não à meia-noite. É o mesmo instante em que a fonte libera os IDs — ou seja, a janela começa com o limite cheio e com todos os IDs liberados. Quando o limite estoura, a resposta traz reseta_em com o horário exato da próxima virada (UTC, ISO-8601): use esse campo em vez de assumir meia-noite.

Likes automáticos (pedidos)

Você pede uma meta de likes para um ID e o sistema entrega sozinho. Cada rodada rende ~200 likes e cada ID só aceita um envio por dia — 2.000 likes levam ≈ 10 dias. Você só consulta o pedido para acompanhar.

1. Criar o pedido
GET https://like200.garenafreefire.com.br/api/v2/pedidos/criar?key=SUA_API_KEY&uid=123456789&likes=2000
ParâmetroObrigatórioDescrição
keySimSua API key — os envios automáticos descontam do limite dela e do plano
uidSimID do jogador (somente números)
likesSimMeta de likes a entregar (de 200 a 100.000)
regionNãoRegião/servidor. Padrão: BR
{
  "sucesso": true,
  "mensagem": "Pedido criado. Os envios comecam automaticamente.",
  "consultar_em": "https://like200.garenafreefire.com.br/api/v2/pedidos/pd_9f2c.../?key=SUA_API_KEY",
  "link_acompanhamento": "https://like200.garenafreefire.com.br/acompanhar/ac_5f31...",
  "pedido": { "id": "pd_9f2c8a71b0d4e5f6", "status": "na_fila", "meta_likes": 2000, ... }
}

Guarde o id do pedido (pd_...) — é por ele que você acompanha.

1.1. Link permanente de acompanhamento

Todo pedido criado pela API já volta com link_acompanhamento. Repasse essa URL ao dono do ID: ele abre no celular e vê, em tempo real, o perfil dele e o extrato de cada envio — sem login, sem API key e sem acesso a nada da sua conta (nem aos seus outros pedidos).

O endereço é fixo por ID de jogador e nunca expira. Quando o pacote acaba e o cliente renova, o mesmo link que ele já tem passa a mostrar o pedido novo — e continua exibindo o total entregue naquele ID desde o começo. Entre um pedido e outro a página segue no ar, avisando que a entrega está pausada.

GET  https://like200.garenafreefire.com.br/api/v2/pedidos/pd_9f2c8a71b0d4e5f6/link?key=SUA_API_KEY          → o link do ID
POST https://like200.garenafreefire.com.br/api/v2/pedidos/pd_9f2c8a71b0d4e5f6/link?key=SUA_API_KEY          → garante o link
POST https://like200.garenafreefire.com.br/api/v2/pedidos/pd_9f2c8a71b0d4e5f6/link/revogar?key=SUA_API_KEY  → desliga

# também aceita o ID do jogador direto, sem saber o código do pedido:
GET  https://like200.garenafreefire.com.br/api/v2/pedidos/uid:123456789/link?key=SUA_API_KEY
{
  "sucesso": true,
  "pedido": "pd_9f2c8a71b0d4e5f6",
  "uid": "123456789",
  "ativo": true,
  "permanente": true,
  "link_acompanhamento": "https://like200.garenafreefire.com.br/acompanhar/ac_5f31..."
}

O POST é idempotente: chamar de novo devolve sempre o mesmo endereço, nunca um diferente. revogar apenas desliga a página — o endereço fica reservado e religar traz exatamente o mesmo link de volta. Pedidos criados pelo painel têm o botão Gerar link na tabela, com o mesmo comportamento.

2. Acompanhar o pedido
GET https://like200.garenafreefire.com.br/api/v2/pedidos/pd_9f2c8a71b0d4e5f6?key=SUA_API_KEY
{
  "sucesso": true,
  "pedido": {
    "id": "pd_9f2c8a71b0d4e5f6",
    "status": "na_fila",
    "uid": "123456789",
    "nickname": "PlayerNick",
    "meta_likes": 2000,
    "likes_inicial": 4691,      // likes que a conta tinha quando o pedido entrou
    "likes_enviados": 600,      // quanto já entregamos
    "likes_atuais": 5291,       // likes da conta no último envio
    "likes_restantes": 1400,
    "progresso": 30,
    "envios_ok": 3,
    "envios_erro": 0,
    "envios_restantes": 7,
    "ultimo_envio": "2026-08-10T16:04:11.000Z",
    "proximo_envio": "2026-08-11T16:00:00.000Z",
    "aguardando": "aguardando_janela",
    "mensagem": "Este ID ja recebeu likes hoje. Proximo envio na virada das 13:00.",
    "criado_em": "2026-08-08T12:00:00.000Z",
    "concluido_em": null,
    "historico": [ { "data": "...", "enviado": true, "likes_enviados": 200, "likes_antes": 5091, "likes_depois": 5291 } ]
  }
}
statusSignificado
na_filaEm andamento — aguardando a próxima rodada de envio
enviandoEnviando likes neste momento
concluidoMeta atingida
canceladoCancelado por você
falhouEncerrado (ex.: ID não existe) — veja ultimo_erro
aguardandoPor que não está enviando agora
aguardando_janelaO ID já recebeu hoje; volta na virada das 13:00
limite_diarioLimite do plano atingido; continua na virada das 13:00
limite_keyLimite diário da key do pedido atingido
plano_vencidoPlano inativo — o pedido é retomado quando renovar
reagendadoErro temporário na fonte; nova tentativa já agendada
na_filaPronto para enviar na próxima varredura
3. Aumentar os likes de um pedido

O cliente contratou mais likes no mesmo ID? Não precisa criar outro pedido — some na meta do que já existe. O likes aqui é o quanto adicionar, não o total novo.

GET https://like200.garenafreefire.com.br/api/v2/pedidos/pd_9f2c8a71b0d4e5f6/aumentar?key=SUA_API_KEY&likes=1400

Um pedido de 600 likes vira 2.000, o progresso já entregue continua valendo e a entrega segue de onde parou. Se o pedido já estava concluído, ele reabre e volta para a fila (ocupando uma vaga de pedido em andamento).

HTTPerroSignificado
400quantidade_invalidalikes ausente ou não positivo
400meta_maximaA meta total passaria de 100.000 likes
409pedido_encerradoPedido cancelado ou falhou — crie um novo
409uid_em_pedidoJá existe outro pedido aberto para esse ID
402plano_vencidoRenove o plano para aumentar pedidos
4. Listar e cancelar
GET https://like200.garenafreefire.com.br/api/v2/pedidos?key=SUA_API_KEY
GET https://like200.garenafreefire.com.br/api/v2/pedidos/pd_9f2c8a71b0d4e5f6/cancelar?key=SUA_API_KEY

Ao cancelar, os likes já entregues permanecem — só param os próximos envios.

HTTPerroSignificado
400quantidade_invalidalikes fora do intervalo permitido
409uid_em_pedidoJá existe pedido em andamento para esse ID
429max_pedidosMáximo de pedidos em andamento do seu plano
404pedido_nao_encontradoO pedido não é desta conta

Cobrança: cada rodada automática desconta 1 do limite do plano, igual a uma chamada manual. Você pode ter em andamento tantos pedidos quanto o limite de envios/dia do seu plano (1 envio por dia cada). Criar o pedido não desconta nada.

Webhook (acompanhamento automático)

Em vez de ficar consultando o pedido, cadastre uma URL em Painel → Webhook e nós avisamos o seu servidor a cada envio.

Formato
POST https://seusite.com/webhook/likes
X-Evento: envio.ok
X-Tentativa: 1
X-Assinatura: sha256=<hmac do corpo com o seu segredo>

{
  "evento": "envio.ok",
  "enviado_em": "2026-08-11T00:32:07.000Z",
  "envio": {
    "uid": "123456789", "regiao": "BR", "nickname": "PlayerNick",
    "sucesso": true, "likes_enviados": 200,
    "likes_antes": 1200, "likes_depois": 1400,
    "erro": null, "mensagem": null, "tempo_ms": 2143, "origem": "auto"
  },
  "pedido": { "id": "pd_9f2c8a71b0d4e5f6", "status": "na_fila", "meta_likes": 2000,
              "likes_enviados": 200, "likes_restantes": 1800, "progresso": 10 }
}
eventoQuando dispara
envio.okUm envio entregou likes — origem: api (sua chamada) ou auto (pedido)
envio.erroUm envio não entregou; o motivo vem em erro
pedido.criadoPedido automático criado
pedido.concluidoO pedido bateu a meta
pedido.falhouPedido encerrado (ex.: ID inexistente)

Em envio manual o campo pedido vem null. Nas esperas normais (o ID já recebeu hoje) não mandamos evento.

Resposta esperada: qualquer 2xx. Se der outra coisa ou der timeout, tentamos de novo em 10s, 1min, 5min, 30min e 2h — depois marcamos como falha (dá para reenviar pelo painel).

Conferindo a assinatura
// Node.js — use o corpo CRU (raw), não o JSON já convertido
const esperado = 'sha256=' + require('crypto')
  .createHmac('sha256', SEU_SEGREDO).update(corpoCru).digest('hex');
const ok = esperado === req.headers['x-assinatura'];