Corenix APICréer un jeton

API Corenix

Pilotez vos services depuis vos scripts : consulter vos serveurs et factures, mesurer la disponibilité, redémarrer une machine, modifier un reverse DNS ou ouvrir un ticket.

URL de base : https://api.corenix.fr/v1 · Format : JSON (UTF-8) · Protocole : HTTPS uniquement.

Démarrage

  1. Connectez-vous à votre espace client, rubrique Jetons API.
  2. Créez un jeton en lecture seule ou en lecture et écriture. Copiez-le : il n’est affiché qu’une fois.
  3. Envoyez-le à chaque requête.
curl -H "Authorization: Bearer cxk_…" https://api.corenix.fr/v1/services

Authentification

Transmettez le jeton dans l’en-tête Authorization: Bearer cxk_… ou X-Api-Key: cxk_…. Ne l’intégrez jamais à du code public ou à une application distribuée : il donne accès à votre compte dans la limite de ses droits.

Un jeton peut être restreint à des adresses IP (ou réseaux CIDR), limité dans le temps et révoqué à tout moment. Les actions réalisées par l’API apparaissent dans le journal d’activité du compte.

Droits d’un jeton

À la création, vous choisissez le niveau de droits :

NiveauCe que le jeton peut faire
Lecture seuleConsulter services, disponibilité, adresses IP, factures, avoirs, tickets et solde. Aucune modification possible.
Lecture et écritureTout ce qui précède, plus : alimentation des serveurs, reverse DNS, ouverture et réponse aux tickets.
PersonnaliséLa lecture, plus uniquement les droits d’écriture cochés : Tickets, Alimentation, Reverse DNS.

Un appel qui dépasse les droits du jeton renvoie 403. Aucun jeton ne permet de payer, de résilier ou de modifier le compte.

Réponses et erreurs

{ "success": true, "data": { … }, "meta": { "page": 1, "limit": 50 } }

{ "success": false, "error": { "message": "Service introuvable.", "code": "not_found" } }
Code HTTPSignification
200 / 201Succès / ressource créée
400Paramètre manquant ou invalide
401Jeton absent, invalide, expiré ou révoqué
403Droit manquant, adresse IP non autorisée ou compte inactif
404Ressource introuvable
409Action impossible dans l’état actuel (service inactif, ticket clôturé)
429Trop de requêtes
502 / 503Infrastructure ou fonction momentanément indisponible

Limites

Identifiants de service. Un service se désigne par son identifiant public de 8 caractères (ex. XQW2MJG8), visible dans l’espace client. L’ancien numéro reste accepté.

Compte

MéthodeCheminDroitDescription
GET/meLectureIdentité du jeton
Numéro client, nom, e-mail, société et droits du jeton.
GET/balanceLectureSolde du compte
Crédit disponible (EUR).

Services

MéthodeCheminDroitDescription
GET/servicesLectureListe des services
Paramètre facultatif : status = pending, active, suspended ou terminated.
GET/services/{id}LectureDétail d’un service
Caractéristiques, échéance, engagement et adresses IP. {id} est l’identifiant de service (ex. XQW2MJG8).
GET/services/{id}/statusLectureÉtat en direct
État d’alimentation, charge processeur et mémoire (serveurs virtualisés).
GET/services/{id}/uptimeLectureDisponibilité
Pourcentage sur la période et par jour. Paramètre : days (1 à 90, 30 par défaut).
POST/services/{id}/powerAlimentationAlimentation
Corps : {"action":"start|shutdown|stop|reboot|reset"}. Une commande toutes les 8 secondes au maximum.
GET/services/{id}/ipsLectureAdresses IP
Adresses rattachées au service et leur reverse DNS.
PUT/services/{id}/ips/{ip}/ptrReverse DNSDéfinir le reverse DNS
Corps : {"hostname":"mail.exemple.fr"}. IPv4 uniquement.
DELETE/services/{id}/ips/{ip}/ptrReverse DNSRétablir le reverse DNS par défaut

Factures

MéthodeCheminDroitDescription
GET/invoicesLectureListe des factures
Paramètres facultatifs : status = unpaid, paid ou cancelled ; limit (1 à 100) ; page.
GET/invoices/{id}LectureDétail d’une facture
{id} accepte le numéro de facture (CORENIX-0000001) ou son identifiant interne.
GET/credit-notesLectureListe des avoirs
Avoirs émis sur votre compte.
GET/credit-notes/{number}LectureDétail d’un avoir
Lignes, montant et facture d’origine.

Tickets

MéthodeCheminDroitDescription
GET/ticketsLectureListe des tickets
Les 100 plus récents.
GET/tickets/{ref}LectureDétail d’un ticket
Messages visibles par le client. {ref} : CORE-XXXXX.
POST/ticketsTicketsOuvrir un ticket
Corps : subject, message (obligatoires) ; department, priority, service_id (facultatifs).
POST/tickets/{ref}/replyTicketsRépondre à un ticket
Corps : {"message":"…"}.

Exemples

Lister les services

curl -H "Authorization: Bearer cxk_…" https://api.corenix.fr/v1/services

{ "success": true, "data": [ { "id": "XQW2MJG8", "name": "VPS-1", "status": "active", "ip": "82.29.39.3", "next_due": "2026-11-20", … } ] }

Disponibilité sur 7 jours

curl -H "Authorization: Bearer cxk_…" "https://api.corenix.fr/v1/services/XQW2MJG8/uptime?days=7"

Redémarrer un serveur écriture

curl -X POST -H "Authorization: Bearer cxk_…" -H "Content-Type: application/json" \
  -d '{"action":"reboot"}' https://api.corenix.fr/v1/services/XQW2MJG8/power

Modifier un reverse DNS écriture

curl -X PUT -H "Authorization: Bearer cxk_…" -H "Content-Type: application/json" \
  -d '{"hostname":"mail.exemple.fr"}' https://api.corenix.fr/v1/services/XQW2MJG8/ips/82.29.39.3/ptr

Python

import requests
API = "https://api.corenix.fr/v1"
H = {"Authorization": "Bearer cxk_…"}
for s in requests.get(f"{API}/services", headers=H, timeout=10).json()["data"]:
    print(s["id"], s["name"], s["status"])

PHP

$ch = curl_init('https://api.corenix.fr/v1/invoices?status=unpaid');
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Authorization: Bearer cxk_…']]);
$factures = json_decode(curl_exec($ch), true)['data'];
Un besoin qui n’est pas couvert ? Ouvrez un ticket depuis votre espace client.