Dressur API v1

Documentation développeur

Une API HTTP/JSON universelle pour créer et suivre vos Promotions Réseaux Sociaux Dressur.

Accès privé : toutes les routes v1 nécessitent un token Bearer créé depuis votre Espace développeur. Aucun prix, statut ou identifiant fournisseur ne peut être envoyé par le client.

Base et authentification

Base URL : https://dressur.site. Ajoutez cet en-tête à chaque requête :

Authorization: Bearer drk_demo_key.demo_secret
Accept: application/json

Le token ci-dessus est fictif. Ne partagez jamais une clé réelle. Le secret complet est affiché uniquement lors de la création de la clé.

Catalogue

GET /api/v1/developer/catalog retourne les formules disponibles, les quantités min/max, le prix calculé pour votre profil et si les commentaires sont requis.

Important — quantité de référence : le champ price est le montant correspondant à une quantité de référence de 1 000 unités. Pour une autre quantité, appliquez la règle de trois : montant = price × quantité souhaitée ÷ 1 000, puis utilisez le montant obtenu en respectant les bornes minimumQuantity et maximumQuantity. Le champ referenceQuantity est renvoyé pour confirmer la base tarifaire utilisée.
GET /api/v1/developer/catalog HTTP/1.1
Host: dressur.site
Authorization: Bearer drk_demo_key.demo_secret

{
  "error": false,
  "services": [{
    "id": 12,
    "title": "Instagram : Engagement",
    "referenceQuantity": 1000,
    "minimumQuantity": 100,
    "price": 1500,
    "currency": "XOF",
    "commentsRequired": true
  }]
}

Solde et création d’une commande

GET /api/v1/developer/balance retourne le solde commun soldeDressur. Pour créer une commande, envoyez du JSON à POST /api/v1/developer/orders et rendez l’en-tête Idempotency-Key obligatoire.

POST /api/v1/developer/orders HTTP/1.1
Host: dressur.site
Authorization: Bearer drk_demo_key.demo_secret
Content-Type: application/json
Idempotency-Key: commande-client-2026-0001

{
  "formuleId": 12,
  "quantity": 500,
  "link": "https://www.example.com/publication/123",
  "comments": ["Très bon contenu", "À découvrir"]
}

Le serveur recalcule le prix, applique le prix vendeur si votre compte possède ce statut et duplique cycliquement les lignes de commentaires jusqu’à la quantité demandée. Le nombre de commentaires envoyé ne peut pas dépasser la quantité.

Pour une commande, quantity représente la quantité réellement souhaitée. Le montant est donc calculé à partir du prix catalogue pour 1 000 unités : price × quantity ÷ 1 000. Par exemple, un prix de 1 500 XOF pour 1 000 unités correspond à 750 XOF pour 500 unités, avant l’arrondi appliqué par le serveur.

Une clé réutilisée avec le même contenu rejoue la même réponse. La même clé avec un contenu différent est refusée.

Réponses et erreurs

HTTPSignification
201Commande créée et débitée après confirmation du service.
402Solde Dressur insuffisant : aucune commande, aucun débit et aucun appel de service ne sont effectués.
409La même clé d’idempotence est déjà en cours de finalisation.
429Limite de polling atteinte. Respectez Retry-After et nextCheckAt.
503Service momentanément indisponible. Le détail technique n’est jamais exposé.

Historique et statut

GET /api/v1/developer/orders liste vos commandes. GET /api/v1/developer/orders/{reference} retourne une commande précise.

Pour le polling, utilisez GET /api/v1/developer/orders/{reference}/status. Dressur met en cache le résultat au moins 15 secondes et renvoie notamment status, nextCheckAt et retryAfter. N’interrogez pas plus souvent que le délai indiqué.

GET /api/v1/developer/orders/pr_0123456789abcdef01234567/status HTTP/1.1
Host: dressur.site
Authorization: Bearer drk_demo_key.demo_secret

{
  "error": false,
  "order": {
    "reference": "pr_0123456789abcdef01234567",
    "status": "in_progress",
    "nextCheckAt": "2026-08-27T12:00:15+00:00",
    "retryAfter": 15,
    "isFinal": false
  }
}

Statuts groupés

POST /api/v1/developer/orders/status-batch accepte au maximum 50 références appartenant à votre compte.

POST /api/v1/developer/orders/status-batch HTTP/1.1
Host: dressur.site
Authorization: Bearer drk_demo_key.demo_secret
Content-Type: application/json

{"references":["pr_0123456789abcdef01234567","pr_abcdef0123456789abcdef01"]}

Le polling est limité par clé, par compte et par adresse IP. En cas de 429, attendez avant de réessayer et utilisez de préférence le batch.