API Pública

API v2 – Documentação

Integração para revendedores — compatível com a especificação “v2” usada por vários painéis.

Visão geral

Esta API permite consultar saldo, listar serviços, criar pedidos, acompanhar status, solicitar cancelamento e refills.

  • Base URL: (recomendado usar com a barra ao final)
  • Formato: application/x-www-form-urlencoded (também aceita application/json)
  • Autenticação: envie sua chave em key, ou no header X-API-Key, ou Authorization: Bearer <KEY>.
  • Moeda: o campo currency em todas as respostas indica a moeda (ex.: BRL ou USD).
Importante: para serviços do tipo Custom Comments, envie os comentários no parâmetro comments, um por linha. Se não informar quantity, usamos o número de linhas.

Autenticação

Parâmetro via key
POST {{BASE_URL}}
action=balance&key=SUA_CHAVE_AQUI
Header via X-API-Key ou Bearer
POST {{BASE_URL}}
Headers:
  X-API-Key: SUA_CHAVE_AQUI
Body:
  action=balance

// ou
Authorization: Bearer SUA_CHAVE_AQUI
JSON Exemplo
curl -X POST "{{BASE_URL}}" \
  -H "Content-Type: application/json" \
  -d '{
    "action": "balance",
    "key": "SUA_CHAVE"
  }'

Endpoints

POST action=balance

Retorna seu saldo atual e a moeda.

cURL
curl -X POST "{{BASE_URL}}" \
  -d "action=balance" \
  -d "key=SUA_CHAVE"
Resposta
{
  "balance": "123.45000",
  "currency": "BRL"
}
POST action=services

Lista serviços ativos.

curl -X POST "{{BASE_URL}}" -d "action=services" -d "key=SUA_CHAVE"
Exemplo de resposta
[
  {
    "service": 101,
    "name": "Seguidores HQ",
    "type": "Default",
    "category": "Instagram",
    "rate": "12.50000",      // preço / 1000 na moeda da API
    "min": "100",
    "max": "100000",
    "refill": false,
    "cancel": true
  },
  {
    "service": 202,
    "name": "Comentários personalizados",
    "type": "Custom Comments",
    "category": "Instagram",
    "rate": "35.00000",
    "min": "10",
    "max": "5000",
    "refill": false,
    "cancel": true
  }
]
POST action=add

Cria um pedido.

Parâmetros
  • service (obrigatório)
  • link (obrigatório)
  • quantity (obrigatório, exceto Custom Comments quando enviar comments)
  • comments (apenas para Custom Comments, um por linha; se não enviar quantity, usamos o número de linhas)
Exemplo (Default)
curl -X POST "{{BASE_URL}}" \
  -d "action=add" \
  -d "key=SUA_CHAVE" \
  -d "service=101" \
  -d "link=https://instagram.com/p/XXXX" \
  -d "quantity=1000"
Exemplo (Custom Comments)
curl -X POST "{{BASE_URL}}" \
  -d "action=add" \
  -d "key=SUA_CHAVE" \
  -d "service=202" \
  -d "link=https://instagram.com/p/XXXX" \
  --data-urlencode "comments=Primeiro comentário
Segundo comentário
Terceiro comentário"
Resposta
{ "order": 789 }
POST action=status

Consulta status de um pedido (order) ou de vários (orders = IDs separados por vírgula).

Um pedido
curl -X POST "{{BASE_URL}}" -d "action=status" -d "key=SUA_CHAVE" -d "order=789"
Resposta
{
  "charge": "12.50000",
  "start_count": "0",
  "status": "In progress",
  "remains": "250",
  "currency": "BRL"
}
Múltiplos
curl -X POST "{{BASE_URL}}" -d "action=status" -d "key=SUA_CHAVE" -d "orders=789,790,791"
Resposta
{
  "789": { "charge":"12.50000", "start_count":"0", "status":"Completed", "remains":"0", "currency":"BRL" },
  "790": { "charge":"7.00000",  "start_count":"0", "status":"In progress", "remains":"120", "currency":"BRL" },
  "791": { "error":"Incorrect order ID" }
}
POST action=cancel

Solicita cancelamento de múltiplos pedidos (orders).

curl -X POST "{{BASE_URL}}" \
  -d "action=cancel" \
  -d "key=SUA_CHAVE" \
  -d "orders=789,790"
Resposta
[
  {"order":789,"cancel":1},
  {"order":790,"cancel":{"error":"Unable to cancel"}}
]
Regras: só é possível cancelar quando o pedido está Pending ou In progress. Quando aprovado, o valor é reembolsado integralmente.
POST action=refill / refill_status

Refill abre um ticket interno; consulte o status com refill_status.

Refill (um ou múltiplos)
curl -X POST "{{BASE_URL}}" -d "action=refill" -d "key=SUA_CHAVE" -d "order=789"

curl -X POST "{{BASE_URL}}" -d "action=refill" -d "key=SUA_CHAVE" -d "orders=789,790"
Resposta
{"refill":"15"}

[
  {"order":789,"refill":"15"},
  {"order":790,"refill":"16"}
]
Status do refill
curl -X POST "{{BASE_URL}}" -d "action=refill_status" -d "key=SUA_CHAVE" -d "refill=15"

curl -X POST "{{BASE_URL}}" -d "action=refill_status" -d "key=SUA_CHAVE" -d "refills=15,16"
Resposta
{"status":"Pending"}

[
  {"refill":15,"status":"Pending"},
  {"refill":16,"status":"Completed"}
]

Erros comuns

  • {"error":"Missing \"key\"."} – Não enviou a chave.
  • {"error":"Invalid \"key\"."} – Chave incorreta.
  • {"error":"Account disabled."} – API desabilitada na sua conta.
  • {"error":"IP not allowed."} – Seu IP não está na whitelist (se configurada).
  • {"error":"Missing \"service\"."}, {"error":"Missing \"link\"."}, {"error":"Missing or invalid \"quantity\"."}.
  • {"error":"Quantity out of range."} – Fora do min/max do serviço.
  • {"error":"Insufficient balance."} – Saldo insuficiente.
  • {"error":"Incorrect order ID"} – Pedido não pertence à sua conta ou não existe.
Dica: se sua ferramenta reclamar de redirecionamento, use sempre a Base URL com barra no final (ex.: .../api/v2/).

Exemplos rápidos (PHP)

<?php
$base = '{{BASE_URL}}';
$key  = 'SUA_CHAVE';

// balance (form-url-encoded)
$resp = file_get_contents($base, false, stream_context_create([
  'http' => ['method'=>'POST','header'=>"Content-Type: application/x-www-form-urlencoded\r\n",
             'content'=>http_build_query(['action'=>'balance','key'=>$key])]
]));
echo $resp, "\n";

// add (default)
$resp = file_get_contents($base, false, stream_context_create([
  'http' => ['method'=>'POST','header'=>"Content-Type: application/x-www-form-urlencoded\r\n",
             'content'=>http_build_query([
               'action'=>'add','key'=>$key,'service'=>101,
               'link'=>'https://instagram.com/p/XXXX','quantity'=>1000
             ])]
]));
echo $resp, "\n";
?>