DéveloppeursREST API

REST API

L’API Hostwolf Apps, c’est du HTTPS et du JSON, tout simplement. Tout ce que font le SDK et le serveur MCP passe par ces endpoints. La description OpenAPI 3.1 contient tous les champs, pour les générateurs de code et des outils comme Postman.

URL de base#

https://console.app.hostwolf.net/api/v1

Tous les chemins ci-dessous sont relatifs à cette URL. GET /health et GET /version ne nécessitent pas de jeton.

Authentification#

Envoyez un jeton d’API dans l’en-tête Authorization, et demandez du JSON :

curl https://console.app.hostwolf.net/api/v1/team \
  -H "Authorization: Bearer 12|your_token" \
  -H "Accept: application/json"

Un jeton agit pour l’équipe dans laquelle il a été créé, avec les permissions que vous avez cochées : Lecture, Lecture des données sensibles, Écriture, Déploiement ou Root. Les corps de requête sont en JSON (Content-Type: application/json). Les ressources sont désignées par leur uuid.

Erreurs#

Les erreurs sont toujours en JSON avec un message, et les erreurs de validation listent les champs :

{"message": "Validation failed.", "errors": {"ports_exposes": ["The ports exposes field is required."]}}
StatutSignification
400Requête mal formée, ou action impossible pour le moment (par ex. les journaux d’une app arrêtée).
401Jeton manquant, incorrect, expiré ou révoqué.
403Il manque une permission au jeton, votre rôle dans l’équipe est insuffisant, ou l’endpoint n’est pas disponible sur Hostwolf (la réponse contient un lien docs).
404Introuvable, ou appartient à une autre équipe.
409Conflit : la clé existe déjà, ou la ressource n’est pas prête.
422Erreur de validation ; voir errors.
429Limite de requêtes atteinte ; attendez Retry-After secondes.
503Un service Hostwolf est brièvement indisponible. Rien n’a été modifié ; réessayez.

Envoyez Accept-Language: de, fr, es ou fi pour recevoir les messages dans cette langue.

Modifications payantes#

Les appels qui augmentent la facture nécessitent "confirm": true dans le corps : ajouter ou agrandir un volume de stockage, activer ses sauvegardes ou régler la croissance automatique, rattacher un volume qui n’est pas facturé, restaurer dans un nouveau volume et passer une base de données à une offre supérieure. Sans cela rien ne change, et la réponse est une 422 avec le prix :

{"message": "A 50 GB volume costs $6.19/month, billed hourly, plus its backups per GB stored. Send \"confirm\": true to go ahead.",
 "confirm_required": true, "quote": {"size_gb": 50, "monthly_price": 6.19, "hourly_price": 0.0085, "currency": "USD"}}

Affichez le prix, puis renvoyez le même appel avec "confirm": true. Le SDK lève une HostwolfAppsError avec le code confirm_required et le prix dans error.quote ; les outils MCP transmettent le message à l’assistant. Restaurer une sauvegarde par-dessus les fichiers d’un volume nécessite aussi confirm.

Certains endpoints d’origine ne s’appliquent pas sur Hostwolf, car Hostwolf gère les serveurs pour vous : ajout, validation, import ou suppression de serveurs, jetons de fournisseurs cloud et réglages de l’instance. Ils répondent 403 avec un message et un lien docs, et ne sont pas listés ci-dessous. Achetez et résiliez vos serveurs dans la console sous Serveurs et facturation.

Limites de requêtes#

  • 200 requêtes par minute et par utilisateur. Chaque réponse contient X-RateLimit-Limit et X-RateLimit-Remaining.
  • Actions sur les bases de données managées : 10 par minute. Modifications de volumes de stockage : 10 par minute, partagées avec la console.
  • Au-delà de la limite, vous recevez une 429 avec Retry-After (en secondes). Le SDK attend la fin des limites courtes pour vous.
  • Le serveur MCP hébergé autorise 300 requêtes par minute par adresse et 180 par jeton.

Pagination#

La plupart des listes renvoient tout d’un coup. Les exceptions :

  • GET /deployments/applications/{uuid} accepte skip et take (10 par défaut) et renvoie {count, deployments}.
  • GET /audit-events accepte page et per_page et renvoie {data, current_page, last_page, per_page, total}.

Le SDK les enveloppe toutes deux dans des itérateurs asynchrones (allForApplication, allAuditEvents).

Endpoints#

HW signale les endpoints qui n’existent que sur Hostwolf Apps. Tapez dans le champ pour filtrer, ou appuyez sur /.

278 endpoints

Projets#

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/projectsLister les projets.
POST/projects+2 facultatifsCréer un projet.
GET/projects/{uuid}Obtenir un projet par UUID.
PATCH/projects/{uuid}+2 facultatifsMettre à jour un projet.
DELETE/projects/{uuid}Supprimer un projet par UUID.
GET/projects/{uuid}/environmentsLister tous les environnements d’un projet.
POST/projects/{uuid}/environments+1 facultatifCréer un environnement dans un projet.
PATCH/projects/{uuid}/environments/{environment_name_or_uuid}+2 facultatifsMettre à jour un environnement par nom ou UUID dans un projet.
DELETE/projects/{uuid}/environments/{environment_name_or_uuid}Supprimer un environnement par nom ou UUID.
GET/projects/{uuid}/{environment_name_or_uuid}Obtenir un environnement par nom ou UUID.

Applications#

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/applications?tagLister toutes les applications.
POST/applications/dockerfileproject_uuid, server_uuid, dockerfile, +80 facultatifsCréer une nouvelle application à partir d’un simple Dockerfile (sans git).
POST/applications/dockerimageproject_uuid, server_uuid, docker_registry_image_name, +77 facultatifsCréer une nouvelle application à partir d’une image Docker préconstruite (sans git).
POST/applications/private-deploy-keyproject_uuid, server_uuid, private_key_uuid, git_repository, git_branch, build_pack, +96 facultatifsCréer une nouvelle application à partir d’un dépôt privé via une clé de déploiement.
POST/applications/private-github-appproject_uuid, server_uuid, github_app_uuid, git_repository, git_branch, build_pack, +96 facultatifsCréer une nouvelle application à partir d’un dépôt privé via une GitHub App.
POST/applications/publicproject_uuid, server_uuid, git_repository, git_branch, build_pack, +96 facultatifsCréer une nouvelle application à partir d’un dépôt git public.
GET/applications/{uuid}Obtenir une application par UUID.
PATCH/applications/{uuid}+95 facultatifsMettre à jour une application par UUID.
DELETE/applications/{uuid}?delete_configurations, ?delete_volumes, ?docker_cleanup, ?delete_connected_networksSupprimer une application par UUID.
POST/applications/{uuid}/clonedestination_uuid, +2 facultatifsCloner une application vers une destination appartenant à l’équipe authentifiée.
GET/applications/{uuid}/destinationsLister les destinations principale et supplémentaires d’une application autonome.
POST/applications/{uuid}/destinationsdestination_uuidAttacher une destination Docker autonome supplémentaire à une application.
DELETE/applications/{uuid}/destinations/{destination_uuid}Détacher une destination supplémentaire d’une application.
GET/applications/{uuid}/envsLister toutes les variables d’environnement par UUID d’application.
POST/applications/{uuid}/envs+6 facultatifsCréer une variable d’environnement par UUID d’application.
PATCH/applications/{uuid}/envskey, value, +4 facultatifsMettre à jour une variable d’environnement par UUID d’application.
PATCH/applications/{uuid}/envs/bulkdataMettre à jour plusieurs variables d’environnement par UUID d’application.
DELETE/applications/{uuid}/envs/{env_uuid}Supprimer une variable d’environnement par UUID.
GET/applications/{uuid}/logs?lines, ?show_timestamps, ?service_nameObtenir les journaux d’une application par UUID.
GET/applications/{uuid}/metrics?minutesLire l’historique Sentinel. HW
POST/applications/{uuid}/migratedestination_uuid, +1 facultatifMigrer une application vers une autre destination ou un autre serveur appartenant à l’équipe authentifiée.
POST/applications/{uuid}/moveenvironment_uuidDéplacer une application vers un autre projet ou environnement.
GET/applications/{uuid}/previewsLister les déploiements de prévisualisation d’une application, en commençant par la pull request la plus récente.
POST/applications/{uuid}/previewspull_request_id, +6 facultatifsOuvrir un déploiement de prévisualisation pour une pull request et mettre son déploiement en file d’attente.
GET/applications/{uuid}/previews/{pull_request_id}Obtenir un déploiement de prévisualisation par ID de pull request.
PATCH/applications/{uuid}/previews/{pull_request_id}+3 facultatifsRemplacer les domaines d’un déploiement de prévisualisation.
DELETE/applications/{uuid}/previews/{pull_request_id}Supprimer un déploiement de prévisualisation pour une pull request.
GET/applications/{uuid}/previews/{pull_request_id}/logs?lines, ?show_timestamps, ?service_nameObtenir les journaux d’exécution du conteneur d’un déploiement de prévisualisation par UUID d’application et ID de pull request.
POST/applications/{uuid}/restartRedémarrer une application.
POST/applications/{uuid}/rollbackcommitMettre en file d’attente un déploiement de retour arrière d’une application vers un commit ou tag d’image précédent.
GET/applications/{uuid}/rollback-imagesLister les images Docker disponibles pour le retour arrière d’une application.
POST/applications/{uuid}/start?force, ?instant_deployDémarrer une application.
POST/applications/{uuid}/stop?docker_cleanupArrêter une application.
GET/applications/{uuid}/storagesLister tous les stockages persistants et stockages de fichiers par UUID d’application.
POST/applications/{uuid}/storagestype, mount_path, +4 facultatifsCréer un stockage persistant ou un stockage de fichier pour une application.
PATCH/applications/{uuid}/storagestype, +6 facultatifsMettre à jour un stockage persistant ou un stockage de fichier par UUID d’application.
DELETE/applications/{uuid}/storages/{storage_uuid}Supprimer un stockage persistant ou un stockage de fichier par UUID d’application.
PUT/applications/{uuid}/storages/{storage_uuid}/backupsfrequency, +12 facultatifsCréer ou remplacer le planning de sauvegarde d’un volume persistant ou d’un stockage de répertoire d’une application.
DELETE/applications/{uuid}/storages/{storage_uuid}/backupsSupprimer le planning de sauvegarde et ses archives locales et S3 pour un stockage d’application.
POST/applications/{uuid}/storages/{storage_uuid}/backups/runMettre en file d’attente une sauvegarde immédiate de volume pour un stockage d’application doté d’un planning.
GET/applications/{uuid}/tagsLister les tags d’une application par UUID.
POST/applications/{uuid}/tags+2 facultatifsAjouter un ou plusieurs tags à une application par UUID.
DELETE/applications/{uuid}/tags/{tag_uuid}Retirer un tag d’une application par UUID.

Déploiements#

MéthodeCheminCorps / paramètresCe que fait l’appel
POST/deploy?tag, ?uuid, ?force, ?pr, …Déployer par tag ou UUID avec des paramètres de requête ou un corps JSON.
GET/deploymentsLister les déploiements en cours
GET/deployments/applications/{uuid}?skip, ?takeLister les déploiements d’une application à partir de son uuid
GET/deployments/{uuid}Obtenir un déploiement par UUID.
POST/deployments/{uuid}/cancelAnnuler un déploiement par UUID.

Serveurs achetés HW#

Les serveurs achetés par votre équipe. L’achat et la résiliation se font dans la console ; ces endpoints sont donc en lecture seule.

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/hostwolf/regions?sizeLes villes où Hostwolf vend des serveurs, avec le prix mensuel de chaque taille de serveur (le même catalogue que la page des tarifs).
POST/servers/{uuid}/resizesize, confirmChangez la taille d’un serveur d’applications ou VPS acheté sur place, en conservant son emplacement et son IP.
GET/hostwolf/serversServeurs d’applications et VPS achetés par votre équipe, avec leur taille, leur ville, leur état et leur prix mensuel.
GET/hostwolf/servers/{uuid}Un serveur d’applications ou VPS acheté, par son uuid.
GET/hostwolf/servers/{uuid}/traffic?monthLe trafic sortant (egress) d’un serveur acheté sur un mois calendaire (UTC), et ce qu’il coûte à ce jour : 1 To par mois est inclus, puis chaque Go entier coûte price_per_gb.
GET/hostwolf/traffic?monthLe trafic sortant de tous les serveurs de votre équipe sur un mois calendaire (UTC), serveurs supprimés compris, avec la facture totale à ce jour.

Bases de données managées HW#

PostgreSQL, MariaDB et Redis sur des serveurs de bases de données Hostwolf. Voir le guide des bases de données.

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/managed-databasesLes bases de données managées de votre équipe avec leur état actuel.
POST/managed-databasesengine, plan, region, +1 facultatifCrée une base de données managée.
GET/managed-databases/catalogMoteurs, offres avec leurs limites, et régions avec le prix mensuel et horaire de chaque offre.
GET/managed-databases/{uuid}Obtenir une base de données managée
PATCH/managed-databases/{uuid}eviction_policyRedis : changer la politique d’éviction (appliquée à chaud, sans redémarrage).
DELETE/managed-databases/{uuid}Supprime la base de données et arrête sa facturation.
POST/managed-databases/{uuid}/attachapplication_uuid, +2 facultatifsEnregistre l’URL de connexion poolée sur une application sous DATABASE_URL et l’URL directe sous DATABASE_DIRECT_URL (Redis : REDIS_URL uniquement) : à l’exécution seulement, chiffrée, affichée une fois…
POST/managed-databases/{uuid}/backupsLance une sauvegarde supplémentaire maintenant.
GET/managed-databases/{uuid}/connectionLes URL de connexion avec le mot de passe, TLS obligatoire.
POST/managed-databases/{uuid}/upgradeplan, +1 facultatifFait passer la base de données à une offre supérieure de sa liste upgrades.

Mise à l’échelle automatique HW#

Mise à l’échelle automatique par app. Voir le guide de mise à l’échelle.

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/applications/{uuid}/autoscalingLa règle de mise à l’échelle automatique de l’application, si elle peut être activée (et sinon pourquoi), et l’état en direct : copies, CPU et dépenses de mise à l’échelle automatique du mois.
PUT/applications/{uuid}/autoscaling+10 facultatifsActive ou désactive la mise à l’échelle automatique et modifie ses réglages.

Serveurs#

Vos serveurs d’applications. L’ajout, la validation et la suppression de serveurs sont gérés par Hostwolf ; ces appels répondent 403 avec un lien docs.

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/serversLister tous les serveurs.
GET/servers/{uuid}Obtenir un serveur par UUID.
PATCH/servers/{uuid}+17 facultatifsMettre à jour un serveur.
GET/servers/{uuid}/cloudflare-tunnelObtenir les réglages Cloudflare Tunnel d’un serveur appartenant à l’équipe authentifiée.
PATCH/servers/{uuid}/cloudflare-tunnel+1 facultatifMettre à jour les réglages Cloudflare Tunnel enregistrés d’un serveur.
POST/servers/{uuid}/cloudflare-tunnel/disableMarquer Cloudflare Tunnel comme désactivé et restaurer ip_previous si disponible.
POST/servers/{uuid}/cloudflare-tunnel/enableMarquer manuellement Cloudflare Tunnel comme activé pour un serveur (équivaut à l’activation manuelle dans l’interface).
GET/servers/{uuid}/docker-cleanupObtenir les réglages de nettoyage Docker d’un serveur appartenant à l’équipe authentifiée.
PATCH/servers/{uuid}/docker-cleanup+6 facultatifsMettre à jour les réglages de nettoyage Docker d’un serveur appartenant à l’équipe authentifiée.
GET/servers/{uuid}/docker-cleanup/executionsLister les journaux récents des nettoyages Docker d’un serveur appartenant à l’équipe authentifiée.
POST/servers/{uuid}/docker-cleanup/run+2 facultatifsLancer une tâche manuelle de nettoyage Docker pour un serveur appartenant à l’équipe authentifiée.
GET/servers/{uuid}/domainsObtenir les domaines par serveur.
GET/servers/{uuid}/log-drainsObtenir les réglages de redirection des journaux d’un serveur appartenant à l’équipe authentifiée.
PATCH/servers/{uuid}/log-drains+9 facultatifsMettre à jour les réglages de redirection des journaux New Relic, Axiom ou personnalisée d’un serveur appartenant à l’équipe authentifiée.
GET/servers/{uuid}/metrics?minutesLire l’historique Sentinel. HW
GET/servers/{uuid}/proxyObtenir les réglages du proxy d’un serveur appartenant à l’équipe authentifiée.
PATCH/servers/{uuid}/proxy+4 facultatifsMettre à jour les réglages de redirection du proxy, la génération exacte des labels et, éventuellement, le type de proxy d’un serveur de l’équipe.
PUT/servers/{uuid}/proxy/configurationconfigurationEnregistrer la configuration Docker Compose brute du proxy pour un serveur de l’équipe.
POST/servers/{uuid}/proxy/restartMettre en file d’attente un redémarrage du proxy pour un serveur de l’équipe.
GET/servers/{uuid}/registriesLister les registres Docker auxquels un serveur est connecté et ceux depuis ou vers lesquels ses ressources tirent ou poussent des images.
POST/servers/{uuid}/registriesregistry, username, passwordLancer docker login sur le serveur, en écrivant dans la configuration Docker utilisée par les déploiements.
DELETE/servers/{uuid}/registries/{registry}Lancer docker logout sur le serveur pour un registre.
POST/servers/{uuid}/registries/{registry}/checkVérifier que l’identifiant enregistré du serveur pour un registre fonctionne toujours.
GET/servers/{uuid}/resourcesObtenir les ressources par serveur.
GET/servers/{uuid}/sentinelObtenir les réglages Sentinel d’un serveur appartenant à l’équipe authentifiée.
PATCH/servers/{uuid}/sentinel+14 facultatifsMettre à jour les réglages Sentinel d’un serveur appartenant à l’équipe authentifiée.

Variables partagées#

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/projects/{uuid}/environments/{environment_name_or_uuid}/envsLister les variables d’environnement partagées d’un environnement de projet (type=environment).
POST/projects/{uuid}/environments/{environment_name_or_uuid}/envsCréer une variable d’environnement partagée pour un environnement de projet (type=environment).
PATCH/projects/{uuid}/environments/{environment_name_or_uuid}/envs/{env_id}Mettre à jour une variable d’environnement partagée d’environnement par id.
DELETE/projects/{uuid}/environments/{environment_name_or_uuid}/envs/{env_id}Supprimer une variable d’environnement partagée d’environnement par id.
GET/projects/{uuid}/envsLister les variables d’environnement partagées d’un projet (type=project).
POST/projects/{uuid}/envsCréer une variable d’environnement partagée pour un projet (type=project).
PATCH/projects/{uuid}/envs/{env_id}Mettre à jour une variable d’environnement partagée de projet par id.
DELETE/projects/{uuid}/envs/{env_id}Supprimer une variable d’environnement partagée de projet par id.
GET/servers/{uuid}/envsLister les variables d’environnement partagées d’un serveur (type=server).
POST/servers/{uuid}/envsCréer une variable d’environnement partagée pour un serveur (type=server).
PATCH/servers/{uuid}/envs/{env_id}Mettre à jour une variable d’environnement partagée de serveur par id.
DELETE/servers/{uuid}/envs/{env_id}Supprimer une variable d’environnement partagée de serveur par id.
GET/team/envsLister les variables d’environnement partagées de l’équipe actuelle (type=team).
POST/team/envskey, +5 facultatifsCréer une variable d’environnement partagée pour l’équipe actuelle (type=team).
PATCH/team/envs/{env_id}Mettre à jour une variable d’environnement partagée d’équipe par id.
DELETE/team/envs/{env_id}Supprimer une variable d’environnement partagée d’équipe par id.

Équipes#

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/teamObtenir l’équipe liée au jeton d’API.
PATCH/teamis_build_server_fallback_enabledMettre à jour les réglages de l’équipe liée au jeton d’API.
GET/team/membersObtenir les membres de l’équipe liée au jeton d’API.
GET/teamsObtenir toutes les équipes.
GET/teams/{id}Obtenir une équipe par TeamId.
GET/teams/{id}/membersObtenir les membres par TeamId.

Journal d’audit#

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/audit-events?per_page, ?page, ?search, ?action, …Lister les événements d’audit de l’équipe.

Destinations#

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/destinationsLister toutes les destinations réseau Docker de l’équipe authentifiée.
GET/destinations/{uuid}Obtenir une destination réseau Docker par UUID.
PATCH/destinations/{uuid}+1 facultatifMettre à jour le nom d’une destination réseau Docker.
DELETE/destinations/{uuid}Supprimer une destination réseau Docker inutilisée.
GET/servers/{server_uuid}/destinationsLister les destinations réseau Docker attachées à un serveur appartenant à l’équipe authentifiée.
POST/servers/{server_uuid}/destinationsnetwork, +2 facultatifsCréer une destination réseau Docker sur un serveur appartenant à l’équipe authentifiée.

Tâches planifiées#

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/applications/{uuid}/scheduled-tasksLister toutes les tâches planifiées d’une application.
POST/applications/{uuid}/scheduled-tasksname, command, frequency, +3 facultatifsCréer une nouvelle tâche planifiée pour une application.
PATCH/applications/{uuid}/scheduled-tasks/{task_uuid}+6 facultatifsMettre à jour une tâche planifiée d’une application.
DELETE/applications/{uuid}/scheduled-tasks/{task_uuid}Supprimer une tâche planifiée d’une application.
POST/applications/{uuid}/scheduled-tasks/{task_uuid}/executeMettre en file d’attente l’exécution immédiate d’une tâche planifiée d’une application.
GET/applications/{uuid}/scheduled-tasks/{task_uuid}/executionsLister toutes les exécutions d’une tâche planifiée d’une application.
GET/services/{uuid}/scheduled-tasksLister toutes les tâches planifiées d’un service.
POST/services/{uuid}/scheduled-tasksname, command, frequency, +3 facultatifsCréer une nouvelle tâche planifiée pour un service.
PATCH/services/{uuid}/scheduled-tasks/{task_uuid}+6 facultatifsMettre à jour une tâche planifiée d’un service.
DELETE/services/{uuid}/scheduled-tasks/{task_uuid}Supprimer une tâche planifiée d’un service.
POST/services/{uuid}/scheduled-tasks/{task_uuid}/executeMettre en file d’attente l’exécution immédiate d’une tâche planifiée d’un service.
GET/services/{uuid}/scheduled-tasks/{task_uuid}/executionsLister toutes les exécutions d’une tâche planifiée d’un service.

Tags#

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/tagsLister tous les tags de l’équipe actuelle.
POST/tagsnameCréer un tag pour l’équipe actuelle.
PATCH/tags/{uuid}nameMettre à jour le nom d’un tag de l’équipe actuelle.
DELETE/tags/{uuid}Supprimer un tag de l’équipe actuelle.

Ressources#

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/resourcesObtenir toutes les ressources.

Gestionnaires de secrets#

MéthodeCheminCorps / paramètresCe que fait l’appel
PATCH/applications/{uuid}/secret-managerintegration_token_uuid, +1 facultatifConfigurer la source du gestionnaire de secrets utilisée par une application.
POST/security/integration-tokensprovider, name, token, +1 facultatifCréer et valider un jeton d’intégration Doppler, Infisical ou Vault.

Scripts cloud-init#

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/cloud-init-scriptsLister tous les scripts cloud-init de l’équipe authentifiée.
POST/cloud-init-scriptsname, scriptCréer un nouveau script cloud-init pour l’équipe authentifiée.
GET/cloud-init-scripts/{uuid}Obtenir un script cloud-init par UUID.
PATCH/cloud-init-scripts/{uuid}+2 facultatifsMettre à jour un script cloud-init par UUID.
DELETE/cloud-init-scripts/{uuid}Supprimer un script cloud-init par UUID.

Bases de données (ancien système)#

Bases de données créées sur des serveurs d’applications avant l’arrivée des bases de données managées. Les nouvelles bases de données sont des bases de données managées.

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/databasesLister toutes les bases de données.
GET/databases/{uuid}Obtenir une base de données par UUID.
PATCH/databases/{uuid}+46 facultatifsMettre à jour une base de données par UUID.
DELETE/databases/{uuid}?delete_configurations, ?delete_volumes, ?docker_cleanup, ?delete_connected_networksSupprimer une base de données par UUID.
GET/databases/{uuid}/backupsObtenir le détail des sauvegardes par UUID de base de données.
POST/databases/{uuid}/backupsfrequency, +14 facultatifsCréer une nouvelle configuration de sauvegarde planifiée pour une base de données
PATCH/databases/{uuid}/backups/{scheduled_backup_uuid}+15 facultatifsMettre à jour une configuration de sauvegarde précise d’une base de données, identifiée par son UUID et l’ID de la sauvegarde
DELETE/databases/{uuid}/backups/{scheduled_backup_uuid}?delete_s3Supprime une configuration de sauvegarde et toutes ses exécutions.
GET/databases/{uuid}/backups/{scheduled_backup_uuid}/executionsObtenir toutes les exécutions d’une configuration de sauvegarde précise.
DELETE/databases/{uuid}/backups/{scheduled_backup_uuid}/executions/{execution_uuid}?delete_s3Supprime une exécution de sauvegarde précise.
GET/databases/{uuid}/envsLister toutes les variables d’environnement par UUID de base de données.
POST/databases/{uuid}/envs+5 facultatifsCréer une variable d’environnement par UUID de base de données.
PATCH/databases/{uuid}/envskey, value, +3 facultatifsMettre à jour une variable d’environnement par UUID de base de données.
PATCH/databases/{uuid}/envs/bulkdataMettre à jour plusieurs variables d’environnement par UUID de base de données.
DELETE/databases/{uuid}/envs/{env_uuid}Supprimer une variable d’environnement par UUID.
GET/databases/{uuid}/logs?lines, ?show_timestampsObtenir les journaux d’une base de données par UUID.
POST/databases/{uuid}/restartRedémarrer une base de données.
POST/databases/{uuid}/startDémarrer une base de données.
POST/databases/{uuid}/stop?docker_cleanupArrêter une base de données.
GET/databases/{uuid}/storagesLister tous les stockages persistants et stockages de fichiers par UUID de base de données.
POST/databases/{uuid}/storagestype, mount_path, +4 facultatifsCréer un stockage persistant ou un stockage de fichier pour une base de données.
PATCH/databases/{uuid}/storagestype, +6 facultatifsMettre à jour un stockage persistant ou un stockage de fichier par UUID de base de données.
DELETE/databases/{uuid}/storages/{storage_uuid}Supprimer un stockage persistant ou un stockage de fichier par UUID de base de données.
PUT/databases/{uuid}/storages/{storage_uuid}/backupsfrequency, +12 facultatifsCréer ou remplacer le planning de sauvegarde d’un volume persistant ou d’un stockage de répertoire d’une base de données.
DELETE/databases/{uuid}/storages/{storage_uuid}/backupsSupprimer le planning de sauvegarde et ses archives locales et S3 pour un stockage de base de données.
POST/databases/{uuid}/storages/{storage_uuid}/backups/runMettre en file d’attente une sauvegarde immédiate de volume pour un stockage de base de données doté d’un planning.
GET/databases/{uuid}/tagsLister les tags d’une base de données par UUID.
POST/databases/{uuid}/tags+2 facultatifsAjouter un ou plusieurs tags à une base de données par UUID.
DELETE/databases/{uuid}/tags/{tag_uuid}Retirer un tag d’une base de données par UUID.

GitHub Apps#

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/github-appsLister toutes les GitHub Apps.
POST/github-appsname, html_url, app_id, installation_id, client_id, client_secret, private_key_uuid, +6 facultatifsCréer une nouvelle GitHub App.
PATCH/github-apps/{github_app_id}+13 facultatifsMettre à jour une GitHub App existante.
DELETE/github-apps/{github_app_id}Supprimer une GitHub App si aucune application ne l’utilise.
GET/github-apps/{github_app_id}/repositoriesRécupérer les dépôts d’une GitHub App depuis GitHub.
GET/github-apps/{github_app_id}/repositories/{owner}/{repo}/branchesRécupérer les branches d’un dépôt depuis GitHub.

Apps GitLab#

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/gitlab-appsLister toutes les apps GitLab de l’équipe actuelle (et les sources globales).
POST/gitlab-appsname, html_url, +9 facultatifsCréer une nouvelle app GitLab (source OAuth).
PATCH/gitlab-apps/{gitlab_app_id}+11 facultatifsMettre à jour une app GitLab existante.
DELETE/gitlab-apps/{gitlab_app_id}Supprimer une app GitLab si aucune application ne l’utilise.

Volumes de stockage#

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/hostwolf/servers/{uuid}/volumesLes volumes de stockage de l’un de vos serveurs achetés (y compris les volumes que vous en avez détachés), avec taille, utilisation, sauvegardes et prix.
POST/hostwolf/servers/{uuid}/volumessize_gb, +3 facultatifsAjoute un volume de stockage en bloc (10 à 1000 Go) à un serveur d’applications ou un VPS, monté sur /mnt/volume- en une minute environ.
GET/hostwolf/servers/{uuid}/volumes/offer?size_gbSi des volumes peuvent être ajoutés à ce serveur, les tailles autorisées dans sa ville, et le prix d’une taille (size_gb), avec ou sans sauvegardes.
GET/hostwolf/servers/{uuid}/volumes/{volume}Obtenir un volume
PATCH/hostwolf/servers/{uuid}/volumes/{volume}+4 facultatifsL’agrandir (size_gb ; les volumes ne rétrécissent jamais), activer ou désactiver les sauvegardes nocturnes, ou régler la limite de croissance automatique.
DELETE/hostwolf/servers/{uuid}/volumes/{volume}Démonte et supprime le volume et ses fichiers.
POST/hostwolf/servers/{uuid}/volumes/{volume}/backupsLance une sauvegarde maintenant, en plus de celle de la nuit.
POST/hostwolf/servers/{uuid}/volumes/{volume}/detachDémonte le volume et le détache du serveur.
POST/hostwolf/servers/{uuid}/volumes/{volume}/restorebackup_id, target, +1 facultatifRestaure une sauvegarde dans le volume lui-même (target: same : les fichiers écrits après la sauvegarde sont supprimés, le volume est indisponible pendant ce temps) ou dans un nouveau volume de même taille…
GET/hostwolf/volumes?statusTous les volumes de votre équipe : ceux qui sont rattachés, ceux que vous avez détachés, et les volumes des serveurs supprimés conservés pendant 7 jours (kept_until).
GET/hostwolf/volumes/{volume}Un volume par id, rattaché ou détaché.
DELETE/hostwolf/volumes/{volume}Supprime immédiatement un volume détaché et ses fichiers (au lieu d’attendre la fin des 7 jours).
POST/hostwolf/volumes/{volume}/attachserver_uuid, +1 facultatifRattache un volume détaché (que vous avez détaché, ou conservé après la suppression de son serveur) à l’un de vos serveurs prêts dans la même ville, monté au même chemin en une minute environ.
GET/hostwolf/volumes/{volume}/backupsLes sauvegardes restaurables, de la plus récente à la plus ancienne (chaque nuit, conservées 7 jours).
POST/hostwolf/volumes/{volume}/restorebackup_id, server_uuid, +1 facultatifRestaure une sauvegarde d’un volume détaché dans un nouveau volume sur l’un de vos serveurs de la même ville (facturé comme n’importe quel volume, donc "confirm": true est nécessaire).

Notifications#

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/notifications/discordObtenir les réglages de notification Discord de l’équipe actuelle.
PATCH/notifications/discordMettre à jour les réglages de notification Discord de l’équipe actuelle.
GET/notifications/emailObtenir les réglages de notification par e-mail de l’équipe actuelle, y compris smtp_ehlo_domain, le nom d’hôte envoyé avec SMTP EHLO.
PATCH/notifications/emailMettre à jour les réglages de notification par e-mail de l’équipe actuelle.
GET/notifications/pushoverObtenir les réglages de notification Pushover de l’équipe actuelle.
PATCH/notifications/pushoverMettre à jour les réglages de notification Pushover de l’équipe actuelle.
GET/notifications/slackObtenir les réglages de notification Slack de l’équipe actuelle.
PATCH/notifications/slackMettre à jour les réglages de notification Slack de l’équipe actuelle.
GET/notifications/telegramObtenir les réglages de notification Telegram de l’équipe actuelle.
PATCH/notifications/telegramMettre à jour les réglages de notification Telegram de l’équipe actuelle.
GET/notifications/webhookObtenir les réglages de notification par webhook de l’équipe actuelle.
PATCH/notifications/webhookMettre à jour les réglages de notification par webhook de l’équipe actuelle.

Stockages S3#

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/s3-storagesLister tous les stockages S3 de l’équipe authentifiée.
POST/s3-storagesname, endpoint, bucket, region, key, secret, +2 facultatifsCréer une nouvelle configuration de stockage S3 pour l’équipe authentifiée.
GET/s3-storages/{uuid}Obtenir un stockage S3 par UUID.
PATCH/s3-storages/{uuid}+8 facultatifsMettre à jour un stockage S3 par UUID.
DELETE/s3-storages/{uuid}Supprimer un stockage S3 par UUID.
POST/s3-storages/{uuid}/validateValider la connexion à un stockage S3 avec ListObjectsV2.

Clés de déploiement#

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/security/keysLister toutes les clés privées.
POST/security/keysprivate_key, +2 facultatifsCréer une nouvelle clé privée.
GET/security/keys/{uuid}Obtenir une clé par UUID.
PATCH/security/keys/{uuid}private_key, +2 facultatifsMettre à jour une clé privée.
DELETE/security/keys/{uuid}Supprimer une clé privée.

Conteneurs de service#

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/services/{uuid}/applicationsLister les applications (conteneurs) d’un service compose.
GET/services/{uuid}/applications/{app_uuid}Obtenir une application de service compose par UUID de service et UUID d’application.
PATCH/services/{uuid}/applications/{app_uuid}+11 facultatifs, ?force_domain_overrideMettre à jour les champs d’une application de service compose.
GET/services/{uuid}/applications/{app_uuid}/logs?linesObtenir les journaux Docker d’un seul conteneur de service compose.
POST/services/{uuid}/applications/{app_uuid}/logs?linesObtenir les journaux Docker d’un seul conteneur de service compose.
POST/services/{uuid}/applications/{app_uuid}/restartRedémarre un seul conteneur de service compose.
POST/services/{uuid}/applications/{app_uuid}/start?force, ?latestLance docker compose up pour un seul service compose (no-deps), en tirant éventuellement l’image et en refaisant le build.
POST/services/{uuid}/applications/{app_uuid}/stopArrête un seul conteneur de service compose.

Bases de données de service#

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/services/{uuid}/databasesLister les bases de données compose d’un service.
GET/services/{uuid}/databases/{database_uuid}Obtenir une base de données compose par UUID de service et UUID de base de données.
PATCH/services/{uuid}/databases/{database_uuid}+8 facultatifsMettre à jour les champs modifiables d’une base de données de service compose.
POST/services/{uuid}/databases/{database_uuid}/importsImporter une sauvegarde de base de données de service
POST/services/{uuid}/databases/{database_uuid}/imports/uploadsEnvoyer un import de base de données de service
GET/services/{uuid}/databases/{database_uuid}/imports/{activity_id}Obtenir l’état de l’import de base de données d’un service
GET/services/{uuid}/databases/{database_uuid}/logs?linesObtenir les journaux Docker d’un conteneur de base de données compose.
POST/services/{uuid}/databases/{database_uuid}/restartRedémarrer un conteneur de base de données compose.
POST/services/{uuid}/databases/{database_uuid}/start?force, ?latestLancer docker compose up pour une seule base de données compose.
POST/services/{uuid}/databases/{database_uuid}/stopArrêter un conteneur de base de données compose.

Services#

Services en un clic (modèles Docker Compose) sur vos serveurs d’applications.

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/servicesLister tous les services.
POST/servicesserver_uuid, project_uuid, +12 facultatifsCréer un service en un clic / personnalisé
GET/services/{uuid}Obtenir un service par UUID.
PATCH/services/{uuid}+8 facultatifsMettre à jour un service par UUID.
DELETE/services/{uuid}?delete_configurations, ?delete_volumes, ?docker_cleanup, ?delete_connected_networks, …Supprimer un service par UUID.
POST/services/{uuid}/clonedestination_uuid, +2 facultatifsCloner un service vers une destination appartenant à l’équipe authentifiée.
GET/services/{uuid}/envsLister toutes les variables d’environnement par UUID de service.
POST/services/{uuid}/envs+6 facultatifsCréer une variable d’environnement par UUID de service.
PATCH/services/{uuid}/envskey, value, +4 facultatifsMettre à jour une variable d’environnement par UUID de service.
PATCH/services/{uuid}/envs/bulkdataMettre à jour plusieurs variables d’environnement par UUID de service.
DELETE/services/{uuid}/envs/{env_uuid}Supprimer une variable d’environnement par UUID.
GET/services/{uuid}/logs?sub_service_name, ?lines, ?show_timestampsObtenir les journaux d’une sous-ressource de service précise par UUID de service.
POST/services/{uuid}/migratedestination_uuid, +1 facultatifMigrer un service vers une autre destination ou un autre serveur appartenant à l’équipe authentifiée.
POST/services/{uuid}/moveenvironment_uuidDéplacer un service vers un autre projet ou environnement.
POST/services/{uuid}/restart?latestRedémarrer un service.
POST/services/{uuid}/startDémarrer un service.
POST/services/{uuid}/stop?docker_cleanupArrêter un service.
GET/services/{uuid}/storagesLister tous les stockages persistants et stockages de fichiers par UUID de service.
POST/services/{uuid}/storagestype, mount_path, resource_uuid, +4 facultatifsCréer un stockage persistant ou un stockage de fichier pour une sous-ressource de service.
PATCH/services/{uuid}/storagestype, +6 facultatifsMettre à jour un stockage persistant ou un stockage de fichier par UUID de service.
DELETE/services/{uuid}/storages/{storage_uuid}Supprimer un stockage persistant ou un stockage de fichier par UUID de service.
PUT/services/{uuid}/storages/{storage_uuid}/backupsfrequency, +12 facultatifsCréer ou remplacer le planning de sauvegarde d’un volume persistant ou d’un stockage de répertoire d’un service.
DELETE/services/{uuid}/storages/{storage_uuid}/backupsSupprimer le planning de sauvegarde et ses archives locales et S3 pour un stockage de service.
POST/services/{uuid}/storages/{storage_uuid}/backups/runMettre en file d’attente une sauvegarde immédiate de volume pour un stockage de service doté d’un planning.
GET/services/{uuid}/tagsLister les tags d’un service par UUID.
POST/services/{uuid}/tags+2 facultatifsAjouter un ou plusieurs tags à un service par UUID.
DELETE/services/{uuid}/tags/{tag_uuid}Retirer un tag d’un service par UUID.

Santé et version#

MéthodeCheminCorps / paramètresCe que fait l’appel
GET/healthEndpoint de contrôle de santé.
GET/versionObtenir la version de Hostwolf.

Mises à niveau des serveurs#

Demandez un devis pour une taille supérieure avec POST /servers/{uuid}/resize et {"size":"m"}. L’UUID est celui d’un serveur d’applications ou VPS acheté ; les serveurs d’applications acceptent aussi leur UUID de serveur. Un devis renvoie 200 avec le nouveau prix mensuel, la différence de prix, l’interruption estimée et la note sur le disque. Le serveur ne change pas encore.

Confirmez avec {"size":"m","confirm":true} et un en-tête Idempotency-Key. Enregistrez un UUID pour cette confirmation et réutilisez-le lors des nouvelles tentatives. La réponse est 202 avec l’identifiant de l’opération. Une taille indisponible ou un serveur occupé renvoie 409 ; un serveur d’une autre équipe renvoie 404.

Le serveur conserve son emplacement, son IP, ses volumes supplémentaires et son enregistrement d’applications. Son état reste resizing jusqu’à la fin de la mise à niveau et de l’ajustement de facturation. Le nouveau prix s’applique à la fin ; l’ajustement au prorata figure sur la prochaine facture.

Dans le SDK 0.2.2, appelez servers.resize(uuid, 'm') pour un devis, puis passez {confirm:true, idempotencyKey:key} pour confirmer. L’outil MCP est resize_server. Ce correctif n’est pas encore publié.

Bloqué, ou il vous manque un endpoint ? Dites-le-nous sur app.hostwolf.net/contact ou à [email protected].