Fazer pedido
Envia um pedido no formato conhecido de painel reseller. Clientes antigos podem omitir idempotência; o mesmo payload da mesma conta é mapeado para o mesmo pedido por 60 segundos. Para retries exatos, reutilize request_id ou idempotency_key. Pedidos comuns aguardam 15 segundos antes do envio.
POST
https://notpanel.com/api/v3action=addChave de API obrigatóriaSujeito a limite de taxa (conta partilhada + IP + ação)Corpo:
application/x-www-form-urlencodedrequest_id e idempotency_key são opcionais. Sem eles, a mesma conta e payload recebem proteção de 60 segundos; um duplicado intencional nessa janela retorna o primeiro pedido. Aguarde 60 segundos ou envie request_id único para duplicar imediatamente.
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
| keyObrigatório | string | Sua chave de API. |
| actionObrigatório | string | Deve ser a string literal "add". |
| serviceObrigatório | integer | ID do serviço da lista de serviços. O serviço deve estar ativo no momento do envio. |
| request_id | string | Chave opcional preferida, única por pedido lógico e até 128 caracteres. Reutilize-a para retries exatos; request_id prevalece se ambos os aliases forem enviados. |
| idempotency_key | string | Alias opcional de request_id. Sem ambos, o servidor aplica 60 segundos de proteção para payload idêntico. |
| linkCondicional | string (URL) | URL de destino: perfil, publicação, vídeo ou canal. Obrigatória quando o serviço selecionado exige um link. Até 1000 caracteres; deve usar http(s). |
| quantityCondicional | integer | Número de unidades a entregar, dentro dos limites mínimo e máximo do serviço. |
| runsCondicional | integer | Obrigatório junto com interval apenas quando dripfeed=true. Use um inteiro positivo dentro do limite efetivo configurado; o teto absoluto é 1000. quantity × runs não pode superar o máximo do serviço. |
| intervalCondicional | integer | Obrigatório junto com runs apenas quando dripfeed=true. Use minutos inteiros positivos dentro do limite efetivo configurado; o teto absoluto é 2880 minutos. Serviços sem drip-feed rejeitam ambos. Programação gradual: máximo de 48 horas (execuções × intervalo). |
| coupon | string | Código de cupom a aplicar, sujeito às restrições do cupom por usuário, globais e por serviço. |
| delay | integer | Atraso inicial opcional. Use um inteiro de 1 a 86400 segundos quando o serviço selecionado aceitar esse campo. |
| lpost_count | integer | Contagem opcional de últimas publicações para serviços comuns compatíveis. Use um inteiro de 1 a 500, salvo quando o serviço definir este como campo canónico próprio. |
| reactions | string (map) | Mapa opcional de emojis para serviços comuns compatíveis. Envie JSON ou o formato PHP com aspas simples suportado, com no máximo 50 emojis. Os valores devem ser todos R para distribuição aleatória ou todos inteiros positivos até 1000000; não misture modos. Em contagens exatas, a soma vira a quantidade efetiva e determina o valor confirmado. |
Exemplo de requisição
Substitua YOUR_API_KEY pela chave gerada na página de API do seu painel.
curl -X POST https://notpanel.com/api/v3 \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "key=YOUR_API_KEY&action=add&service=1&request_id=550e8400-e29b-41d4-a716-446655440000&link=https://instagram.com/example&quantity=1000"const res = await fetch("https://notpanel.com/api/v3", {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({
key: "YOUR_API_KEY",
action: "add",
service: "1",
request_id: "550e8400-e29b-41d4-a716-446655440000",
link: "https://instagram.com/example",
quantity: "1000",
}),
});
const data = await res.json();
console.log(data);import requests
res = requests.post(
"https://notpanel.com/api/v3",
data={
"key": "YOUR_API_KEY",
"action": "add",
"service": "1",
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"link": "https://instagram.com/example",
"quantity": "1000",
},
)
print(res.json())<?php
$body = http_build_query([
'key' => 'YOUR_API_KEY',
'action' => 'add',
'service' => '1',
'request_id' => '550e8400-e29b-41d4-a716-446655440000',
'link' => 'https://instagram.com/example',
'quantity' => '1000',
]);
$response = file_get_contents('https://notpanel.com/api/v3', false, stream_context_create([
'http' => [
'method' => 'POST',
'header' => "Content-Type: application/x-www-form-urlencoded\r\n",
'content' => $body,
'ignore_errors' => true,
],
]));
print_r(json_decode($response, true));
Exemplo de resposta
{
"order": 7001,
"status": "Pending",
"status_key": "pending",
"charge": "0.50",
"currency": "USD",
"cancel_available": true,
"cancel_window_seconds": 15,
"cancel_before": "2026-08-25T10:30:15.000Z"
}Erros comuns
| Status | Corpo | Causa |
|---|---|---|
| 400 | {"error":"Service not found"} | O ID do serviço não existe. Atualize a lista de serviços e use um ID atual. |
| 400 | {"error":"Service has been discontinued and is no longer available"} | O serviço existe, mas está desativado, arquivado ou não aceita mais pedidos. Atualize o catálogo e escolha um serviço disponível. |
| 400 | {"error":"Insufficient balance"} | O saldo da conta está abaixo do valor total do pedido. Adicione saldo pelo painel. |
| 400 | {"error":"Quantity must be a positive integer"} | A quantidade era zero, negativa ou não inteira. Valide antes do envio. |
| 409 | {"error":"request_id was already used with different parameters"} | O pedido entra em conflito com o estado existente, por exemplo ao reutilizar um request_id de add para outro pedido lógico. Use o pedido original ou um novo identificador único, conforme apropriado. |