Documentação completa da API v2

Protocolo idêntico ao usado pelos principais painéis SMM do mercado. Um único endpoint, método POST, corpo em JSON ou form urlencoded — os dois funcionam.

POST https://matrizsmm.com/api/public/v2

Formatos de corpo aceitos

Envie application/x-www-form-urlencoded (o padrão dos scripts de painel prontos) ou application/json. Requisições sem content-type declarado também são interpretadas automaticamente.

Form urlencoded
POST https://matrizsmm.com/api/public/v2
Content-Type: application/x-www-form-urlencoded

key=msmm_sua_chave&action=add&service=1&link=https://instagram.com/cliente&quantity=1000
JSON
POST https://matrizsmm.com/api/public/v2
Content-Type: application/json

{
  "key": "msmm_sua_chave",
  "action": "add",
  "service": "1",
  "link": "https://instagram.com/cliente",
  "quantity": 1000
}

Parâmetros

keySua chave de API (Painel → Conta → Chaves da API v2). Obrigatória em toda requisição.
actionadd | status | services | balance | refill | cancel.
serviceID do serviço retornado por services. É tratado como texto: aceita número (1, 2, 3), UUID ou qualquer identificador. Não há validação de formato numérico.
linkURL do perfil, post ou vídeo (8 a 500 caracteres).
quantityQuantidade solicitada, entre o min e o max do serviço.
orderEm status e refill: um único ID de pedido.
ordersEm status e cancel: um ID ou vários separados por vírgula (até 100 por chamada).

Ações

add — criar pedido

Requisição (corpo)
key=SUA_CHAVE&action=add&service=1&link=https://instagram.com/cliente&quantity=1000
Resposta
{
  "order": "9b1d7c40-...-uuid-do-pedido",
  "charge": "12.00"
}

status — consultar pedidos

Requisição (corpo)
key=SUA_CHAVE&action=status&orders=9b1d7c40-...,4a2f9e11-...
Resposta
{
  "9b1d7c40-...": {
    "charge": "12.00",
    "currency": "BRL",
    "start_count": 0,
    "status": "In progress",
    "remains": 240
  },
  "4a2f9e11-...": { "error": "Incorrect order ID" }
}

services — catálogo

Requisição (corpo)
key=SUA_CHAVE&action=services
Resposta
[
  {
    "service": "1",
    "name": "Instagram Seguidores Brasileiros",
    "type": "Default",
    "category": "Instagram",
    "rate": "12.00",
    "min": "100",
    "max": "100000",
    "refill": true,
    "cancel": false
  }
]

balance — saldo da conta

Requisição (corpo)
key=SUA_CHAVE&action=balance
Resposta
{
  "balance": "123.45",
  "currency": "BRL"
}

refill — solicitar reposição

Requisição (corpo)
key=SUA_CHAVE&action=refill&order=9b1d7c40-...
Resposta
{
  "refill": "184213"
}

cancel — cancelar pedidos

Requisição (corpo)
key=SUA_CHAVE&action=cancel&orders=9b1d7c40-...,4a2f9e11-...
Resposta
[
  { "order": "9b1d7c40-...", "cancel": 1 },
  { "order": "4a2f9e11-...", "cancel": { "error": "Incorrect order ID" } }
]

Erros

Todo erro retorna um objeto com a chave error e uma mensagem legível.

Chave inválida ou inativa

{ "error": "Chave de API inválida ou inativa" }
HTTP 401

Serviço inexistente ou desativado

{ "error": "Serviço indisponível" }
HTTP 400

Quantidade fora do limite

{ "error": "Quantidade fora do intervalo permitido (100 a 100000)" }
HTTP 400

Link ausente ou inválido

{ "error": "Link inválido" }
HTTP 400

Saldo insuficiente

{ "error": "Saldo insuficiente para este pedido" }
HTTP 400

Pedido inexistente

{ "error": "Incorrect order ID" }
HTTP 400

Reposição indisponível

{ "error": "Refill not available for this service" }
HTTP 400

Cancelamento indisponível

{ "error": "Cancel not available for this service" }
HTTP 400

Ação desconhecida

{ "error": "Ação não suportada" }
HTTP 400

Corpo malformado

{ "error": "Corpo da requisição inválido" }
HTTP 400

Limites

  • 100 pedidos por chamada nas ações status e cancel.
  • Recomendamos consultar status em lote a cada 1–5 minutos, nunca pedido a pedido.
  • O catálogo (services) muda pouco: cacheie por pelo menos 10 minutos.
  • Não há bloqueio rígido por minuto hoje, mas chaves com uso abusivo podem ser desativadas — mantenha um intervalo saudável entre chamadas.
  • Durante manutenção programada, add retorna erro e nenhum saldo é debitado.