1. Présentation
Notre API est destinée à un usage purement professionnel, elle permet la communication en S2S (server-to-server) entre votre serveur et le serveur de Track History.
Le principal avantage de l'API est <span class="text-info">l'automatisation de vos évènements</span>. Si vous possédez un site ou une plateforme qui effectue des transactions en temps réel, vous n'allez bien sûr pas rester derrière pour reporter chaque transaction à la main sur votre compte Track History.
En outre, l'API vous permet aussi de :
- Lister vos évènements
- Gérer vos groupes
- Gérer vos catégories
- Gérer vos types de valeurs
2. Prérequis
- Posséder un serveur capable d'envoyer des requêtes HTTP
- Acheter des requêtes API sur Track History
- Avoir quelques connaissances techniques ou embaucher un développeur *
* En l'absence de développeur, nous pouvons nous occuper de l'installation si votre infrastructure nous le permet.<br>Ceci est toutefois un service payant.
3. Étapes pour obtenir une clef privée
- Créer un compte sur Track History
- Acheter des requêtes API
- Rendez-vous sur Mes comptes API
- Assurez-vous d'avoir au moins un compte <b>Actif</b>
- Copiez la clef privée
La clef privée n'est affichée que partiellement sur l'interface ! Cliquez dessus vous permettra de la copier intégralement.
Attention ! Une clef privée doit être uniquement utilisé côté backend. Ne l'utilisez pas sur du frontend (html, js, ou tout code pouvant être lu directement sur le navigateur).
N'utilisez l'API que si vous savez exactement ce que vous faites, c'est un risque de sécurité potentiel pour votre compte Track History.
4. Comment utiliser la clef dans vos requêtes
Envoyez votre clef privée dans l'en-tête Authorization, en Bearer. L'en-tête X-Api-Key est accepté aussi. Ne la passez jamais dans l'URL : elle finirait dans les journaux des serveurs.
Dans les exemples ci-dessous, remplacez votre_clef_privee par la clef privée que vous avez copiée.
1. En-tête Authorization (recommandé)
curl https://api.track-history.com/event \
-H "Authorization: Bearer votre_clef_privee"
2. En-tête X-Api-Key
curl https://api.track-history.com/event \
-H "X-Api-Key: votre_clef_privee"
Chaque requête faite avec une clef décompte une requête de votre stock. Une fois le stock épuisé, l'API répond 401 avec l'erreur api_request_limit_reached.
5. Requêtes
URL d'accès à l'API : https://api.track-history.com
Les paramètres envoyés et les réponses sont toujours en JSON : Content-Type: application/json
- Les dates s'écrivent
AAAA-MM-JJ HH:MM:SS, en heure locale, sans fuseau. - Une création répond
201avec l'objet créé, identifiant compris. - Une mise à jour (
PATCH) ne modifie que les champs envoyés et répond avec l'objet à jour. - Une suppression répond
{"success": true}. - Les listes (
defaultValues,values) remplacent la liste existante quand elles sont envoyées : gardez l'iddes éléments à conserver.
Erreurs
Une erreur répond avec un code HTTP et un objet error qui en donne la raison :
{
"error": "event_not_found"
}
400données invalides, par exemple un évènement accompli sans date de fin (ending_date_required)401clef absente, invalide, ou stock de requêtes épuisé (api_request_limit_reached)402limite de votre formule atteinte, par exemple le nombre de groupes404ressource introuvable sur votre compte
> Groupe
| Nom | Route | Paramètres / Réponse |
|---|---|---|
| Liste des groupes | GET /event-group |
Réponse
|
| Compter les groupes | GET /event-group/count |
Réponse |
| Récupérer un groupe | GET /event-group/{id} |
Réponse : un objet groupe, comme dans la liste |
| Créer un groupe | POST /event-group |
Paramètres
Réponse (201) : le groupe créé, au même format que GET /event-group/{id}
|
| Mettre à jour un groupe | PATCH /event-group/{id} |
Mêmes paramètres que la création, tous facultatifs. Réponse : l'objet à jour. |
| Supprimer un groupe | DELETE /event-group/{id} |
Réponse |
> Catégorie
| Nom | Route | Paramètres / Réponse |
|---|---|---|
| Liste des catégories | GET /event-type |
Réponse
|
| Récupérer une catégorie | GET /event-type/{id} |
Réponse : un objet catégorie, comme dans la liste |
| Créer une catégorie | POST /event-type |
Paramètres
Réponse (201) : la catégorie créée, au même format que GET /event-type/{id}
|
| Mettre à jour une catégorie | PATCH /event-type/{id} |
Mêmes paramètres que la création, tous facultatifs. Réponse : l'objet à jour. |
| Supprimer une catégorie | DELETE /event-type/{id} |
Réponse |
> Type de valeur
| Nom | Route | Paramètres / Réponse |
|---|---|---|
| Liste des types de valeurs | GET /event-value-type |
Réponse
|
| Récupérer un type de valeur | GET /event-value-type/{id} |
Réponse : un objet type de valeur, comme dans la liste |
| Créer un type de valeur | POST /event-value-type |
Paramètres
Réponse (201) : le type de valeur créé, au même format que GET /event-value-type/{id}
|
| Mettre à jour un type de valeur | PATCH /event-value-type/{id} |
Mêmes paramètres que la création, tous facultatifs. Réponse : l'objet à jour. |
| Supprimer un type de valeur | DELETE /event-value-type/{id} |
Réponse |
> Évènement
| Nom | Route | Paramètres / Réponse |
|---|---|---|
| Liste des évènements | GET /event |
Paramètres de requête, tous facultatifs :
|
| Compter les évènements | GET /event/count |
Accepte les mêmes filtres que la liste. |
| Récupérer un évènement | GET /event/{id} |
Réponse : un objet évènement, comme dans la liste |
| Créer un évènement | POST /event |
Paramètres
« identifier » est facultatif et libre : ce que l'évènement concerne (un joueur, une machine, une commande…). Deux évènements au même identifiant concernent la même chose, ce qui permet de compter des identifiants distincts et de filtrer avec GET /event?identifier=… Réponse (201) : l'évènement créé, au même format que GET /event/{id} |
| Mettre à jour un évènement | PATCH /event/{id} |
Mêmes paramètres que la création, tous facultatifs. Envoyer "identifier": null retire l'identifiant. Une clef ne peut modifier ou supprimer que les évènements qu'elle a créés et ceux saisis dans l'application. Réponse : l'objet à jour. |
| Supprimer un évènement | DELETE /event/{id} |
Réponse |