Documentation de l'API stats de Yoxo

Obtenir ma clé api

Routes API

GET /api/stats/ranking

Description:
Cette route renvoie le classement des joueurs ayant comptabilisé le plus de temps de jeu en moyenne et par jour au cours de la période demandée sur un serveur spécifique. Si aucun serveur n'est spécifié, elle retourne le classement global (Interserveur). Par défaut, la journée en cours n'est pas prise en compte.

Paramètres de requête:

  • server (optionnel) : Le nom du serveur pour lequel le classement est demandé.
  • last_rank (optionnel) : Le nombre maximum de joueurs à renvoyer (maximum 1000).
  • average_time (optionnel) : La période de temps pour laquelle les données doivent être agrégées, en jours (maximum 60 jours).
  • time_unit (optionnel) : L'unité de temps souhaité pour la moyenne (second, minute, hour, day, week, month, year).
  • complete (optionnel) : Lorsque cette option est présente, nous calculons en plus les données pour la journée en cours. Attention, cette option va ralentir la réponse de la requête (environ 600ms). Nous imposons une limite de 14 jours en average_time pour cette option.

Exemple de requête

GET /api/stats/ranking?server=server_name&last_rank=10&average_time=7&time_unit=second

Réponse

{
    "server": "server_name",
    "players": [
        { "rank": 1, "username": "player1", "average": 123.45, "main_server": "yellow" },
        { "rank": 2, "username": "player2", "average": 98.76, "main_server": "coral" },
        ...
        { "rank": 10, "username": "player10", "average": 6.54, "main_server": "red" }
    ],
    "time_unit": "second",
    "average_time": "7 days"
}

GET /api/stats/average

Description:
Cette route renvoie la moyenne d'activité par jours (période de 24h) pour un joueur spécifique sur une période donnée. Par défaut, nous ne renvoyons pas les données pour la journée en cours.

Paramètres de requête:

  • username (obligatoire) : Le nom d'utilisateur du joueur pour lequel la moyenne est demandée.
  • average_time (optionnel) : La période de temps pour laquelle les données doivent être agrégées, en jours (maximum 60 jours).
  • time_unit (optionnel) : L'unité de temps souhaité pour la moyenne (second, minute, hour, day, week, month, year).
  • complete (optionnel) : Lorsque cette option est présente, nous calculons en plus les données pour la journée en cours. Attention, cette option va ralentir la réponse de la requête (environ 600ms).

Exemple de requête

GET /api/stats/average?username=player1&average_time=7&time_unit=second&fast

Réponse

{
    "username": "player1",
    "average": 123.45,
    "time_unit": "second",
    "average_time": "7 days"
}

GET /api/stats/servers

Description:
Cette route renvoie le nombre de joueurs connectés par serveur sur une période spécifique. Par défaut, la période est de 1s, la requête retourne donc le nombre de joueurs connectés par serveur à l'instant T. La granularité correspond à la période de temps entre chaque point de données retourné. Attention, plus la période est longue, plus la granularité aura une valeur élevée.

Paramètres de requête:

  • period (optionnel) : La période sur laquelle les statistiques doivent être récupérées. La période doit être spécifiée en respectant la forme suivante des exemples suivants: "6h" pour 6 heures, "1d" pour 1 jour, "5m" pour 5 minutes et "30s" pour 30 secondes.
  • server (optionnel) : Le nom du serveur pour lequel les statistiques sont demandées. Si cette option est présente, les données ne seront renvoyées que pour ce serveur.
  • max_values (optionnel) : Le nombre maximum de valeurs à renvoyer (chaque serveur est considéré individuellement). Si cette option est présente, la granularité sera ajustée pour renvoyer le nombre de valeurs demandées.

Exemple de requête

GET /api/stats/servers?period=6h

Réponse

{
    "servers": [
        { "server": "blue", online: true, "connected_players": 15, "timestamp": 1692619200 },
        ...
        { "server": "red", online:true, "connected_players": 20, "timestamp": 1692619200 }
    ],
    "granularity": 300
}

GET /api/stats/serversAvg

Description:
Cette route renvoie la moyenne de joueurs connectés par jour sur les différents serveurs de NationsGlory. Par défaut, toutes les données sont retournés

Paramètres de requête:

  • from (optionnel) : La date de début de la période sur laquelle les statistiques doivent être récupérées. La date doit être spécifiée au format "yyyy-mm-dd".
  • to (optionnel) : La date de fin de la période sur laquelle les statistiques doivent être récupérées. La date doit être spécifiée au format "yyyy-mm-dd".
  • server (optionnel) : Le nom du serveur pour lequel les statistiques sont demandées. Si cette option est présente, les données ne seront renvoyées que pour ce serveur.

Exemple de requête

GET /api/stats/serversAvg?from=2024-11-27&to=2024-11-30&server=red

Réponse

[
    {
        "date": "2024-11-27",
        "server": "NATIONSGLORY RED",
        "connected_avg": 13.84024390243902
    },
    {
        "date": "2024-11-28",
        "server": "NATIONSGLORY RED",
        "connected_avg": 10.1656239137991
    },
    {
        "date": "2024-11-29",
        "server": "NATIONSGLORY RED",
        "connected_avg": 14.23718215923301
    }
]

GET /api/stats/serversRestart

Description:
Cette route vous permet de connaitre les dates de restart des serveurs de NationsGlory. Pour votre information, certains serveurs ayant redémarrer peuvent ne pas être référencé si ils ont redémarré entre 2 fetch des données.

Paramètres de requête:

  • server (optionnel) : Le nom du serveur pour lequel les statistiques sont demandées. Si cette option est présente, les données ne seront renvoyées que pour ce serveur.
  • period (optionnel) : La période sur laquelle les statistiques doivent être récupérées. La période doit être spécifiée en respectant la forme suivante des exemples suivants: "6h" pour 6 heures, "1d" pour 1 jour, "5m" pour 5 minutes et "30s" pour 30 secondes.
  • last (optionnel) : Si cette option est présente, seule la dernière date de restart sera renvoyée. (Pour chaque serveur). S'utilise comme suit: last=true

Exemple de requête

GET /api/stats/serversRestart?server=red&period=6h

Réponse

[
    {
        "server": "red",
        "timestamp": 1732510850.607,
        "date": "2024-11-25T05:00:50.607Z"
    },
    {
        "server": "red",
        "timestamp": 1732477430.609,
        "date": "2024-11-24T19:43:50.609Z"
    }
]

GET /api/stats/hdv

Description:
Cette route renvoie les statistiques de l'hôtel des ventes (HDV) sur un serveur et pour un item spécifique sur une période donnée. Certains jours peuvent manquer si aucun item n'a été vendu.

Paramètres de requête:

  • server (obligatoire) : Le nom du serveur sur lequel les statistiques sont demandées.
  • item (obligatoire) : Le nom de l'item pour lequel les statistiques sont demandées. Le nom des items correspond à celui renvoyés par l'endpoint HDV de l'API public de NationsGlory.
  • period (optionnel) : La période sur laquelle les statistiques doivent être récupérées. La période doit être spécifiée est exprimé en jours ! Par défaut, toutes les données disponible seront renvoyés.
  • reverse (optionnel) : Si cette option est présente, les données seront renvoyées dans l'ordre inverse. (du plus ancien au plus récent)

Exemple de requête

GET /api/stats/hdv?server=red&item=stone&period=5

Réponse

[
    {
        "date": "2024-08-28",
        "item": "stone",
        "total_sold": 2218,
        "price_average": 1,
        "price_median": 1
    },
    {
        "date": "2024-08-27",
        "item": "stone",
        "total_sold": 9577,
        "price_average": 1,
        "price_median": 1
    },
    {
        "date": "2024-08-26",
        "item": "stone",
        "total_sold": 1884,
        "price_average": 1,
        "price_median": 1
    },
    {
        "date": "2024-08-25",
        "item": "stone",
        "total_sold": 2190,
        "price_average": 1,
        "price_median": 1
    },
    {
        "date": "2024-08-24",
        "item": "stone",
        "total_sold": 534,
        "price_average": 1,
        "price_median": 1
    }
]

GET /api/stats/hdvSearch

Description:
Cette route renvoie la liste des items correspondant à la recherche effectuée. La recherche est insensible à la casse.

Paramètres de requête:

  • item (obligatoire) : Le nom de l'item pour lequel la recherche est demandée.
  • startsWith (optionnel) : Si cette option est présente, les items qui commencent par le nom de l'item recherché seront renvoyés en premier.
  • all (optionnel) : Si cette option est présente, tous les noms de tous les items seront renvoyées.
  • noRenames (optionnel) : Si cette option est présente, les items renommés ne seront pas renvoyés. (Ceux contenant le caractère "§")

Exemple de requête

GET /api/stats/hdvSearch?item=meteor&startsWith

Réponse

[
    "meteor",
    "meteor fragment",
    "meteoric iron ingot",
    "raw meteoric iron"
]