API online

API do Insane SMM

Integre seu painel, bot ou sistema ao nosso catálogo. Um endpoint, cinco comandos, autenticação por chave.

Compatível com o padrão de painéis SMM. Se seu sistema já integra com outro painel, provavelmente funciona aqui trocando só a URL e a chave.

Visão geral

A API usa um endpoint único. Você manda o parâmetro action dizendo o que quer, junto com sua key.

// Endpoint
https://insanesmm.com/api/v2
ItemValor
Endpointhttps://insanesmm.com/api/v2
MétodosPOSTGET
Formatoquerystring, form ou JSON
RespostaJSON
MoedaBRL (Real)
Autenticaçãoparâmetro key

Sua chave de API

Entre no painel, vá em Minha API e copie sua chave. Ela identifica sua conta e usa o seu saldo nos pedidos.

Nunca exponha sua chave. Quem tiver ela consegue gastar seu saldo. Não coloque em código de frontend, repositório público ou print. Se vazar, gere uma nova no painel — a antiga para de funcionar na hora.

Formato da requisição

Todo pedido leva pelo menos key e action. Os dois podem ir na URL ou no corpo.

# querystring
curl "https://insanesmm.com/api/v2?key=SUA_CHAVE&action=balance"

# form
curl -X POST https://insanesmm.com/api/v2 \
  -d "key=SUA_CHAVE" \
  -d "action=balance"

# json
curl -X POST https://insanesmm.com/api/v2 \
  -H "Content-Type: application/json" \
  -d '{"key":"SUA_CHAVE","action":"balance"}'

services — lista de serviços

Devolve todos os serviços ativos com preço, mínimo e máximo.

ParâmetroTipoDescrição
keystringobrigatório Sua chave
actionstringobrigatório services

Resposta

[
  {
    "service": 12,
    "name": "Instagram — Seguidores Brasil",
    "type": "Default",
    "category": "Seguidores",
    "rate": "12.50",   // preço por 1000, em BRL
    "min": 100,
    "max": 100000
  }
]

O rate é por 1000. Para 500 unidades de um serviço a "12.50", o custo é 12.50 ÷ 1000 × 500 = R$ 6,25.

balance — seu saldo

ParâmetroTipoDescrição
keystringobrigatório Sua chave
actionstringobrigatório balance

Resposta

{
  "balance": "152.30",
  "currency": "BRL"
}

add — criar pedido

Cria um pedido e desconta do seu saldo na hora.

ParâmetroTipoDescrição
keystringobrigatório Sua chave
actionstringobrigatório add
serviceintobrigatório ID vindo de services
linkstringobrigatório Link ou usuário do alvo
quantityintobrigatório Entre min e max

Resposta

{
  "order": 1342
}

Antes de mandar:

  • O perfil precisa estar público durante toda a entrega
  • Não crie dois pedidos para o mesmo link ao mesmo tempo
  • Confira o link — link errado não tem volta
  • Se o pedido falhar, o valor volta automaticamente pro seu saldo

status — consultar um pedido

ParâmetroTipoDescrição
keystringobrigatório Sua chave
actionstringobrigatório status
orderintobrigatório ID do pedido

Resposta

{
  "charge": "6.25",        // quanto custou
  "start_count": "1204",   // contagem antes de começar
  "status": "In progress",
  "remains": "330",       // quanto falta entregar
  "currency": "BRL"
}

multistatus — vários pedidos

Consulta vários de uma vez. Melhor que chamar status num laço.

ParâmetroTipoDescrição
keystringobrigatório Sua chave
actionstringobrigatório multistatus
ordersstringobrigatório IDs separados por vírgula: 1342,1343,1344

Resposta

{
  "1342": {
    "charge": "6.25",
    "start_count": "1204",
    "status": "Completed",
    "remains": "0",
    "currency": "BRL"
  },
  "1343": {
    "charge": "3.10",
    "start_count": "88",
    "status": "In progress",
    "remains": "420",
    "currency": "BRL"
  }
}

Status do pedido

StatusO que significa
PendingNa fila, ainda não começou
ProcessingSendo processado
In progressEntregando agora — acompanhe por remains
CompletedEntregue por completo
PartialEntregue em parte. A diferença é reembolsada
CanceledCancelado. Valor devolvido ao saldo
FailedFalhou. Valor devolvido ao saldo

Erros

Erro vem com HTTP 4xx ou 5xx e um campo error.

{
  "error": "Saldo insuficiente."
}
CódigoSituação
400Parâmetro faltando, quantidade fora do limite, saldo insuficiente
401Chave inválida ou não informada
404Pedido não encontrado, ou não é seu
500Erro nosso. Tente de novo em instantes

Limites e boas práticas

  • Cacheie o services. O catálogo muda pouco. Consultar a cada pedido é desperdício.
  • Use multistatus. Uma chamada com 50 IDs em vez de 50 chamadas.
  • Não fique consultando status em loop apertado. Pedido leva minutos; consultar a cada 30-60 segundos basta.
  • Trate o reembolso. Status Canceled, Failed e Partial devolvem saldo — reflita isso no seu sistema.
  • Guarde o order. É como você consulta depois.

Exemplos

PHP

<?php
$key = 'SUA_CHAVE';
$url = 'https://insanesmm.com/api/v2';

function api($data) {
    global $url;
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $r = curl_exec($ch);
    curl_close($ch);
    return json_decode($r, true);
}

// saldo
$saldo = api(['key' => $key, 'action' => 'balance']);
echo $saldo['balance'];

// criar pedido
$pedido = api([
    'key'      => $key,
    'action'   => 'add',
    'service'  => 12,
    'link'     => 'https://instagram.com/perfil',
    'quantity' => 1000
]);
echo $pedido['order'];

Node.js

const KEY = 'SUA_CHAVE';
const URL = 'https://insanesmm.com/api/v2';

async function api(data) {
  const r = await fetch(URL, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ key: KEY, ...data })
  });
  const j = await r.json();
  if (!r.ok) throw new Error(j.error);
  return j;
}

// saldo
const { balance } = await api({ action: 'balance' });

// criar pedido
const { order } = await api({
  action: 'add',
  service: 12,
  link: 'https://instagram.com/perfil',
  quantity: 1000
});

// consultar
const st = await api({ action: 'status', order });
console.log(st.status, st.remains);

Python

import requests

KEY = 'SUA_CHAVE'
URL = 'https://insanesmm.com/api/v2'

def api(**kw):
    r = requests.post(URL, data={'key': KEY, **kw}, timeout=30)
    j = r.json()
    if 'error' in j:
        raise Exception(j['error'])
    return j

# saldo
print(api(action='balance')['balance'])

# criar pedido
p = api(
    action='add',
    service=12,
    link='https://instagram.com/perfil',
    quantity=1000
)
print(p['order'])