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
| Item | Valor |
|---|---|
| Endpoint | https://insanesmm.com/api/v2 |
| Métodos | POSTGET |
| Formato | querystring, form ou JSON |
| Resposta | JSON |
| Moeda | BRL (Real) |
| Autenticação | parâ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âmetro | Tipo | Descrição |
|---|---|---|
key | string | obrigatório Sua chave |
action | string | obrigató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âmetro | Tipo | Descrição |
|---|---|---|
key | string | obrigatório Sua chave |
action | string | obrigatório balance |
Resposta
{
"balance": "152.30",
"currency": "BRL"
}
add — criar pedido
Cria um pedido e desconta do seu saldo na hora.
| Parâmetro | Tipo | Descrição |
|---|---|---|
key | string | obrigatório Sua chave |
action | string | obrigatório add |
service | int | obrigatório ID vindo de services |
link | string | obrigatório Link ou usuário do alvo |
quantity | int | obrigató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âmetro | Tipo | Descrição |
|---|---|---|
key | string | obrigatório Sua chave |
action | string | obrigatório status |
order | int | obrigató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âmetro | Tipo | Descrição |
|---|---|---|
key | string | obrigatório Sua chave |
action | string | obrigatório multistatus |
orders | string | obrigató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
| Status | O que significa |
|---|---|
Pending | Na fila, ainda não começou |
Processing | Sendo processado |
In progress | Entregando agora — acompanhe por remains |
Completed | Entregue por completo |
Partial | Entregue em parte. A diferença é reembolsada |
Canceled | Cancelado. Valor devolvido ao saldo |
Failed | Falhou. Valor devolvido ao saldo |
Erros
Erro vem com HTTP 4xx ou 5xx e um campo error.
{
"error": "Saldo insuficiente."
}
| Código | Situação |
|---|---|
400 | Parâmetro faltando, quantidade fora do limite, saldo insuficiente |
401 | Chave inválida ou não informada |
404 | Pedido não encontrado, ou não é seu |
500 | Erro 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,FailedePartialdevolvem 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'])