FollowHub

API v2

Faça pedidos pelo seu próprio sistema. A API segue o padrão dos painéis SMM (v2), então integrações prontas para esse padrão funcionam trocando só o endereço e a chave.

Endereço: https://followhub.club/api/v2
Método: POST, com os campos em application/x-www-form-urlencoded.
Chave: gere no painel, aba API, e envie no campo key. Gerar uma chave nova desativa a anterior na hora.

Todos os valores são em reais (BRL). Os números e valores voltam como texto ("10.00"), como no padrão v2.

Ações

services: lista de serviços

key=SUA_CHAVE&action=services
[
  {
    "service": 154,
    "name": "TikTok - Seguidores Mundiais (Rápido)",
    "type": "Default",
    "category": "TikTok - Seguidores",
    "rate": "30.00",
    "min": "10",
    "max": "1000000000",
    "refill": false,
    "cancel": false
  }
]

rate é o preço por 1.000 unidades. refill diz se o serviço tem reposição. O prazo da reposição aparece no nome (por exemplo, "Reposição 30 dias").

O número do serviço (service) não muda. Se um serviço sair do catálogo, o número dele fica reservado e nunca passa para outro serviço. Pedidos para ele recebem o erro service_unavailable. Se o serviço voltar, volta com o mesmo número.

add: novo pedido

key=SUA_CHAVE&action=add&service=154&link=https://www.tiktok.com/@perfil&quantity=1000&idempotency_key=pedido-8841
{"order": 123}

O valor sai do saldo no momento do pedido. Se o pedido for recusado na criação, nada é cobrado e a resposta é um erro.

idempotency_key é opcional e recomendado (veja Pedido sem duplicar). Quando a chamada repete uma chave já usada, a resposta traz o mesmo pedido e o campo "existing": true.

status: andamento do pedido

key=SUA_CHAVE&action=status&order=123
{"charge": "30.00", "start_count": "815", "status": "In progress", "remains": "163", "currency": "BRL"}

Vários pedidos de uma vez, até 100 por chamada:

key=SUA_CHAVE&action=status&orders=123,124,999
{
  "123": {"charge": "30.00", "start_count": "815", "status": "Completed", "remains": "0", "currency": "BRL"},
  "124": {"charge": "3.00", "start_count": "0", "status": "Pending", "remains": "100", "currency": "BRL"},
  "999": {"error": "Incorrect order ID", "error_code": "order_not_found"}
}

balance: saldo

key=SUA_CHAVE&action=balance
{"balance": "170.00", "currency": "BRL"}

refill: pedir reposição

key=SUA_CHAVE&action=refill&order=123
{"refill": "45"}

A reposição pode ser pedida a partir de 15 dias depois da conclusão do pedido, dentro do prazo do serviço. Fora dessas condições, a resposta é o erro refill_not_allowed, com a data no texto quando houver.

refill_status: andamento da reposição

key=SUA_CHAVE&action=refill_status&refill=45
{"status": "Pending"}

Valores: Pending (solicitada), In progress (em andamento) e Completed (concluída).

Status do pedido e efeito no saldo

StatusO que significaSaldo
PendingRecebido, aguardando início. Também aparece enquanto um pedido está em conferência do nosso lado.Já cobrado
ProcessingSendo preparado para começar.Já cobrado
In progressEm entrega. remains mostra quanto falta.Já cobrado
CompletedEntregue por completo.Nada volta
PartialEntregue em parte e encerrado.A parte não entregue volta como saldo: valor × remains ÷ quantidade
CanceledCancelado sem entrega, ou recusado depois de criado.O valor inteiro volta como saldo

O saldo devolvido entra automaticamente, em poucos minutos, sem precisar pedir. start_count é a contagem do perfil quando a entrega começou.

Formato do link

Um pedido por vez no mesmo perfil

Enquanto um pedido está pendente, processando ou em andamento, um novo pedido para o mesmo perfil ou a mesma publicação no mesmo serviço é recusado com active_order_exists, sem cobrança. Dois pedidos simultâneos no mesmo alvo seriam cancelados na entrega. Faça o próximo quando o anterior terminar (Completed, Partial ou Canceled).

Pedido sem duplicar

Se a conexão cair antes da resposta do add, você não sabe se o pedido foi criado. Envie idempotency_key com um código único seu para cada pedido (por exemplo, o número do pedido no seu sistema) e repita a chamada com a mesma chave sem risco:

Erros

Os erros voltam com status HTTP 200, como no padrão v2, num JSON com o texto em error e um código fixo em error_code. Use o código no seu sistema, porque o texto pode mudar.

{"error": "Serviço 211 não existe. Consulte a lista de serviços.", "error_code": "service_not_found"}
error_codeQuando
invalid_keyChave ausente, errada ou substituída por uma nova.
invalid_actionAção desconhecida.
service_not_foundEsse número de serviço nunca existiu.
service_unavailableO serviço saiu do catálogo.
invalid_linkLink vazio ou fora do formato aceito.
wrong_networkO link é de outra rede social.
quantity_out_of_rangeQuantidade fora do mínimo e do máximo do serviço.
active_order_existsJá existe um pedido em andamento para o mesmo perfil ou publicação neste serviço (HTTP 200 na API, 409 no painel).
insufficient_balanceSaldo menor que o valor do pedido.
supplier_rejectedO pedido não pôde ser criado. Nada foi cobrado.
invalid_idempotency_keyidempotency_key fora do formato.
duplicate_key_mismatchidempotency_key já usada com outros dados.
order_not_foundPedido inexistente ou de outra conta.
refill_not_foundReposição inexistente ou de outra conta.
refill_not_allowedServiço sem reposição, pedido não concluído, antes do prazo ou depois do prazo.
refill_already_requestedJá existe uma reposição recente para o pedido.
rate_limitedLimite de chamadas passado (HTTP 429).
internal_errorFalha temporária. Tente de novo em instantes. No add, repita com a mesma idempotency_key.

Limite de chamadas

Até 120 chamadas por minuto por IP. Acima disso, a resposta é HTTP 429 com error_code rate_limited, até a janela de 1 minuto liberar. Para acompanhar muitos pedidos, use orders= com até 100 números por chamada.

Histórico de mudanças

06/11/2026

Mudanças na API entram neste histórico com a data.