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_iciVotre 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.
/validate
Valider une clé de licenceVé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ètre | Type | Requis | Description |
|---|---|---|---|
key | string | Oui | Clé de licence à valider (format XXXXX-XXXXX-XXXXX-XXXXX) |
hwid | string | Oui | Identifiant matériel unique de la machine (Hardware ID) |
mac | string | Oui | Adresse MAC de l'interface réseau principale |
Réponse (JSON)
| Champ | Type | Description |
|---|---|---|
success | boolean | Indique si la requête a été traitée avec succès |
valid | boolean | Indique si la licence est valide et active |
status | string | Statut de la licence : active, expired, suspended, revoked |
type | string | Type de licence : personal, studio, ultimate |
hwid_match | boolean | Indique si le HWID correspond à celui enregistré |
expires_at | string | Date 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"
}/activate
Activer une licenceActive 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ètre | Type | Requis | Description |
|---|---|---|---|
key | string | Oui | Clé de licence à activer |
hwid | string | Oui | Identifiant matériel unique de la machine |
mac | string | Oui | Adresse MAC de l'interface réseau principale |
machine_name | string | Oui | Nom de la machine (hostname) |
nom | string | Oui | Nom de famille du titulaire de la licence |
prenom | string | Oui | Prénom du titulaire de la licence |
email | string | Oui | Adresse email du titulaire de la licence |
Réponse (JSON)
| Champ | Type | Description |
|---|---|---|
success | boolean | Indique si l'activation a été réalisée avec succès |
type | string | Type de licence activée : personal, studio, ultimate |
expires_at | string | Date 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"
}/deactivate
Désactiver une licenceDé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ètre | Type | Requis | Description |
|---|---|---|---|
key | string | Oui | Clé de licence à désactiver |
hwid | string | Oui | Identifiant matériel de la machine à désactiver |
mac | string | Oui | Adresse MAC de la machine à désactiver |
Réponse (JSON)
| Champ | Type | Description |
|---|---|---|
success | boolean | Indique si la désactivation a été réalisée avec succès |
message | string | Message 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."
}/info/{key}
Informations d'une licenceRé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ètre | Type | Requis | Description |
|---|---|---|---|
{key} | string | Oui | Clé de licence dont on souhaite obtenir les informations |
Réponse (JSON)
| Champ | Type | Description |
|---|---|---|
license_key | string | Clé de licence interrogée |
type | string | Type de licence : personal, studio, ultimate |
status | string | Statut actuel : active, expired, suspended, revoked, pending |
created_at | string | Date de création de la licence au format ISO 8601 |
activated_at | string|null | Date de première activation (null si jamais activée) |
expires_at | string | Date 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"
}/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ètre | Type | Requis | Description |
|---|---|---|---|
key | string | Oui | Clé de licence active |
hwid | string | Oui | Identifiant matériel de la machine |
mac | string | Oui | Adresse MAC de la machine |
app_version | string | Oui | Version actuelle du logiciel BeatMate (ex: 11.0.0) |
Réponse (JSON)
| Champ | Type | Description |
|---|---|---|
success | boolean | Indique si le heartbeat a été traité avec succès |
valid | boolean | Indique si la licence est toujours valide |
action | string | Action à effectuer : none, update_available, force_update, revoke |
status | string | Statut 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 HTTP | Statut | Description |
|---|---|---|
200 | OK | La requête a été traitée avec succès. Le corps de la réponse contient les données demandées. |
400 | Bad Request | La 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é. |
401 | Unauthorized | Le header X-BeatMate-API-Key est absent ou la clé API fournie est invalide. Vérifiez que votre clé API est correcte et active. |
403 | Forbidden | L'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. |
404 | Not Found | La 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. |
429 | Too Many Requests | Vous 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. |
500 | Internal Server Error | Une 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.