notpanel
ServicesTarifsFAQConcoursAPI
notpanel

Abonnés, likes et vues pour chaque plateforme.

Le catalogue combine des services opérés directement et la capacité de partenaires vérifiés. Disponibilité, délai, refill et drip-feed sont indiqués par service ; le routage et l’identité des partenaires restent confidentiels.

Produit

  • Services
  • Tarifs
  • Indice des prix
  • Programme d'affiliation

Ressources

  • API
  • Blog
  • FAQ
  • Statut

Entreprise

  • À propos
  • Pourquoi NotPanel
  • Nous contacter

Mentions légales

  • Conditions d'utilisation
  • Politique de confidentialité
  • Politique de remboursement

Langues

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

© 2026 NotPanel. Tous droits réservés.

support@notpanel.com
notpanel
Documentation de l'API
+
Documentation de l'API

Introduction

  • Vue d'ensemble
  • Démarrage
  • Authentification
  • Limites de débit
  • Erreurs

Catalogue

  • Lister les services
  • Catalogue avancé
  • Types de service

Commandes

  • Passer une commande
  • Statut de commande
  • Devis de remboursement
  • Recomplément
  • Annuler

Compte

  • État du compte
  • Solde

Webhooks

  • Gérer les webhooks

Référence

  • Journal des modifications
  • SDK et bibliothèques

Besoin d'aide ?

support@notpanel.com →

Passer une commande

Envoie une commande avec la forme familière des panels reseller. Les anciens clients peuvent omettre l'idempotence ; le même payload du même compte est associé à la même commande pendant 60 secondes. Pour des retries exacts, réutilisez request_id ou idempotency_key. Les commandes ordinaires attendent 15 secondes avant envoi.

POSThttps://notpanel.com/api/v3action=add
Clé d'API requiseDébit limité (compte partagé + IP + action)Corps : application/x-www-form-urlencoded
request_id et idempotency_key sont facultatifs. Sans eux, le même compte et payload sont protégés 60 secondes ; un doublon volontaire dans cette fenêtre renvoie la première commande. Attendez 60 secondes ou envoyez un request_id unique pour le créer immédiatement.

Paramètres

NomTypeDescription
keyRequisstringVotre clé API.
actionRequisstringDoit être la chaîne littérale « add ».
serviceRequisintegerID du service issu de la liste services. Le service doit être actif au moment de la soumission.
request_idstringClé facultative recommandée, unique par commande logique et limitée à 128 caractères. Réutilisez-la pour des retries exacts ; request_id prévaut si les deux alias sont envoyés.
idempotency_keystringAlias facultatif de request_id. Sans les deux champs, le serveur applique 60 secondes de protection pour un payload identique.
linkConditionnelstring (URL)URL cible : profil, publication, vidéo ou canal. Requise lorsque le service choisi demande un lien. Jusqu'à 1000 caractères ; doit utiliser http(s).
quantityConditionnelintegerNombre d'unités à livrer, dans les limites minimale et maximale du service.
runsConditionnelintegerRequis avec interval uniquement si dripfeed=true. Utilisez un entier positif dans la limite effective configurée ; le plafond absolu est 1000. quantity × runs ne peut pas dépasser le maximum du service.
intervalConditionnelintegerRequis avec runs uniquement si dripfeed=true. Utilisez un nombre entier positif de minutes dans la limite effective configurée ; le plafond absolu est 2880 minutes. Les services sans drip-feed rejettent les deux champs. Livraison progressive : 48 heures maximum (nombre de passages × intervalle).
couponstringCode de réduction à appliquer, sous réserve des limites du coupon par utilisateur, globales et par service.
delayintegerDélai de démarrage facultatif. Utilisez un entier de 1 à 86400 secondes si le service choisi prend en charge ce champ.
lpost_countintegerNombre facultatif de dernières publications pour les services ordinaires compatibles. Utilisez un entier de 1 à 500, sauf si le service le définit comme son propre champ canonique.
reactionsstring (map)Carte d’emojis facultative pour les services ordinaires compatibles. Envoyez du JSON ou le format PHP à apostrophes pris en charge, avec au plus 50 emojis. Les valeurs doivent être toutes R pour une allocation aléatoire ou toutes des entiers positifs jusqu’à 1000000 ; ne mélangez pas les modes. Pour des comptes exacts, leur somme devient la quantité effective et fixe le montant validé.

Exemple de requête

Remplacez YOUR_API_KEY par la clé générée sur la page API de votre tableau de bord.

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));

Exemple de réponse

{
  "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"
}

Erreurs courantes

StatutCorpsCause
400{"error":"Service not found"}L'ID du service n'existe pas. Rechargez la liste des services et utilisez un ID actuel.
400{"error":"Service has been discontinued and is no longer available"}Le service existe, mais il est désactivé, archivé ou ne peut plus recevoir de commandes. Actualisez le catalogue et choisissez un service disponible.
400{"error":"Insufficient balance"}Le solde du compte est inférieur au montant total de la commande. Rechargez via le tableau de bord.
400{"error":"Quantity must be a positive integer"}La quantité était nulle, négative ou non entière. Validez avant la soumission.
409{"error":"request_id was already used with different parameters"}La requête entre en conflit avec l’état existant, par exemple si un request_id de add est réutilisé pour une autre commande logique. Utilisez la requête d’origine ou un nouvel identifiant unique selon le cas.