Aller au contenu

Documentation API

Référence complète de l'API REST BeatMate v1. Intégrez le système de licences BeatMate dans vos outils et workflows grâce à notre API sécurisée et documentée.

Authentification

Toutes les requêtes vers l'API BeatMate nécessitent un header d'authentification. Vous devez inclure votre clé API dans chaque requête via le header HTTP suivant :

X-BeatMate-API-Key: votre_cle_api_ici

Votre clé API est disponible dans le dashboard d'administration BeatMate. Chaque clé API est unique et liée à votre compte administrateur. Ne partagez jamais votre clé API et ne l'exposez pas dans du code côté client.

Important : Les requêtes sans header X-BeatMate-API-Key ou avec une clé invalide recevront une réponse HTTP 401 Unauthorized. Conservez votre clé API en lieu sûr et régénérez-la immédiatement en cas de compromission.

Base URL

Toutes les requêtes doivent être envoyées à l'URL de base suivante :

https://beatmate.app/wp-json/beatmate/v1/

Toutes les requêtes et réponses utilisent le format JSON. Assurez-vous d'inclure le header Content-Type: application/json pour les requêtes POST.

Endpoints

L'API BeatMate v1 expose les endpoints suivants pour la gestion complète du cycle de vie des licences.

POST /validate Valider une clé de licence

Vérifie la validité d'une clé de licence et son association avec l'identifiant matériel (HWID) de la machine. Cet endpoint est utilisé par le logiciel BeatMate à chaque démarrage pour vérifier que la licence est active et valide.

Paramètres du body (JSON)

ParamètreTypeRequisDescription
keystringOuiClé de licence à valider (format XXXXX-XXXXX-XXXXX-XXXXX)
hwidstringOuiIdentifiant matériel unique de la machine (Hardware ID)
macstringOuiAdresse MAC de l'interface réseau principale

Réponse (JSON)

ChampTypeDescription
successbooleanIndique si la requête a été traitée avec succès
validbooleanIndique si la licence est valide et active
statusstringStatut de la licence : active, expired, suspended, revoked
typestringType de licence : personal, studio, ultimate
hwid_matchbooleanIndique si le HWID correspond à celui enregistré
expires_atstringDate d'expiration de la licence au format ISO 8601

Exemple cURL

curl -X POST https://beatmate.app/wp-json/beatmate/v1/validate \
  -H "Content-Type: application/json" \
  -H "X-BeatMate-API-Key: votre_cle_api" \
  -d '{
    "key": "ABCDE-12345-FGHIJ-67890",
    "hwid": "a1b2c3d4e5f6g7h8",
    "mac": "00:1A:2B:3C:4D:5E"
  }'

Exemple de réponse

{
  "success": true,
  "valid": true,
  "status": "active",
  "type": "studio",
  "hwid_match": true,
  "expires_at": "2027-04-06T23:59:59Z"
}
POST /activate Activer une licence

Active une clé de licence sur une machine spécifique. Cette opération lie la licence à l'identifiant matériel (HWID) de la machine et enregistre les informations du titulaire. L'activation est requise avant toute utilisation du logiciel.

Paramètres du body (JSON)

ParamètreTypeRequisDescription
keystringOuiClé de licence à activer
hwidstringOuiIdentifiant matériel unique de la machine
macstringOuiAdresse MAC de l'interface réseau principale
machine_namestringOuiNom de la machine (hostname)
nomstringOuiNom de famille du titulaire de la licence
prenomstringOuiPrénom du titulaire de la licence
emailstringOuiAdresse email du titulaire de la licence

Réponse (JSON)

ChampTypeDescription
successbooleanIndique si l'activation a été réalisée avec succès
typestringType de licence activée : personal, studio, ultimate
expires_atstringDate d'expiration de la licence au format ISO 8601

Exemple cURL

curl -X POST https://beatmate.app/wp-json/beatmate/v1/activate \
  -H "Content-Type: application/json" \
  -H "X-BeatMate-API-Key: votre_cle_api" \
  -d '{
    "key": "ABCDE-12345-FGHIJ-67890",
    "hwid": "a1b2c3d4e5f6g7h8",
    "mac": "00:1A:2B:3C:4D:5E",
    "machine_name": "DJ-STUDIO-PC",
    "nom": "Dupont",
    "prenom": "Jean",
    "email": "jean.dupont@example.com"
  }'

Exemple de réponse

{
  "success": true,
  "type": "studio",
  "expires_at": "2027-04-06T23:59:59Z"
}
POST /deactivate Désactiver une licence

Désactive une licence sur la machine actuelle. Cette opération libère le slot d'activation, permettant au titulaire de réactiver la licence sur une autre machine. La désactivation est irréversible pour la session en cours.

Paramètres du body (JSON)

ParamètreTypeRequisDescription
keystringOuiClé de licence à désactiver
hwidstringOuiIdentifiant matériel de la machine à désactiver
macstringOuiAdresse MAC de la machine à désactiver

Réponse (JSON)

ChampTypeDescription
successbooleanIndique si la désactivation a été réalisée avec succès
messagestringMessage de confirmation ou d'erreur

Exemple cURL

curl -X POST https://beatmate.app/wp-json/beatmate/v1/deactivate \
  -H "Content-Type: application/json" \
  -H "X-BeatMate-API-Key: votre_cle_api" \
  -d '{
    "key": "ABCDE-12345-FGHIJ-67890",
    "hwid": "a1b2c3d4e5f6g7h8",
    "mac": "00:1A:2B:3C:4D:5E"
  }'

Exemple de réponse

{
  "success": true,
  "message": "Licence désactivée avec succès. Le slot d'activation est maintenant disponible."
}
GET /info/{key} Informations d'une licence

Récupère les informations détaillées d'une licence à partir de sa clé. Cet endpoint permet de consulter le type, le statut, les dates de création, d'activation et d'expiration d'une licence sans effectuer de validation.

Paramètres d'URL

ParamètreTypeRequisDescription
{key}stringOuiClé de licence dont on souhaite obtenir les informations

Réponse (JSON)

ChampTypeDescription
license_keystringClé de licence interrogée
typestringType de licence : personal, studio, ultimate
statusstringStatut actuel : active, expired, suspended, revoked, pending
created_atstringDate de création de la licence au format ISO 8601
activated_atstring|nullDate de première activation (null si jamais activée)
expires_atstringDate d'expiration de la licence au format ISO 8601

Exemple cURL

curl -X GET https://beatmate.app/wp-json/beatmate/v1/info/ABCDE-12345-FGHIJ-67890 \
  -H "X-BeatMate-API-Key: votre_cle_api"

Exemple de réponse

{
  "license_key": "ABCDE-12345-FGHIJ-67890",
  "type": "studio",
  "status": "active",
  "created_at": "2026-01-15T10:30:00Z",
  "activated_at": "2026-01-15T14:22:00Z",
  "expires_at": "2027-01-15T23:59:59Z"
}
POST /heartbeat Vérification périodique (Heartbeat)

Envoi d'un signal de vérification périodique pendant l'utilisation du logiciel. Cet endpoint permet de vérifier que la licence est toujours valide, de détecter une éventuelle révocation, et de recevoir des instructions de mise à jour ou d'action côté client. Le heartbeat est envoyé toutes les 30 minutes par le logiciel.

Paramètres du body (JSON)

ParamètreTypeRequisDescription
keystringOuiClé de licence active
hwidstringOuiIdentifiant matériel de la machine
macstringOuiAdresse MAC de la machine
app_versionstringOuiVersion actuelle du logiciel BeatMate (ex: 11.0.0)

Réponse (JSON)

ChampTypeDescription
successbooleanIndique si le heartbeat a été traité avec succès
validbooleanIndique si la licence est toujours valide
actionstringAction à effectuer : none, update_available, force_update, revoke
statusstringStatut actuel de la licence

Exemple cURL

curl -X POST https://beatmate.app/wp-json/beatmate/v1/heartbeat \
  -H "Content-Type: application/json" \
  -H "X-BeatMate-API-Key: votre_cle_api" \
  -d '{
    "key": "ABCDE-12345-FGHIJ-67890",
    "hwid": "a1b2c3d4e5f6g7h8",
    "mac": "00:1A:2B:3C:4D:5E",
    "app_version": "11.0.0"
  }'

Exemple de réponse

{
  "success": true,
  "valid": true,
  "action": "none",
  "status": "active"
}

Rate Limiting

Pour garantir la stabilité et la disponibilité de l'API pour tous les utilisateurs, des limites de requêtes sont appliquées. En cas de dépassement, l'API retournera une erreur HTTP 429 Too Many Requests.

Limite globale

10 requêtes par minute par clé API. Cette limite s'applique à l'ensemble des endpoints de manière cumulative. Les headers de réponse X-RateLimit-Limit, X-RateLimit-Remaining et X-RateLimit-Reset vous permettent de suivre votre consommation en temps réel.

Limite d'activations

5 activations par heure par clé API. Cette limite spécifique concerne uniquement l'endpoint /activate et protège contre les abus d'activation. En cas de besoin légitime de dépasser cette limite, contactez le support technique.

Codes d'erreur

L'API BeatMate utilise les codes de statut HTTP standards pour indiquer le résultat d'une requête. En cas d'erreur, le corps de la réponse contient un objet JSON avec un champ "error" décrivant le problème.

Code HTTPStatutDescription
200OKLa requête a été traitée avec succès. Le corps de la réponse contient les données demandées.
400Bad RequestLa requête est malformée ou des paramètres obligatoires sont manquants. Vérifiez le format JSON et les paramètres requis pour l'endpoint appelé.
401UnauthorizedLe header X-BeatMate-API-Key est absent ou la clé API fournie est invalide. Vérifiez que votre clé API est correcte et active.
403ForbiddenL'accès à la ressource est interdit. Votre clé API ne dispose pas des permissions nécessaires pour effectuer cette action, ou la licence est suspendue/révoquée.
404Not FoundLa ressource demandée n'existe pas. La clé de licence spécifiée est introuvable dans notre base de données ou l'endpoint n'existe pas.
429Too Many RequestsVous avez dépassé la limite de requêtes autorisées. Attendez le délai indiqué dans le header Retry-After avant de réessayer. Consultez la section Rate Limiting pour les détails.
500Internal Server ErrorUne erreur interne est survenue côté serveur. Si le problème persiste, contactez le support technique avec le contenu de la réponse.

Exemple de réponse d'erreur

{
  "success": false,
  "error": "invalid_api_key",
  "message": "La clé API fournie est invalide ou a été révoquée."
}

Besoin d'aide avec l'API ?

Notre équipe technique est disponible pour vous accompagner dans l'intégration de l'API BeatMate. N'hésitez pas à nous contacter pour toute question technique ou demande d'augmentation de vos limites de requêtes.

-10% sur votre première licence

Ne partez pas sans votre cadeau !

Inscrivez-vous à notre newsletter et recevez un code promo de 10% de réduction sur votre première licence BeatMate.