notpanel
ServiçosPreçosFAQSorteioAPI
notpanel

Seguidores, curtidas e visualizações para todas as plataformas.

O catálogo combina serviços operados diretamente com capacidade de parceiros verificados. Disponibilidade, tempo, refill e drip-feed são mostrados por serviço; as rotas e identidades dos parceiros permanecem confidenciais.

Produto

  • Serviços
  • Preços
  • Índice de preços
  • Programa de afiliados

Recursos

  • API
  • Blog
  • FAQ
  • Status

Empresa

  • Sobre
  • Por que o NotPanel
  • Fale Conosco

Jurídico

  • Termos de Serviço
  • Política de Privacidade
  • Política de Reembolso

Idiomas

  • English
  • Español
  • Português
  • Русский
  • Türkçe
  • العربية
  • हिन्दी
  • Bahasa Indonesia
  • Français
  • 中文

© 2026 NotPanel. Todos os direitos reservados.

support@notpanel.com
notpanel
Documentação da API
+
Documentação da API

Introdução

  • Visão geral
  • Primeiros passos
  • Autenticação
  • Limites de taxa
  • Erros

Catálogo

  • Listar serviços
  • Catálogo avançado
  • Tipos de serviço

Pedidos

  • Fazer pedido
  • Status do pedido
  • Cotação de reembolso
  • Reabastecer
  • Cancelar

Conta

  • Estado da conta
  • Saldo

Webhooks

  • Gerenciar webhooks

Referência

  • Changelog
  • SDKs e bibliotecas

Precisa de ajuda?

support@notpanel.com →

Catálogo avançado de serviços

Devolve um instantâneo paginado dos serviços ativos com tarifas da conta e metadados estruturados de descoberta. Use a ação services legada quando um SDK de revenda exigir o formato de array original em cache.

POSThttps://notpanel.com/api/v3action=catalog
Chave de API obrigatóriaSujeito a limite de taxa (conta partilhada + IP + ação)Corpo: application/x-www-form-urlencoded
action=catalog é um instantâneo de descoberta. catalog_updated_at indica a atualização de metadados mais recente no resultado filtrado, não um timestamp de preço garantido nem uma cotação. O valor devolvido pela resposta confirmada de action=add é autoritativo.

Parâmetros

NomeTipoDescrição
keyObrigatóriostringSua chave de API.
actionObrigatóriostringDeve ser a string literal "catalog".
pageintegerNúmero da página de 1 a 100000. O padrão é 1.
limitintegerLinhas por página de 1 a 200. O padrão é 100.
languagelanguage codeIdioma opcional do nome: en, es, pt, ru, tr, ar, hi, id, fr ou zh. pt é português do Brasil e zh é chinês simplificado. Omita para manter o formato legado em inglês. Os administradores podem revisar ou ajustar cada nome.
searchstringPesquisa sem distinção de maiúsculas no nome do serviço, ou ID numérico exato. Máximo de 100 caracteres.
platforminteger | slugID numérico ou slug da plataforma.
categoryinteger | slugID numérico ou slug da categoria. Um slug exige platform; um ID numérico pode ser usado sem platform.
typestringTipo de serviço suportado exato, como default, custom_comments, package ou web_traffic.
sortstringUm de popular, price_asc, price_desc, time_asc, time_desc, name_asc ou newest. O padrão é popular.
refillbooleanFiltra pela capacidade de refill. Aceita 1, 0, true ou false.
dripfeedbooleanFiltra pela capacidade de drip-feed. Aceita 1, 0, true ou false.
availablebooleanFiltra pela disponibilidade atual para pedidos. Aceita 1, 0, true ou false; action=add volta a verificar a disponibilidade ao confirmar o pedido.
min_rateUSD decimalTarifa mínima não negativa da conta em USD por 1.000 unidades. Use um decimal canónico de 0 a 999999999999.99999999, com no máximo 12 dígitos inteiros e 8 decimais; sinais e expoentes são rejeitados.
max_rateUSD decimalTarifa máxima não negativa da conta em USD por 1.000 unidades. Não pode ser menor que min_rate. Use um decimal canónico de 0 a 999999999999.99999999, com no máximo 12 dígitos inteiros e 8 decimais; sinais e expoentes são rejeitados.

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=catalog&platform=instagram&available=true&sort=price_asc&limit=2&language=hi"
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: "catalog",
    platform: "instagram",
    available: "true",
    sort: "price_asc",
    limit: "2",
    language: "hi",
  }),
});

const data = await res.json();
console.log(data);
import requests

res = requests.post(
  "https://notpanel.com/api/v3",
  data={
    "key": "YOUR_API_KEY",
    "action": "catalog",
    "platform": "instagram",
    "available": "true",
    "sort": "price_asc",
    "limit": "2",
    "language": "hi",
},
)
print(res.json())
<?php
$body = http_build_query([
    'key' => 'YOUR_API_KEY',
    'action' => 'catalog',
    'platform' => 'instagram',
    'available' => 'true',
    'sort' => 'price_asc',
    'limit' => '2',
    'language' => 'hi',
]);

$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

{
  "as_of": "2026-08-25T10:30:00.000Z",
  "requested_language": "hi",
  "catalog_updated_at": "2026-08-25T09:45:12.000Z",
  "total": 1,
  "page": 1,
  "per_page": 2,
  "total_pages": 1,
  "lowest_rate_per_1000": "0.50",
  "currency": "USD",
  "items": [
    {
      "service": "42547",
      "name": "Instagram कस्टम कमेंट्स",
      "canonical_name": "Instagram Custom Comments",
      "name_language": "hi",
      "description": "Custom comments for a public post",
      "type": "custom_comments",
      "rate": "0.50",
      "min": "10",
      "max": "5000",
      "platform": {
        "id": 1,
        "slug": "instagram",
        "name": "Instagram"
      },
      "category": {
        "id": 12,
        "slug": "comments",
        "name": "Comments"
      },
      "refill": true,
      "dripfeed": false,
      "available": true,
      "cancel": true,
      "cancel_mode": "grace_window",
      "cancel_window_seconds": 15,
      "average_time": "0-30 minutes",
      "average_time_minutes": 18,
      "average_time_sample_size": 24,
      "average_time_basis": "measured",
      "input_fields": [
        {
          "key": "comments",
          "label": "Comments",
          "type": "textarea",
          "required": true,
          "placeholder": "One comment per line. Each line is a separate comment."
        }
      ],
      "updated_at": "2026-08-25T09:45:12.000Z"
    }
  ]
}

Erros comuns

StatusCorpoCausa
400{"error":"A platform is required when category is a slug"}Um slug de categoria é ambíguo sem slug ou ID de plataforma. Envie platform ou use o ID numérico da categoria.
400{"error":"Invalid catalog sort"}O valor de sort não é um dos modos de ordenação documentados.
400{"error":"language must be one of en, es, pt, ru, tr, ar, hi, id, fr, zh","error_code":"INVALID_LANGUAGE"}O valor de idioma não é compatível. Use um dos dez códigos de idioma documentados para nomes de serviços.

Filtros e disponibilidade

Combine filtros de pesquisa, plataforma, categoria, tipo, capacidades, disponibilidade e tarifa. Um slug de categoria é limitado por platform; um ID numérico de categoria é globalmente inequívoco. available é um sinal atual de descoberta, enquanto action=add continua sendo a verificação final de aceitação.

Resposta e atualização

A resposta inclui as_of, totais de paginação, lowest_rate_per_1000 da conta e linhas de serviço. catalog_updated_at é a atualização de metadados mais recente no conjunto filtrado, não uma cotação. input_fields lista apenas campos extras específicos; os campos comuns de add e as regras do tipo de serviço ainda se aplicam. Os campos de tempo indicam média medida, estimada ou desconhecida. O modo e a janela de cancelamento são metadados de descoberta; o add confirmado controla o valor e os timestamps reais. O tempo médio mede da criação do pedido até a primeira entrega positiva observada, incluindo pedidos ativos e graduais. Estima o início, não a conclusão. Médias genéricas do fornecedor não são usadas.

Descoberta localizada

Envie language para pesquisar e ordenar pelo nome localizado com terminologia de mercado selecionada, mantendo também a busca pelo nome canônico em inglês. A resposta passa a incluir requested_language no nível principal e canonical_name com name_language em cada item. name_language informa o idioma realmente retornado; en significa que a tradução solicitada estava ausente ou desatualizada e o nome inglês foi usado. O ID do serviço continua sendo a única chave estável da integração. Os administradores podem revisar ou ajustar cada nome.