API publique v1

Automatisez vos campagnes.

Une API gratuite et prévisible pour consulter le catalogue BoostCore, calculer vos coûts en crédits, créer des commandes et suivre leur livraison.

01 · Informations générales

Compatible avec les intégrations SMM classiques

L'intégration la plus simple utilise un seul endpoint et des paramètres de formulaire, comme les panels SMM habituels. Chaque commande débite le wallet du propriétaire de la clé. Les paiements et packs de recharge ne sont jamais exposés par cette API.

API URL
https://www.boostcore.tech/api/v2
HTTP Method
POST
Content-Type
application/x-www-form-urlencoded
Response Format
JSON

Votre clé commence par bc_live_. Gardez-la uniquement sur votre serveur. L'API facture et retourne les prix et soldes en crédits BoostCore. Pour consulter le catalogue tarifaire avec les prix en crédits et leur équivalent en USD, connectez-vous à votre espace client, puis ouvrez l'onglet Développeur.

L'accès à l'API ne comporte aucun abonnement supplémentaire. Le compte BoostCore doit toutefois être actif et disposer des crédits nécessaires pour créer une commande.

02 · API SMM

Actions et paramètres

Liste des services services

ParamètreObligatoireDescription
keyOuiVotre clé API BoostCore
actionOuiValeur exacte : services
curl -X POST https://www.boostcore.tech/api/v2 \
  -d "key=$BOOSTCORE_API_KEY" \
  -d "action=services"

[
  {
    "service": 12,
    "name": "Abonnés Facebook mondiaux",
    "type": "Default",
    "category": "Facebook - Followers",
    "rate": "80",
    "reference_unit": 1000,
    "min": "10",
    "max": "900000",
    "quantity_step": "1",
    "refill": false,
    "cancel": true,
    "currency": "CREDITS"
  }
]

rate représente le nombre de crédits facturés pour reference_unit unités. La quantité doit être comprise entre min et max et respecter quantity_step. Le prix définitif reste toujours recalculé côté serveur lors de la commande.

Besoin d'une lecture commerciale en USD ? Le catalogue visuel des prix en crédits et de leurs équivalents USD est disponible dans l'onglet Développeur de votre espace client connecté. Les appels API et les débits du wallet restent toujours effectués en crédits BoostCore.

Ajouter une commande add

ParamètreObligatoireDescription
keyOuiVotre clé API
actionOuiValeur exacte : add
serviceOuiID numérique reçu par services
linkOuiURL publique de la cible
quantityOuiEntier respectant min, max et le service choisi
idempotency_keyOuiIdentifiant unique de 1 à 128 caractères pour cette intention
curl -X POST https://www.boostcore.tech/api/v2 \
  -d "key=$BOOSTCORE_API_KEY" \
  -d "action=add" \
  -d "service=12" \
  -d "link=https://www.facebook.com/example" \
  -d "quantity=100" \
  -d "idempotency_key=client-order-000001"

{ "order": 23501 }

runs et interval ne sont pas pris en charge dans la v1. Un paramètre inconnu retourne explicitement Unsupported parameter au lieu d'être ignoré.

Statut d'une commande status

ParamètreObligatoireDescription
keyOuiVotre clé API
actionOuiValeur exacte : status
orderUne valeur requiseID numérique d'une commande
ordersAlternativeUn à 100 IDs séparés par des virgules
{
  "charge": "8",
  "start_count": "0",
  "status": "In progress",
  "remains": "100",
  "currency": "CREDITS"
}

Statut de plusieurs commandes status

Remplacez order par orders, avec jusqu'à 100 IDs séparés par des virgules.

key=...&action=status&orders=1,10,100

{
  "1": { "charge": "8", "start_count": "0", "status": "Completed", "remains": "0", "currency": "CREDITS" },
  "10": { "error": "Incorrect order ID" }
}

Créer un refill refill

ParamètreObligatoireDescription
keyOuiVotre clé API
actionOuiValeur exacte : refill
orderUne valeur requiseID d'une commande terminée et éligible au refill
ordersAlternativeUn à 100 IDs séparés par des virgules
idempotency_keyOuiIdentifiant unique de la demande
key=...&action=refill&order=23501&idempotency_key=refill-23501-01

{ "refill": 1 }

Créer plusieurs refills refill

Utilisez orders=1,2,3 à la place de order, avec 100 IDs maximum. La clé d'idempotence est dérivée séparément pour chaque commande.

[
  { "order": 1, "refill": 1 },
  { "order": 2, "refill": 2 },
  { "order": 3, "refill": { "error": "Refill is not available" } }
]

Statut des refills refill_status

ParamètreObligatoireDescription
keyOuiVotre clé API
actionOuiValeur exacte : refill_status
refillUne valeur requiseID numérique d'un refill
refillsAlternativeUn à 100 IDs séparés par des virgules
key=...&action=refill_status&refill=1

{ "status": "Completed" }

key=...&action=refill_status&refills=1,2,3

[
  { "refill": 1, "status": "Completed" },
  { "refill": 2, "status": "In progress" },
  { "refill": 3, "status": { "error": "Refill not found" } }
]

Demander une annulation cancel

ParamètreObligatoireDescription
keyOuiVotre clé API
actionOuiValeur exacte : cancel
orderUne valeur requiseID d'une commande
ordersAlternativeUn à 100 IDs séparés par des virgules
idempotency_keyOuiIdentifiant unique de la demande
[
  { "order": 9, "cancel": { "error": "Incorrect order ID" } },
  { "order": 2, "cancel": 1 }
]

cancel: true dans le catalogue signifie que BoostCore accepte une demande d'annulation. La réponse cancel: 1 confirme sa mise en file, pas son acceptation finale par le fournisseur. Suivez ensuite le statut de la commande.

Solde utilisateur balance

ParamètreObligatoireDescription
keyOuiVotre clé API
actionOuiValeur exacte : balance
{ "balance": "1607.2", "currency": "CREDITS" }

Ce solde est un solde interne en crédits BoostCore. Les prix correspondants en USD peuvent être consultés après connexion dans le catalogue Développeur de l'espace client.

Codes HTTP et retries

200 indique une action acceptée ou un rejeu idempotent. Les erreurs utilisent { "error": "..." } avec un statut HTTP explicite : 400 requête invalide, 401 clé invalide, 403 permission absente, 409 opération indisponible, 422 données refusées et 429 quota dépassé. Une mutation ne doit être rejouée qu'avec la même idempotency_key.

Exemple PHP complet

<?php
function boostcore(array $params): array {
  $curl = curl_init('https://www.boostcore.tech/api/v2');
  curl_setopt_array($curl, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => http_build_query($params),
    CURLOPT_TIMEOUT => 20,
    CURLOPT_HTTPHEADER => ['Accept: application/json'],
  ]);
  $body = curl_exec($curl);
  if ($body === false) throw new RuntimeException(curl_error($curl));
  $status = curl_getinfo($curl, CURLINFO_RESPONSE_CODE);
  curl_close($curl);
  $data = json_decode($body, true, 512, JSON_THROW_ON_ERROR);
  if ($status >= 400 || isset($data['error'])) {
    throw new RuntimeException($data['error'] ?? "HTTP $status");
  }
  return $data;
}

$services = boostcore([
  'key' => getenv('BOOSTCORE_API_KEY'),
  'action' => 'services',
]);

03 · REST moderne

Contrat REST versionné

Pour les intégrations qui préfèrent JSON, Bearer auth, références ORD-..., pagination et webhooks administrables, utilisez https://www.boostcore.tech/api/v1.

Les champs de prix, devis, solde, débit et remboursement de l'API REST sont exprimés en crédits BoostCore. Pour voir le catalogue tarifaire en crédits et en USD, connectez-vous à votre espace client et ouvrez l'onglet Développeur.

GET/servicescatalog:read
POST/quotescatalog:read
GET/balancewallet:read
GET/ordersorders:read
POST/ordersorders:write
GET/orders/{order_ref}orders:read
POST/orders/{order_ref}/cancelcancellations:write
POST/orders/{order_ref}/refillsrefills:write
GET/webhookswebhooks:manage

Tous les paramètres, schémas et codes HTTP sont définis dans les contrats OpenAPI 3.1 : API SMM classique et API REST moderne.

04 · Usage équitable

Limites gratuites et explicites

FenêtreLimite par clé
Toutes requêtes120 / minute
Mutations30 / minute
Total quotidien10 000 / jour

Lisez RateLimit-Remaining sur chaque réponse. En cas de 429, attendez le nombre de secondes indiqué dans Retry-After.

05 · Fiabilité

Une intention, une seule commande

Chaque création, annulation ou refill exige Idempotency-Key. Après un timeout, rejouez strictement la même requête avec la même clé. BoostCore retournera la ressource existante sans refaire le débit.

Idempotency-Key: votre_commande_000001

06 · Temps réel

Webhooks signés et retentés

Abonnez une URL HTTPS aux événements order.*. Vérifiez la signature HMAC-SHA256 calculée sur <timestamp>.<corps brut> avant tout traitement.

X-BoostCore-Delivery: uuid
X-BoostCore-Event: order.completed
X-BoostCore-Timestamp: 1788781805
X-BoostCore-Signature: v1=...

Répondez rapidement avec un statut 2xx. Les timeouts, erreurs réseau, 408, 425, 429 et 5xx sont retentés automatiquement.

07 · Diagnostic

Erreurs stables et traçables

Les erreurs REST contiennent un code, un message public et le booléen retryable. Conservez le header X-Request-Id pour le diagnostic, sans journaliser votre clé ni la cible complète.

{
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Quota API temporairement depasse.",
    "retryable": true
  },
  "meta": { "request_id": "..." }
}