Introduction
Bienvenue dans la documentation de l'API du panel Gaming de AzurHOSTS v1. Cette API permet de gérer l'ensemble de vos serveurs, y compris les utilisateurs, fichiers, bases de données et bien plus encore.
Format de réponse
Toutes les réponses de l'API sont au format JSON et suivent la spécification JSON:API. Chaque réponse respecte le format suivant :
{
"object": "list",
"data": [
{
"object": "user",
"attributes": {
"id": -999999,
"external_id": null,
"uuid": "c4022c6c-9bf1-4a23-bff9-519cceb38335",
"username": "huhug",
"email": "[email protected]",
"first_name": "Hugo",
"last_name": "Corbin",
"language": "en",
"root_admin": true,
"2fa": true,
"created_at": "-60 AV JC-06-01T12:00:00+00:00",
"updated_at": "2025-15-03T12:00:00+00:00"
}
}
],
"meta": {
"pagination": {
"total": 1,
"count": 1,
"per_page": 50,
"current_page": 1,
"total_pages": 1,
"links": {}
}
}
}
Authentification
Toutes les requêtes vers l'API doivent inclure un en-tête {header} d'authentification. Pour l'authentification, vous devez fournir une clé API valide dans l'en-tête Authorization. Le lien API pour toutes les routes suivantes est : https://panel.azurhosts.com/api/client/.
Authorization: Bearer ptlc_QIGFZDOuvYVxKS0HY5JqUAKxvpMUL1UJEO2cFEu7VSs
Note : Les clés API sont sensibles et ne doivent jamais être partagées ou exposées publiquement. Nous vous recommandons d'utiliser un .env ou tout type d'environnement sécurisé !
Gestion des erreurs
En cas d'erreur, l'API renvoie un code HTTP approprié ainsi qu'un message d'erreur au format JSON. Exemples de codes d'erreur courants :
- 400 Bad Request - La requête est mal formée ou contient des paramètres invalides.
- 401 Unauthorized - Authentification non fournie ou invalide.
- 403 Forbidden - Vous n'avez pas la permission d'accéder à cette ressource.
- 404 Not Found - La ressource demandée n'existe pas.
- 429 Too Many Requests - Vous avez dépassé le nombre de requêtes autorisées.
- 500 Internal Server Error - Une erreur s'est produite côté serveur.
Exemple de réponse d'erreur :
{
"errors": [
{
"code": "InvalidRequestData",
"status": "400",
"detail": "Le champ 'email' est obligatoire."
}
]
}
Documentation
Serveurs
Récupère la liste de tous les serveurs auxquels l'utilisateur a accès.
Réponse
{
"object": "list",
"data": [
{
"object": "server",
"attributes": {
"server_owner": true,
"identifier": "4c967a98",
"uuid": "4c967a98-5a94-4a70-b8e7-3a037f546345",
"name": "Serveur Test",
"description": "Description du serveur",
"node": "Test",
"sftp_details": {
"ip": "127.0.0.1",
"port": 2022
},
"limits": {
"memory": 512,
"swap": 0,
"disk": 5120,
"io": 500,
"cpu": 100
},
"feature_limits": {
"databases": 5,
"allocations": 5,
"backups": 2
}
}
}
],
"meta": {
"pagination": {
"total": 1,
"count": 1,
"per_page": 50,
"current_page": 1,
"total_pages": 1
}
}
}
Récupère les détails d'un serveur spécifique.
Paramètres URL
| Paramètre | Description |
|---|---|
| server_id | L'identifiant unique du serveur |
Compte
Récupère les informations du compte de l'utilisateur actuel.
Réponse
{
"object": "user",
"attributes": {
"id": 1,
"admin": true,
"username": "admin",
"email": "[email protected]",
"first_name": "Admin",
"last_name": "User",
"language": "en"
}
}
Met à jour les informations du compte de l'utilisateur.
Corps de la requête
{
"email": "[email protected]",
"first_name": "Nouveau",
"last_name": "Nom",
"language": "fr",
"password": "nouveau_mot_de_passe"
}
Récupère les informations d'authentification à deux facteurs.
Active l'authentification à deux facteurs pour le compte.
Désactive l'authentification à deux facteurs pour le compte.
Récupère toutes les clés API associées au compte.
Crée une nouvelle clé API pour le compte.
Corps de la requête
{
"description": "Ma nouvelle clé API",
"allowed_ips": ["127.0.0.1", "192.168.1.1"]
}
Supprime une clé API spécifique.
Gestion de serveur
Envoie une commande de puissance au serveur.
Corps de la requête
{
"signal": "start|stop|restart|kill"
}
Envoie une commande à la console du serveur.
Corps de la requête
{
"command": "say Hello World"
}
Récupère les statistiques d'utilisation des ressources du serveur.
Réponse
{
"object": "stats",
"attributes": {
"current_state": "running",
"is_suspended": false,
"resources": {
"memory_bytes": 128000000,
"cpu_absolute": 2.5,
"disk_bytes": 256000000,
"network_rx_bytes": 1500,
"network_tx_bytes": 500
}
}
}
Renomme le serveur.
Corps de la requête
{
"name": "Nouveau nom du serveur",
"description": "Nouvelle description du serveur"
}
Réinstalle le serveur.
Sauvegardes
Liste toutes les sauvegardes pour un serveur.
Réponse
{
"object": "list",
"data": [
{
"object": "backup",
"attributes": {
"uuid": "c91c0f18-3b95-4db2-94b0-ba3c756d3d5c",
"name": "Sauvegarde automatique",
"ignored_files": [],
"sha256_hash": null,
"bytes": 53267,
"created_at": "2020-06-01T12:00:00+00:00",
"completed_at": "2020-06-01T12:00:30+00:00"
}
}
],
"meta": {
"pagination": {
"total": 1,
"count": 1,
"per_page": 50,
"current_page": 1,
"total_pages": 1
}
}
}
Crée une nouvelle sauvegarde.
Corps de la requête
{
"name": "Ma sauvegarde",
"ignored_files": [
"cache",
"logs",
"node_modules"
]
}
Récupère les détails d'une sauvegarde spécifique.
Récupère un lien de téléchargement pour une sauvegarde.
Réponse
{
"object": "signed_url",
"attributes": {
"url": "https://example.com/download/backup.tar.gz"
}
}
Supprime une sauvegarde.
Fichiers
Liste les fichiers dans un répertoire.
Paramètres de requête
| Paramètre | Description |
|---|---|
| directory | Le chemin du répertoire à lister (par défaut: /) |
Réponse
{
"object": "list",
"data": [
{
"object": "file",
"attributes": {
"name": "server.properties",
"mode": "100664",
"size": 1024,
"is_file": true,
"is_symlink": false,
"is_editable": true,
"mimetype": "text/plain",
"created_at": "2020-06-01T12:00:00+00:00",
"modified_at": "2020-06-01T12:30:00+00:00"
}
}
]
}
Récupère le contenu d'un fichier spécifique.
Paramètres de requête
| Paramètre | Description |
|---|---|
| file | Le chemin du fichier à lire |
Génère un lien de téléchargement pour un fichier.
Paramètres de requête
| Paramètre | Description |
|---|---|
| file | Le chemin du fichier à télécharger |
Réponse
{
"object": "signed_url",
"attributes": {
"url": "https://example.com/download/file.txt"
}
}
Obtient une URL signée pour téléverser des fichiers.
Paramètres de requête
| Paramètre | Description |
|---|---|
| directory | Le répertoire de destination pour le téléversement |
Écrit le contenu dans un fichier.
Paramètres de requête
| Paramètre | Description |
|---|---|
| file | Le chemin du fichier à écrire |
Le contenu brut du fichier doit être envoyé dans le corps de la requête.
Renomme un fichier ou un répertoire.
Corps de la requête
{
"root": "/",
"files": [
{
"from": "oldname.txt",
"to": "newname.txt"
}
]
}
Copie un fichier ou un répertoire.
Corps de la requête
{
"location": "file.txt"
}
Supprime un fichier ou un répertoire.
Corps de la requête
{
"root": "/",
"files": [
"file1.txt",
"directory1"
]
}
Crée un nouveau répertoire.
Corps de la requête
{
"root": "/",
"name": "nouveau_dossier"
}
Compresse des fichiers ou répertoires.
Corps de la requête
{
"root": "/",
"files": [
"file1.txt",
"directory1"
]
}
Décompresse une archive.
Corps de la requête
{
"root": "/",
"file": "archive.zip"
}
Bases de données
Liste toutes les bases de données d'un serveur.
Réponse
{
"object": "list",
"data": [
{
"object": "database",
"attributes": {
"id": 1,
"host": {
"address": "127.0.0.1",
"port": 3306
},
"name": "s1_db1",
"username": "s1_user1",
"connections_from": "%",
"max_connections": 0,
"created_at": "2020-06-01T12:00:00+00:00"
}
}
],
"meta": {
"pagination": {
"total": 1,
"count": 1,
"per_page": 50,
"current_page": 1,
"total_pages": 1
}
}
}
Crée une nouvelle base de données.
Corps de la requête
{
"database": "nom_base_de_donnees",
"remote": "%" // Hôtes autorisés
}
Réinitialise le mot de passe d'une base de données.
Supprime une base de données.
Tâches programmées
Liste tous les schedules d'un serveur.
Réponse
{
"object": "list",
"data": [
{
"object": "schedule",
"attributes": {
"id": 1,
"name": "Backup quotidien",
"cron": {
"day_of_week": "*",
"day_of_month": "*",
"hour": "0",
"minute": "0",
"month": "*"
},
"is_active": true,
"is_processing": false,
"last_run_at": "2020-06-01T00:00:00+00:00",
"next_run_at": "2020-06-02T00:00:00+00:00",
"created_at": "2020-05-01T12:00:00+00:00",
"updated_at": "2020-06-01T00:00:00+00:00",
"relationships": {
"tasks": {
"object": "list",
"data": [
{
"object": "schedule_task",
"attributes": {
"id": 1,
"sequence_id": 1,
"action": "backup",
"payload": "backup-name",
"time_offset": 0,
"is_queued": false,
"created_at": "2020-05-01T12:00:00+00:00",
"updated_at": "2020-05-01T12:00:00+00:00"
}
}
]
}
}
}
}
],
"meta": {
"pagination": {
"total": 1,
"count": 1,
"per_page": 50,
"current_page": 1,
"total_pages": 1
}
}
}
Crée un nouveau schedule.
Corps de la requête
{
"name": "Backup quotidien",
"minute": "0",
"hour": "0",
"day_of_week": "*",
"day_of_month": "*",
"month": "*",
"is_active": true
}
Récupère les détails d'un schedule spécifique.
Crée une nouvelle tâche pour un schedule.
Corps de la requête
{
"action": "command",
"payload": "say Exécution de la tâche programmée",
"time_offset": 0,
"sequence_id": 1
}
Supprime une tâche d'un schedule.
Supprime un schedule.
Allocations réseau
Liste toutes les allocations d'un serveur.
Réponse
{
"object": "list",
"data": [
{
"object": "allocation",
"attributes": {
"id": 1,
"ip": "192.168.1.1",
"ip_alias": null,
"port": 25565,
"notes": null,
"is_default": true
}
}
],
"meta": {
"pagination": {
"total": 1,
"count": 1,
"per_page": 50,
"current_page": 1,
"total_pages": 1
}
}
}
Crée une nouvelle allocation pour le serveur.
Définit une allocation comme primaire.
Met à jour les notes d'une allocation.
Corps de la requête
{
"notes": "Allocation principale pour Minecraft"
}
Supprime une allocation.
Gestion des utilisateurs
Liste tous les utilisateurs ayant accès au serveur.
Réponse
{
"object": "list",
"data": [
{
"object": "server_subuser",
"attributes": {
"uuid": "c91c0f18-3b95-4db2-94b0-ba3c756d3d5c",
"username": "utilisateur",
"email": "[email protected]",
"image": "https://www.gravatar.com/avatar/...",
"2fa_enabled": false,
"created_at": "2020-06-01T12:00:00+00:00",
"permissions": [
"control.console",
"control.start",
"file.read",
"file.write"
]
}
}
],
"meta": {
"pagination": {
"total": 1,
"count": 1,
"per_page": 50,
"current_page": 1,
"total_pages": 1
}
}
}
Ajoute un nouvel utilisateur au serveur.
Corps de la requête
{
"email": "[email protected]",
"permissions": [
"control.console",
"control.start",
"file.read",
"file.write"
]
}
Récupère les détails d'un utilisateur spécifique.
Met à jour les permissions d'un utilisateur.
Corps de la requête
{
"permissions": [
"control.console",
"control.start",
"file.read"
]
}
Retire l'accès d'un utilisateur au serveur.