api.aragonite.fr

Documentation complète des APIs du réseau Aragonite. Conçue pour être 100% accessible avec des exemples pour chaque route.

URL de base : https://api.aragonite.fr

👋 Pour bien commencer

Une API (Interface de Programmation d'Application) permet à vos programmes de discuter avec nos serveurs. Toutes les requêtes doivent être envoyées à https://api.aragonite.fr suivi du chemin (ex: /monitor/health).

Authentification : Certaines routes nécessitent une clé API pour des raisons de sécurité. Lisez la description de chaque service pour savoir comment envoyer cette clé (En-tête spécifique ou Authorization).

🖥️ Pterodactyl Monitor GET

/monitor/*

Ces routes vous permettent de vérifier l'état des serveurs et du VPS.
Sécurité : Toutes ces routes (sauf /health) nécessitent la clé API via l'en-tête (Header) :
X-Api-Key: VOTRE_CLE_API

GET/monitor/healthPublic
Vérifie simplement que l'API de monitoring est en ligne. Ne nécessite pas de clé API.
Exemple de requête (JavaScript)
fetch("https://api.aragonite.fr/monitor/health")
.then(res => res.json())
.then(data => console.log(data));
Réponse (JSON)
{
  "status": "ok"
}
GET/monitor/containersX-Api-Key
Liste tous les conteneurs Pterodactyl et leur état actuel (allumé/éteint, ports exposés).
Exemple de requête (JavaScript)
fetch("https://api.aragonite.fr/monitor/containers", {
  headers: { "X-Api-Key": "VOTRE_CLE_API" }
})
.then(res => res.json())
.then(data => console.log(data));
Réponse (JSON)
{
  "total": 15,
  "running": 12,
  "stopped": 3,
  "servers": [
    {
      "uuid": "381709e4-272d-4a89-a1d2-f6343502e648",
      "status": "running",
      "running": true,
      "image": "nodejs_20",
      "ports": ["4028/tcp", "4028/udp"]
    }
  ]
}
GET/monitor/containers/{uuid}X-Api-Key
Renvoie les informations détaillées d'un seul conteneur Pterodactyl.
Code HTTP 200 si allumé, Code HTTP 503 s'il est éteint (compatible BetterStack).
Exemple de requête (JavaScript)
fetch("https://api.aragonite.fr/monitor/containers/381709e4-272d-4a89-a1d2-f6343502e648", {
  headers: { "X-Api-Key": "VOTRE_CLE_API" }
})
.then(res => res.json())
.then(data => console.log(data));
Réponse (JSON)
{
  "running": true,
  "uuid": "381709e4-272d-4a89-a1d2-f6343502e648",
  "status": "running",
  "image": "nodejs_20",
  "ports": ["4028/tcp", "4028/udp"]
}
GET/monitor/vps/statusX-Api-Key
Une route extrêmement rapide pour vérifier si le serveur répond bien (Parfait pour un Uptime Monitor).
Réponse (JSON)
{
  "status": "ok",
  "alive": true,
  "hostname": "vps-aragonite",
  "uptime_seconds": 1123450,
  "docker": "ok"
}
GET/monitor/vpsX-Api-Key
Renvoie un diagnostic complet de la machine hébergeant le réseau (Utilisation CPU, RAM, charge, Disque dur, etc.).
Réponse (JSON)
{
  "hostname": "vps-aragonite",
  "uptime_seconds": 1123450,
  "cpu": {
    "usage_percent": 14.2,
    "cores": 10,
    "load": { "1min": 1.25, "5min": 1.40, "15min": 1.35 }
  },
  "memory": {
    "total_mb": 64000,
    "used_mb": 32500,
    "available_mb": 31500,
    "used_percent": 50.8
  },
  "disk": {
    "total_gb": 800.0,
    "used_gb": 450.5,
    "free_gb": 349.5,
    "used_percent": 56.3
  },
  "containers": { "total": 42, "running": 38 }
}

👤 Discord Avatar & Username GET

/discord/*

Récupérez facilement la photo de profil ou le pseudo d'un utilisateur Discord avec son identifiant (ID).
Sécurité : Aucune clé n'est requise. C'est public !

GET/discord/avatar/{id_utilisateur}Public
Renvoie un objet JSON contenant le lien direct vers la photo de profil Discord de l'utilisateur.
Exemple de requête
fetch("https://api.aragonite.fr/discord/avatar/1540310140576858182")
.then(res => res.json())
.then(data => console.log(data));
Réponse (JSON)
{
  "avatar": "https://cdn.discordapp.com/avatars/1540310140576858182/a_f3...png"
}
GET/discord/username/{id_utilisateur}Public
Renvoie le nom d'utilisateur technique (username) et le nom d'affichage global (display name).
Réponse (JSON)
{
  "username": "ap.pi",
  "displayName": "APPI"
}

🧠 Intelligence Artificielle (Ollama) POST

/ia/*

Utilisez nos modèles d'IA locaux pour générer du texte, discuter avec l'IA, ou analyser des images !
Sécurité : L'accès est protégé. Utilisez l'en-tête (Header) X-Api-Key pour vos requêtes.

GET/ia/api/tagsX-Api-Key
Liste tous les modèles d'IA installés et prêts à être utilisés sur le serveur (ex: llama3, llava, etc.).
Exemple de requête
fetch("https://api.aragonite.fr/ia/api/tags", {
  headers: { "X-Api-Key": "VOTRE_CLE_API" }
})
.then(res => res.json())
.then(data => console.log(data));
Réponse (JSON)
{
  "models": [
    {
      "name": "llama3:8b",
      "model": "llama3:8b",
      "size": 4700000000
    },
    {
      "name": "llava:latest",
      "model": "llava:latest",
      "size": 4700000000
    }
  ]
}
POST/ia/api/chatX-Api-Key
Permet d'avoir une conversation de type "Chatbot" (avec contexte). Envoie des messages avec des rôles (user, assistant, system).
Note : Les requêtes avec `stream: true` sont bloquées par le proxy, `stream: false` est forcé.
Exemple de requête (JavaScript)
fetch("https://api.aragonite.fr/ia/api/chat", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "X-Api-Key": "VOTRE_CLE_API" 
  },
  body: JSON.stringify({
    model: "llama3:8b",
    messages: [
      { role: "system", content: "Tu es un assistant sarcastique." },
      { role: "user", content: "Pourquoi le ciel est bleu ?" }
    ],
    stream: false
  })
})
.then(res => res.json())
.then(data => console.log("Réponse :", data.message.content));
Réponse (JSON)
{
  "model": "llama3:8b",
  "created_at": "2026-08-21T12:00:00.000Z",
  "message": {
    "role": "assistant",
    "content": "Parce que la lumière bleue se diffuse plus. Cherche sur Google, franchement..."
  },
  "done": true
}
POST/ia/api/generateX-Api-Key
Permet de faire une requête unique. Excellent pour l'analyse d'images (Vision) avec le modèle llava.
Exemple : Demander à l'IA d'analyser une image (Modèle Vision LLaVA)
fetch("https://api.aragonite.fr/ia/api/generate", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "X-Api-Key": "VOTRE_CLE_API" 
  },
  body: JSON.stringify({
    model: "llava", // Le modèle de Vision !
    prompt: "Décris-moi ce que tu vois sur cette image.",
    images: ["iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg=="], // Image Base64
    stream: false
  })
})
.then(res => res.json())
.then(data => console.log("L'IA voit :", data.response));
Réponse (JSON)
{
  "model": "llava",
  "created_at": "2026-08-21T12:05:00.000Z",
  "response": "Je vois un pixel de couleur rouge. L'image est extrêmement petite.",
  "done": true
}