Construire avec le MurmurHost API.
Une API REST sur HTTPS, JSON in / JSON out, authentification par jeton porteur. Provisionnez des VPS, gérez des services, listez les offres, ingérez des webhooks. Conçue pour être ergonomique depuis un one-liner Bash ou tout client HTTP moderne.
URL de base
https://api.murmurhost.com/v1Démarrage rapide
Provisionnez votre premier VPS via API en 4 lignes de curl.
Générez une clé API dans votre panneau client
Ouvrir /client/settings → Clés API → Générer. Les clés ne sont affichées qu'une fois ; conservez-les en sécurité.
Lister les offres disponibles
curl https://api.murmurhost.com/v1/plans \
-H "Authorization: Bearer sh_live_••••••••"Provisionner un VPS-2 en Islande
curl -X POST https://api.murmurhost.com/v1/services \
-H "Authorization: Bearer sh_live_••••••••" \
-H "Content-Type: application/json" \
-d '{
"plan": "vps-2",
"location": "iceland",
"billing_cycle": "monthly",
"addons": ["ddos-premium", "backup"],
"payment_method": "crypto"
}'Payez la facture et recevez les identifiants par webhook
{
"id": "srv_3a8f2d6e",
"status": "pending_payment",
"invoice": "inv_91f7cb01",
"pay_url": "https://oxapay.com/pay/12345",
"webhook_event": "service.provisioned"
}Authentification
Jetons porteurs limités par clé. Pas d'OAuth, pas de manigances JWT, pas de danse de signature.
Format de la clé API
Les clés sont des chaînes aléatoires de 48 caractères préfixées par sh_live_ pour la production et sh_test_ pour sandbox. Passer via Autorisation : Bearer ... en-tête.
Portées
Chaque clé comporte un ou plusieurs périmètres : services:read, services:write, billing:read, billing:write, tickets:write. Générez des clés à privilèges minimaux pour CI / Terraform / scripts.
Ce qui se passe à grande échelle
Limite par défaut : 60 requêtes/minute par clé API sur les points de lecture, 20/minute sur les points de terminaison en écriture. La capacité de pointe est de 2× l'état stable.
En-têtes sur chaque réponse : X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. Lorsque vous atteignez la limite, l'API renvoie 429 Trop de requêtes avec un Retry-After en-tête indiquant les secondes à attendre.
Des limites plus élevées sont disponibles pour les cas d'utilisation de production vérifiés — tableaux de bord revendeur, flottes CI, outils de surveillance. E-mail [email protected] avec votre RPS attendu et la justification.
Enveloppe d'erreur
Chaque réponse non-2xx a la même forme afin que les bibliothèques clientes puissent se ramifier proprement.
{ "error": { "code": "service_not_found", "message": "Le service srv_3a8f2d6e n'existe pas ou n'appartient pas à ce compte.", "param": "id", "request_id": "req_8c9c11ef" } }Codes courants : invalid_request, authentication_failed, forbidden, not_found, rate_limit_exceeded, insufficient_funds, plan_unavailable, location_unavailable, internal_error. Incluez toujours request_id lors du contact du support — c'est le moyen le plus rapide pour [email protected] pour trouver l'entrée de journal correspondante.
API des services
Provisionner, lister, mettre à jour, annuler, redémarrer, instantané, migrer.
services
/v1/servicesLister tous les services appartenant au compte authentifié.
/v1/servicesProvisionnez un nouveau serveur VPS / RDP / dédié.
/v1/services/{id}Récupérer un service unique par identifiant.
/v1/services/{id}Mettre à jour un service (renommer, changer le renouvellement automatique, attacher des options).
/v1/services/{id}Annulez et supprimez un service. Le remboursement s'applique si vous êtes dans la période de 7 jours.
/v1/services/{id}/rebootRedémarrage dur ou doux d'un service en cours d'exécution.
/v1/services/{id}/snapshotCréez un instantané manuel. Renvoie l'identifiant de l'instantané.
/v1/services/{id}/migrateMigrer un service vers une juridiction différente. Migration à chaud là où c'est pris en charge.
API des emplacements
Lecture seule — listez les 8 juridictions, obtenez la capacité par emplacement.
/v1/locationsListez les 8 juridictions des centres de données et leur capacité actuelle.
/v1/locations/{slug}Détail pour une juridiction : posture juridique, opérateurs, certifications, ping en temps réel depuis votre IP.
API des offres
Le catalogue complet des 35 offres. Prix, spécifications et compatibilité des options.
/v1/plansListez les 35 offres dans les 11 catégories de produits.
/v1/plans/{slug}Détail pour une offre : spécifications complètes, prix par cycle, disponibilité par emplacement, options recommandées.
/v1/categoriesLister les 11 catégories de produits avec métadonnées récapitulatives.
API de facturation et de factures
Listez les factures, récupérez les PDF, payez les factures ouvertes via Card2Crypto ou OxaPay.
/v1/invoicesListez toutes les factures du compte authentifié.
/v1/invoices/{id}Récupérer une seule facture avec ses lignes.
/v1/invoices/{id}/payInitier le paiement d'une facture ouverte. Renvoie une URL de paiement (Card2Crypto ou OxaPay).
/v1/invoices/{id}/pdfTéléchargez le PDF de la facture pour la comptabilité.
S'abonner aux événements du cycle de vie
Configurez une URL de webhook une fois ; recevez des POST signés HMAC-SHA256 pour chaque événement pertinent.
Vérification des signatures
Chaque webhook transporte un X-MurmurHost-Signature header — HMAC-SHA256 du corps de la requête brute en utilisant votre secret de webhook. Vérifiez avant de traiter.
import crypto from "node:crypto"; function verify(rawBody, signature, secret) { const expected = crypto .createHmac("sha256", secret) .update(rawBody) .digest("hex"); return crypto.timingSafeEqual( Buffer.from(expected, "hex"), Buffer.from(signature, "hex"), ); }Événements
service.provisionedSe déclenche lorsqu'un service termine son provisionnement et que les identifiants sont envoyés.
service.suspendedSe déclenche en cas de suspension (non-paiement, violation de la politique d'utilisation acceptable, demande du client).
service.cancelledSe déclenche en cas d'annulation définitive. Le service est supprimé en moins de 60 secondes.
invoice.createdSe déclenche lorsqu'une nouvelle facture est générée (généralement lors du renouvellement).
invoice.paidSe déclenche en cas de paiement réussi. Inclut payment_method (carte / crypto) et txid.
invoice.failedSe déclenche lorsqu'une tentative de paiement échoue ou expire.
ticket.repliedSe déclenche lorsqu'un membre de l'équipe de support répond à l'un de vos tickets.
incident.publishedSe déclenche lorsqu'un incident de page de statut affectant vos services est publié.
SDK et CLI
L'API est en HTTP simple — n'importe quel client fonctionne. Nous publions également un SDK Node, un SDK Go et une CLI hostctl.
@silenthosts/sdk (Node.js)
npm install @silenthosts/sdk · TypeScript-first, réponses entièrement typées, payloads validés par Zod.
murmurhost-go (Go)
go get github.com/murmurhost/go · Context-aware, typé génériques, sans dépendances supplémentaires.
hostctl (CLI)
brew install murmurhost/tap/hostctl · Déployez, inspectez, redémarrez, migrez depuis votre terminal.
Fournisseur Terraform — disponible au T3 2026
L'officiel murmurhost/murmurhost Le fournisseur Terraform est sur la feuille de route. Inscrivez-vous pour un accès anticipé.
Bêta publique
L'API est en bêta publique depuis le T2 2026
Les points de terminaison documentés ci-dessus sont stables et ne casseront pas dans l'espace de noms v1. Les changements cassants sont publiés en v2 avec une fenêtre de dépréciation minimale de 6 mois. Vous avez trouvé un bug ? Ouvrez un ticket depuis /client/tickets/new avec le request_id de la réponse en échec.
Déployez votre premier serveur offshore en 60 secondes.
Inscription anonyme. Bitcoin et Monero acceptés. Provisionné dans 8 juridictions.
Aucune carte de crédit requise · garantie de remboursement de 7 jours