Desarrolladores / REST API
REST API
La API de Hostwolf Apps es HTTPS y JSON sin más. Todo lo que hacen el SDK y el servidor MCP pasa por estos endpoints. La descripción OpenAPI 3.1 tiene todos los campos, para generadores de código y herramientas como Postman.
URL base #
https://console.app.hostwolf.net/api/v1
Todas las rutas de abajo son relativas a ella. GET /health y GET /version no necesitan token.
Autenticación #
Envía un token de API en la cabecera Authorization y pide JSON:
curl https://console.app.hostwolf.net/api/v1/team \
-H "Authorization: Bearer 12|your_token" \
-H "Accept: application/json"
Un token actúa para el equipo en el que se creó, con los permisos que marcaste: Lectura , Lectura de datos sensibles , Escritura , Despliegue o Root . Los cuerpos de las peticiones son JSON (Content-Type: application/json). Los recursos se identifican por su uuid.
Errores #
Los errores siempre son JSON con un message, y los errores de validación listan los campos:
{"message": "Validation failed.", "errors": {"ports_exposes": ["The ports exposes field is required."]}}
Estado Significado 400Petición mal formada, o la acción no se puede ejecutar ahora (p. ej. registros de una app detenida). 401Token ausente, incorrecto, caducado o revocado. 403Al token le falta un permiso, tu rol en el equipo es demasiado bajo o el endpoint no está disponible en Hostwolf (la respuesta incluye un enlace docs). 404No encontrado, o pertenece a otro equipo. 409Conflicto: la clave ya existe o el recurso no está listo. 422Error de validación; consulta errors. 429Límite de peticiones superado; espera los segundos de Retry-After. 503Un servicio de Hostwolf no está disponible por un momento. No se ha cambiado nada; vuelve a intentarlo.
Envía Accept-Language: de, fr, es o fi para recibir los mensajes en ese idioma.
Cambios que cuestan dinero #
Las llamadas que aumentan la factura necesitan "confirm": true en el cuerpo: añadir o ampliar un volumen de almacenamiento, activar sus copias de seguridad o configurar el crecimiento automático, vincular un volumen que no se está facturando, restaurar en un volumen nuevo y subir de plan una base de datos. Sin él no cambia nada, y la respuesta es un 422 con el precio:
{"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"}}
Muestra el precio y luego envía la misma llamada con "confirm": true. El SDK lanza un HostwolfAppsError con el código confirm_required y el precio en error.quote; las herramientas MCP pasan el mensaje al asistente. Restaurar una copia de seguridad sobre los archivos de un volumen también necesita confirm.
Algunos endpoints de origen no aplican en Hostwolf, porque Hostwolf gestiona los servidores por ti: añadir, validar, importar o eliminar servidores, tokens de proveedores de nube y ajustes de la instancia. Responden 403 con un mensaje y un enlace docs, y no aparecen abajo. Compra y cancela servidores en la consola en Servidores y facturación .
Límites de peticiones #
200 peticiones por minuto por usuario. Cada respuesta incluye X-RateLimit-Limit y X-RateLimit-Remaining. Acciones de bases de datos gestionadas: 10 por minuto. Cambios en volúmenes de almacenamiento: 10 por minuto, compartidos con la consola. Si superas el límite recibes un 429 con Retry-After (en segundos). El SDK espera por ti cuando los límites son cortos. El servidor MCP alojado permite 300 peticiones por minuto por dirección y 180 por token.
La mayoría de las listas lo devuelven todo de una vez. Las excepciones:
GET /deployments/applications/{uuid} acepta skip y take (10 por defecto) y devuelve {count, deployments}.GET /audit-events acepta page y per_page y devuelve {data, current_page, last_page, per_page, total}.
El SDK envuelve ambos en iteradores asíncronos (allForApplication, allAuditEvents).
Endpoints #
HW marca los endpoints que solo existen en Hostwolf Apps. Escribe en el cuadro para filtrar, o pulsa /.
278 endpoints
Proyectos #
Método Ruta Cuerpo / consulta Qué hace GET /projectsLista los proyectos. POST /projects+2 opcionales Crea un proyecto. GET /projects/{uuid}Obtiene un proyecto por UUID. PATCH /projects/{uuid}+2 opcionales Actualiza un proyecto. DELETE /projects/{uuid}Elimina un proyecto por UUID. GET /projects/{uuid}/environmentsLista todos los entornos de un proyecto. POST /projects/{uuid}/environments+1 opcional Crea un entorno en un proyecto. PATCH /projects/{uuid}/environments/{environment_name_or_uuid}+2 opcionales Actualiza un entorno de un proyecto por nombre o UUID. DELETE /projects/{uuid}/environments/{environment_name_or_uuid}Elimina un entorno por nombre o UUID. GET /projects/{uuid}/{environment_name_or_uuid}Obtiene un entorno por nombre o UUID.
Aplicaciones #
Método Ruta Cuerpo / consulta Qué hace GET /applications?tagLista todas las aplicaciones. POST /applications/dockerfileproject_uuid, server_uuid, dockerfile, +80 opcionalesCrea una aplicación nueva a partir de un Dockerfile sencillo (sin git). POST /applications/dockerimageproject_uuid, server_uuid, docker_registry_image_name, +77 opcionalesCrea una aplicación nueva a partir de una imagen Docker ya construida (sin git). POST /applications/private-deploy-keyproject_uuid, server_uuid, private_key_uuid, git_repository, git_branch, build_pack, +96 opcionalesCrea una aplicación nueva a partir de un repositorio privado mediante una clave de despliegue. POST /applications/private-github-appproject_uuid, server_uuid, github_app_uuid, git_repository, git_branch, build_pack, +96 opcionalesCrea una aplicación nueva a partir de un repositorio privado mediante una GitHub App. POST /applications/publicproject_uuid, server_uuid, git_repository, git_branch, build_pack, +96 opcionalesCrea una aplicación nueva a partir de un repositorio git público. GET /applications/{uuid}Obtiene una aplicación por UUID. PATCH /applications/{uuid}+95 opcionales Actualiza una aplicación por UUID. DELETE /applications/{uuid}?delete_configurations, ?delete_volumes, ?docker_cleanup, ?delete_connected_networksElimina una aplicación por UUID. POST /applications/{uuid}/clonedestination_uuid, +2 opcionalesClona una aplicación en un destino del equipo autenticado. GET /applications/{uuid}/destinationsLista los destinos principal y adicionales de una aplicación independiente. POST /applications/{uuid}/destinationsdestination_uuidVincula un destino Docker independiente adicional a una aplicación. DELETE /applications/{uuid}/destinations/{destination_uuid}Desvincula un destino adicional de una aplicación. GET /applications/{uuid}/envsLista todas las variables de entorno por UUID de aplicación. POST /applications/{uuid}/envs+6 opcionales Crea una variable de entorno por UUID de aplicación. PATCH /applications/{uuid}/envskey, value, +4 opcionalesActualiza una variable de entorno por UUID de aplicación. PATCH /applications/{uuid}/envs/bulkdataActualiza varias variables de entorno por UUID de aplicación. DELETE /applications/{uuid}/envs/{env_uuid}Elimina una variable de entorno por UUID. GET /applications/{uuid}/logs?lines, ?show_timestamps, ?service_nameObtiene los registros de una aplicación por UUID. GET /applications/{uuid}/metrics?minutesLee el historial de Sentinel. HW POST /applications/{uuid}/migratedestination_uuid, +1 opcionalMigra una aplicación a otro destino/servidor del equipo autenticado. POST /applications/{uuid}/moveenvironment_uuidMueve una aplicación a otro proyecto/entorno. GET /applications/{uuid}/previewsLista los despliegues de vista previa de una aplicación, empezando por la pull request más reciente. POST /applications/{uuid}/previewspull_request_id, +6 opcionalesAbre un despliegue de vista previa para una pull request y pone en cola su despliegue. GET /applications/{uuid}/previews/{pull_request_id}Obtiene un despliegue de vista previa por ID de pull request. PATCH /applications/{uuid}/previews/{pull_request_id}+3 opcionales Reemplaza los dominios de un despliegue de vista previa. DELETE /applications/{uuid}/previews/{pull_request_id}Elimina un despliegue de vista previa de una pull request. GET /applications/{uuid}/previews/{pull_request_id}/logs?lines, ?show_timestamps, ?service_nameObtiene los registros del contenedor en ejecución de un despliegue de vista previa por UUID de aplicación e ID de pull request. POST /applications/{uuid}/restartReinicia una aplicación. POST /applications/{uuid}/rollbackcommitPone en cola un despliegue de rollback de una aplicación a un commit/etiqueta de imagen anterior. GET /applications/{uuid}/rollback-imagesLista las imágenes Docker disponibles para hacer rollback de una aplicación. POST /applications/{uuid}/start?force, ?instant_deployInicia una aplicación. POST /applications/{uuid}/stop?docker_cleanupDetiene una aplicación. GET /applications/{uuid}/storagesLista todos los almacenamientos persistentes y de archivo por UUID de aplicación. POST /applications/{uuid}/storagestype, mount_path, +4 opcionalesCrea un almacenamiento persistente o de archivo para una aplicación. PATCH /applications/{uuid}/storagestype, +6 opcionalesActualiza un almacenamiento persistente o de archivo por UUID de aplicación. DELETE /applications/{uuid}/storages/{storage_uuid}Elimina un almacenamiento persistente o de archivo por UUID de aplicación. PUT /applications/{uuid}/storages/{storage_uuid}/backupsfrequency, +12 opcionalesCrea o reemplaza la programación de copias de seguridad de un volumen persistente o almacenamiento de directorio de una aplicación. DELETE /applications/{uuid}/storages/{storage_uuid}/backupsElimina la programación de copias de seguridad y sus archivos locales y en S3 de un almacenamiento de aplicación. POST /applications/{uuid}/storages/{storage_uuid}/backups/runPone en cola una copia de seguridad inmediata del volumen de un almacenamiento de aplicación con programación. GET /applications/{uuid}/tagsLista las etiquetas de una aplicación por UUID. POST /applications/{uuid}/tags+2 opcionales Añade etiqueta(s) a una aplicación por UUID. DELETE /applications/{uuid}/tags/{tag_uuid}Quita una etiqueta de una aplicación por UUID.
Despliegues #
Método Ruta Cuerpo / consulta Qué hace POST /deploy?tag, ?uuid, ?force, ?pr, …Despliega por etiqueta o UUID usando parámetros de consulta o un cuerpo JSON. GET /deploymentsLista los despliegues en curso GET /deployments/applications/{uuid}?skip, ?takeLista los despliegues de una aplicación usando el uuid de la app GET /deployments/{uuid}Obtiene un despliegue por UUID. POST /deployments/{uuid}/cancelCancela un despliegue por UUID.
Servidores comprados HW #
Servidores que compró tu equipo. La compra y la cancelación se hacen en la consola, así que son de solo lectura.
Método Ruta Cuerpo / consulta Qué hace GET /hostwolf/regions?sizeLas ciudades en las que Hostwolf vende servidores, con el precio mensual de cada tamaño de servidor (el mismo catálogo que la página de precios). POST /servers/{uuid}/resizesize, confirmCambia el tamaño de un servidor de aplicaciones o VPS comprado sin moverlo; conserva su ubicación e IP. GET /hostwolf/serversServidores de aplicaciones y VPS que compró tu equipo, con su tamaño, ciudad, estado y precio mensual. GET /hostwolf/servers/{uuid}Un servidor de aplicaciones o VPS comprado, por su uuid. GET /hostwolf/servers/{uuid}/traffic?monthTráfico saliente de un servidor comprado en un mes natural (UTC), y lo que cuesta hasta ahora: 1 TB al mes está incluido, y después cada GB completo cuesta price_per_gb. GET /hostwolf/traffic?monthTráfico saliente de todos los servidores de tu equipo en un mes natural (UTC), incluidos los servidores eliminados, con la factura total hasta ahora.
Bases de datos gestionadas HW #
PostgreSQL, MariaDB y Redis en servidores de bases de datos de Hostwolf. Consulta la guía de bases de datos .
Método Ruta Cuerpo / consulta Qué hace GET /managed-databasesLas bases de datos gestionadas de tu equipo con su estado actual. POST /managed-databasesengine, plan, region, +1 opcionalCrea una base de datos gestionada. GET /managed-databases/catalogMotores, planes con sus límites y regiones con el precio mensual y por hora de cada plan. GET /managed-databases/{uuid}Obtén una base de datos gestionada PATCH /managed-databases/{uuid}eviction_policyRedis: cambia la política de expulsión (se aplica en vivo, sin reiniciar). DELETE /managed-databases/{uuid}Elimina la base de datos y detiene su facturación. POST /managed-databases/{uuid}/attachapplication_uuid, +2 opcionalesGuarda en una aplicación la URL de conexión con pool como DATABASE_URL y la directa como DATABASE_DIRECT_URL (Redis: solo REDIS_URL): solo en tiempo de ejecución, cifradas, se muestran una vez… POST /managed-databases/{uuid}/backupsInicia ahora una copia de seguridad extra. GET /managed-databases/{uuid}/connectionLas URLs de conexión con la contraseña; TLS obligatorio. POST /managed-databases/{uuid}/upgradeplan, +1 opcionalPasa la base de datos a un plan más grande de su lista upgrades.
Autoescalado HW #
Autoescalado por app. Consulta la guía de escalado .
Método Ruta Cuerpo / consulta Qué hace GET /applications/{uuid}/autoscalingLa política de autoescalado de la aplicación, si se puede activar (y por qué no) y el estado en vivo: copias, CPU y el gasto de autoescalado de este mes. PUT /applications/{uuid}/autoscaling+10 opcionales Activa o desactiva el autoescalado y cambia sus ajustes.
Servidores #
Tus servidores de aplicaciones. Añadir, validar y eliminar servidores lo hace Hostwolf; esas llamadas responden 403 con un enlace docs.
Método Ruta Cuerpo / consulta Qué hace GET /serversLista todos los servidores. GET /servers/{uuid}Obtiene un servidor por UUID. PATCH /servers/{uuid}+17 opcionales Actualiza un servidor. GET /servers/{uuid}/cloudflare-tunnelObtiene los ajustes de Cloudflare Tunnel de un servidor del equipo autenticado. PATCH /servers/{uuid}/cloudflare-tunnel+1 opcional Actualiza los ajustes guardados de Cloudflare Tunnel de un servidor. POST /servers/{uuid}/cloudflare-tunnel/disableMarca Cloudflare Tunnel como desactivado y restaura ip_previous si está disponible. POST /servers/{uuid}/cloudflare-tunnel/enableMarca manualmente Cloudflare Tunnel como activado en un servidor (igual que la activación manual en la interfaz). GET /servers/{uuid}/docker-cleanupObtiene los ajustes de limpieza de Docker de un servidor del equipo autenticado. PATCH /servers/{uuid}/docker-cleanup+6 opcionales Actualiza los ajustes de limpieza de Docker de un servidor del equipo autenticado. GET /servers/{uuid}/docker-cleanup/executionsLista los registros recientes de ejecución de la limpieza de Docker de un servidor del equipo autenticado. POST /servers/{uuid}/docker-cleanup/run+2 opcionales Lanza una tarea manual de limpieza de Docker para un servidor del equipo autenticado. GET /servers/{uuid}/domainsObtiene los dominios por servidor. GET /servers/{uuid}/log-drainsObtiene los ajustes de drenaje de registros de un servidor del equipo autenticado. PATCH /servers/{uuid}/log-drains+9 opcionales Actualiza los ajustes de drenaje de registros de New Relic, Axiom o personalizados de un servidor del equipo autenticado. GET /servers/{uuid}/metrics?minutesLee el historial de Sentinel. HW GET /servers/{uuid}/proxyObtiene los ajustes del proxy de un servidor del equipo autenticado. PATCH /servers/{uuid}/proxy+4 opcionales Actualiza los ajustes de redirección del proxy, la generación exacta de etiquetas y, opcionalmente, el tipo de proxy de un servidor del equipo. PUT /servers/{uuid}/proxy/configurationconfigurationGuarda la configuración Docker Compose sin procesar del proxy de un servidor del equipo. POST /servers/{uuid}/proxy/restartPone en cola un reinicio del proxy de un servidor del equipo. GET /servers/{uuid}/registriesLista los registros Docker en los que ha iniciado sesión un servidor y los registros de los que descargan o a los que suben sus recursos. POST /servers/{uuid}/registriesregistry, username, passwordEjecuta docker login en el servidor, escribiendo en la configuración de Docker que usan los despliegues. DELETE /servers/{uuid}/registries/{registry}Ejecuta docker logout en el servidor para un registro. POST /servers/{uuid}/registries/{registry}/checkComprueba que el inicio de sesión guardado del servidor para un registro sigue funcionando. GET /servers/{uuid}/resourcesObtiene los recursos por servidor. GET /servers/{uuid}/sentinelObtiene los ajustes de Sentinel de un servidor del equipo autenticado. PATCH /servers/{uuid}/sentinel+14 opcionales Actualiza los ajustes de Sentinel de un servidor del equipo autenticado.
Variables compartidas #
Método Ruta Cuerpo / consulta Qué hace GET /projects/{uuid}/environments/{environment_name_or_uuid}/envsLista las variables de entorno compartidas de un entorno de un proyecto (type=environment). POST /projects/{uuid}/environments/{environment_name_or_uuid}/envsCrea una variable de entorno compartida para un entorno de un proyecto (type=environment). PATCH /projects/{uuid}/environments/{environment_name_or_uuid}/envs/{env_id}Actualiza una variable de entorno compartida de entorno por id. DELETE /projects/{uuid}/environments/{environment_name_or_uuid}/envs/{env_id}Elimina una variable de entorno compartida de entorno por id. GET /projects/{uuid}/envsLista las variables de entorno compartidas de un proyecto (type=project). POST /projects/{uuid}/envsCrea una variable de entorno compartida para un proyecto (type=project). PATCH /projects/{uuid}/envs/{env_id}Actualiza una variable de entorno compartida de proyecto por id. DELETE /projects/{uuid}/envs/{env_id}Elimina una variable de entorno compartida de proyecto por id. GET /servers/{uuid}/envsLista las variables de entorno compartidas de un servidor (type=server). POST /servers/{uuid}/envsCrea una variable de entorno compartida para un servidor (type=server). PATCH /servers/{uuid}/envs/{env_id}Actualiza una variable de entorno compartida de servidor por id. DELETE /servers/{uuid}/envs/{env_id}Elimina una variable de entorno compartida de servidor por id. GET /team/envsLista las variables de entorno compartidas del equipo actual (type=team). POST /team/envskey, +5 opcionalesCrea una variable de entorno compartida para el equipo actual (type=team). PATCH /team/envs/{env_id}Actualiza una variable de entorno compartida de equipo por id. DELETE /team/envs/{env_id}Elimina una variable de entorno compartida de equipo por id.
Equipos #
Método Ruta Cuerpo / consulta Qué hace GET /teamObtiene el equipo vinculado al token de API. PATCH /teamis_build_server_fallback_enabledActualiza los ajustes del equipo vinculado al token de API. GET /team/membersObtiene los miembros del equipo vinculado al token de API. GET /teamsObtiene todos los equipos. GET /teams/{id}Obtiene un equipo por TeamId. GET /teams/{id}/membersObtiene los miembros por TeamId.
Registro de auditoría #
Método Ruta Cuerpo / consulta Qué hace GET /audit-events?per_page, ?page, ?search, ?action, …Lista los eventos de auditoría del equipo.
Destinos #
Método Ruta Cuerpo / consulta Qué hace GET /destinationsLista todos los destinos de red Docker del equipo autenticado. GET /destinations/{uuid}Obtiene un destino de red Docker por UUID. PATCH /destinations/{uuid}+1 opcional Actualiza el nombre de un destino de red Docker. DELETE /destinations/{uuid}Elimina un destino de red Docker sin usar. GET /servers/{server_uuid}/destinationsLista los destinos de red Docker vinculados a un servidor del equipo autenticado. POST /servers/{server_uuid}/destinationsnetwork, +2 opcionalesCrea un destino de red Docker en un servidor del equipo autenticado.
Tareas programadas #
Método Ruta Cuerpo / consulta Qué hace GET /applications/{uuid}/scheduled-tasksLista todas las tareas programadas de una aplicación. POST /applications/{uuid}/scheduled-tasksname, command, frequency, +3 opcionalesCrea una nueva tarea programada para una aplicación. PATCH /applications/{uuid}/scheduled-tasks/{task_uuid}+6 opcionales Actualiza una tarea programada de una aplicación. DELETE /applications/{uuid}/scheduled-tasks/{task_uuid}Elimina una tarea programada de una aplicación. POST /applications/{uuid}/scheduled-tasks/{task_uuid}/executePone en cola la ejecución inmediata de una tarea programada de una aplicación. GET /applications/{uuid}/scheduled-tasks/{task_uuid}/executionsLista todas las ejecuciones de una tarea programada de una aplicación. GET /services/{uuid}/scheduled-tasksLista todas las tareas programadas de un servicio. POST /services/{uuid}/scheduled-tasksname, command, frequency, +3 opcionalesCrea una nueva tarea programada para un servicio. PATCH /services/{uuid}/scheduled-tasks/{task_uuid}+6 opcionales Actualiza una tarea programada de un servicio. DELETE /services/{uuid}/scheduled-tasks/{task_uuid}Elimina una tarea programada de un servicio. POST /services/{uuid}/scheduled-tasks/{task_uuid}/executePone en cola la ejecución inmediata de una tarea programada de un servicio. GET /services/{uuid}/scheduled-tasks/{task_uuid}/executionsLista todas las ejecuciones de una tarea programada de un servicio.
Método Ruta Cuerpo / consulta Qué hace GET /tagsLista todas las etiquetas del equipo actual. POST /tagsnameCrea una etiqueta para el equipo actual. PATCH /tags/{uuid}nameActualiza el nombre de una etiqueta del equipo actual. DELETE /tags/{uuid}Elimina una etiqueta del equipo actual.
Recursos #
Método Ruta Cuerpo / consulta Qué hace GET /resourcesObtiene todos los recursos.
Gestores de secretos #
Método Ruta Cuerpo / consulta Qué hace PATCH /applications/{uuid}/secret-managerintegration_token_uuid, +1 opcionalConfigura la fuente del gestor de secretos que usa una aplicación. POST /security/integration-tokensprovider, name, token, +1 opcionalCrea y valida un token de integración de Doppler, Infisical o Vault.
Scripts de cloud-init #
Método Ruta Cuerpo / consulta Qué hace GET /cloud-init-scriptsLista todos los scripts de cloud-init del equipo autenticado. POST /cloud-init-scriptsname, scriptCrea un nuevo script de cloud-init para el equipo autenticado. GET /cloud-init-scripts/{uuid}Obtiene un script de cloud-init por UUID. PATCH /cloud-init-scripts/{uuid}+2 opcionales Actualiza un script de cloud-init por UUID. DELETE /cloud-init-scripts/{uuid}Elimina un script de cloud-init por UUID.
Bases de datos (antiguas) #
Bases de datos creadas en servidores de aplicaciones antes de que existieran las bases de datos gestionadas. Las bases de datos nuevas son bases de datos gestionadas .
Método Ruta Cuerpo / consulta Qué hace GET /databasesLista todas las bases de datos. GET /databases/{uuid}Obtiene una base de datos por UUID. PATCH /databases/{uuid}+46 opcionales Actualiza una base de datos por UUID. DELETE /databases/{uuid}?delete_configurations, ?delete_volumes, ?docker_cleanup, ?delete_connected_networksElimina una base de datos por UUID. GET /databases/{uuid}/backupsObtiene los detalles de las copias de seguridad por UUID de base de datos. POST /databases/{uuid}/backupsfrequency, +14 opcionalesCrea una nueva configuración de copias de seguridad programadas para una base de datos PATCH /databases/{uuid}/backups/{scheduled_backup_uuid}+15 opcionales Actualiza una configuración de copias de seguridad concreta de una base de datos, identificada por su UUID y el ID de la copia DELETE /databases/{uuid}/backups/{scheduled_backup_uuid}?delete_s3Elimina una configuración de copias de seguridad y todas sus ejecuciones. GET /databases/{uuid}/backups/{scheduled_backup_uuid}/executionsObtiene todas las ejecuciones de una configuración de copias de seguridad. DELETE /databases/{uuid}/backups/{scheduled_backup_uuid}/executions/{execution_uuid}?delete_s3Elimina una ejecución concreta de copia de seguridad. GET /databases/{uuid}/envsLista todas las variables de entorno por UUID de base de datos. POST /databases/{uuid}/envs+5 opcionales Crea una variable de entorno por UUID de base de datos. PATCH /databases/{uuid}/envskey, value, +3 opcionalesActualiza una variable de entorno por UUID de base de datos. PATCH /databases/{uuid}/envs/bulkdataActualiza varias variables de entorno por UUID de base de datos. DELETE /databases/{uuid}/envs/{env_uuid}Elimina una variable de entorno por UUID. GET /databases/{uuid}/logs?lines, ?show_timestampsObtiene los registros de una base de datos por UUID. POST /databases/{uuid}/restartReinicia una base de datos. POST /databases/{uuid}/startInicia una base de datos. POST /databases/{uuid}/stop?docker_cleanupDetiene una base de datos. GET /databases/{uuid}/storagesLista todos los almacenamientos persistentes y de archivo por UUID de base de datos. POST /databases/{uuid}/storagestype, mount_path, +4 opcionalesCrea un almacenamiento persistente o de archivo para una base de datos. PATCH /databases/{uuid}/storagestype, +6 opcionalesActualiza un almacenamiento persistente o de archivo por UUID de base de datos. DELETE /databases/{uuid}/storages/{storage_uuid}Elimina un almacenamiento persistente o de archivo por UUID de base de datos. PUT /databases/{uuid}/storages/{storage_uuid}/backupsfrequency, +12 opcionalesCrea o reemplaza la programación de copias de seguridad de un volumen persistente o almacenamiento de directorio de una base de datos. DELETE /databases/{uuid}/storages/{storage_uuid}/backupsElimina la programación de copias de seguridad y sus archivos locales y en S3 de un almacenamiento de base de datos. POST /databases/{uuid}/storages/{storage_uuid}/backups/runPone en cola una copia de seguridad inmediata del volumen de un almacenamiento de base de datos con programación. GET /databases/{uuid}/tagsLista las etiquetas de una base de datos por UUID. POST /databases/{uuid}/tags+2 opcionales Añade etiqueta(s) a una base de datos por UUID. DELETE /databases/{uuid}/tags/{tag_uuid}Quita una etiqueta de una base de datos por UUID.
GitHub Apps #
Método Ruta Cuerpo / consulta Qué hace GET /github-appsLista todas las GitHub Apps. POST /github-appsname, html_url, app_id, installation_id, client_id, client_secret, private_key_uuid, +6 opcionalesCrea una nueva GitHub App. PATCH /github-apps/{github_app_id}+13 opcionales Actualiza una GitHub App existente. DELETE /github-apps/{github_app_id}Elimina una GitHub App si ninguna aplicación la está usando. GET /github-apps/{github_app_id}/repositoriesObtiene los repositorios de GitHub de una GitHub App. GET /github-apps/{github_app_id}/repositories/{owner}/{repo}/branchesObtiene las ramas de GitHub de un repositorio.
Apps de GitLab #
Método Ruta Cuerpo / consulta Qué hace GET /gitlab-appsLista todas las apps de GitLab del equipo actual (y las fuentes de todo el sistema). POST /gitlab-appsname, html_url, +9 opcionalesCrea una nueva app de GitLab (fuente OAuth). PATCH /gitlab-apps/{gitlab_app_id}+11 opcionales Actualiza una app de GitLab existente. DELETE /gitlab-apps/{gitlab_app_id}Elimina una app de GitLab si ninguna aplicación la está usando.
Volúmenes de almacenamiento #
Método Ruta Cuerpo / consulta Qué hace GET /hostwolf/servers/{uuid}/volumesLos volúmenes de almacenamiento de uno de tus servidores comprados (incluidos los volúmenes que desvinculaste de él), con tamaño, uso, copias de seguridad y precio. POST /hostwolf/servers/{uuid}/volumessize_gb, +3 opcionalesAñade un volumen de almacenamiento en bloque (10-1000 GB) a un servidor de aplicaciones o VPS, montado en /mnt/volume- en alrededor de un minuto. GET /hostwolf/servers/{uuid}/volumes/offer?size_gbSi se pueden añadir volúmenes a este servidor, los tamaños permitidos en su ciudad y el precio de un tamaño (size_gb), con o sin copias de seguridad. GET /hostwolf/servers/{uuid}/volumes/{volume}Obtén un volumen PATCH /hostwolf/servers/{uuid}/volumes/{volume}+4 opcionales Amplíalo (size_gb; los volúmenes nunca se reducen), activa o desactiva las copias de seguridad nocturnas o fija el límite de crecimiento automático. DELETE /hostwolf/servers/{uuid}/volumes/{volume}Desmonta y elimina el volumen y sus archivos. POST /hostwolf/servers/{uuid}/volumes/{volume}/backupsInicia una copia de seguridad ahora, además de la nocturna. POST /hostwolf/servers/{uuid}/volumes/{volume}/detachDesmonta el volumen y lo desvincula del servidor. POST /hostwolf/servers/{uuid}/volumes/{volume}/restorebackup_id, target, +1 opcionalRestaura una copia de seguridad en el propio volumen (target: same: los archivos escritos después de la copia se eliminan y, mientras tanto, el volumen no está disponible) o en un volumen nuevo del mismo tamaño… GET /hostwolf/volumes?statusTodos los volúmenes de tu equipo: los vinculados, los que desvinculaste y los volúmenes de servidores eliminados que se conservan durante 7 días (kept_until). GET /hostwolf/volumes/{volume}Un volumen por id, vinculado o desvinculado. DELETE /hostwolf/volumes/{volume}Elimina ahora un volumen desvinculado y sus archivos (en lugar de al final de los 7 días). POST /hostwolf/volumes/{volume}/attachserver_uuid, +1 opcionalVincula un volumen desvinculado (uno que desvinculaste, o uno conservado tras eliminar su servidor) a uno de tus servidores listos en la misma ciudad, montado en la misma ruta en alrededor de un minuto. GET /hostwolf/volumes/{volume}/backupsCopias de seguridad que se pueden restaurar, de la más reciente a la más antigua (cada noche, se guardan 7 días). POST /hostwolf/volumes/{volume}/restorebackup_id, server_uuid, +1 opcionalRestaura una copia de seguridad de un volumen desvinculado en un volumen nuevo en uno de tus servidores de la misma ciudad (se factura como cualquier volumen, así que se necesita "confirm": true).
Notificaciones #
Método Ruta Cuerpo / consulta Qué hace GET /notifications/discordObtiene los ajustes de notificaciones de Discord del equipo actual. PATCH /notifications/discordActualiza los ajustes de notificaciones de Discord del equipo actual. GET /notifications/emailObtiene los ajustes de notificaciones por email del equipo actual, incluido smtp_ehlo_domain, el nombre de host que se envía con SMTP EHLO. PATCH /notifications/emailActualiza los ajustes de notificaciones por email del equipo actual. GET /notifications/pushoverObtiene los ajustes de notificaciones de Pushover del equipo actual. PATCH /notifications/pushoverActualiza los ajustes de notificaciones de Pushover del equipo actual. GET /notifications/slackObtiene los ajustes de notificaciones de Slack del equipo actual. PATCH /notifications/slackActualiza los ajustes de notificaciones de Slack del equipo actual. GET /notifications/telegramObtiene los ajustes de notificaciones de Telegram del equipo actual. PATCH /notifications/telegramActualiza los ajustes de notificaciones de Telegram del equipo actual. GET /notifications/webhookObtiene los ajustes de notificaciones por webhook del equipo actual. PATCH /notifications/webhookActualiza los ajustes de notificaciones por webhook del equipo actual.
Almacenamientos S3 #
Método Ruta Cuerpo / consulta Qué hace GET /s3-storagesLista todos los almacenamientos S3 del equipo autenticado. POST /s3-storagesname, endpoint, bucket, region, key, secret, +2 opcionalesCrea una nueva configuración de almacenamiento S3 para el equipo autenticado. GET /s3-storages/{uuid}Obtiene un almacenamiento S3 por UUID. PATCH /s3-storages/{uuid}+8 opcionales Actualiza un almacenamiento S3 por UUID. DELETE /s3-storages/{uuid}Elimina un almacenamiento S3 por UUID. POST /s3-storages/{uuid}/validateValida la conexión a un almacenamiento S3 usando ListObjectsV2.
Claves de despliegue #
Método Ruta Cuerpo / consulta Qué hace GET /security/keysLista todas las claves privadas. POST /security/keysprivate_key, +2 opcionalesCrea una nueva clave privada. GET /security/keys/{uuid}Obtiene una clave por UUID. PATCH /security/keys/{uuid}private_key, +2 opcionalesActualiza una clave privada. DELETE /security/keys/{uuid}Elimina una clave privada.
Contenedores de servicios #
Método Ruta Cuerpo / consulta Qué hace GET /services/{uuid}/applicationsLista las aplicaciones (contenedores) de compose de un servicio. GET /services/{uuid}/applications/{app_uuid}Obtiene una aplicación de servicio de compose por UUID de servicio y UUID de aplicación. PATCH /services/{uuid}/applications/{app_uuid}+11 opcionales, ?force_domain_override Actualiza campos de una aplicación de servicio de compose. GET /services/{uuid}/applications/{app_uuid}/logs?linesObtiene los registros de Docker de un único contenedor de servicio de compose. POST /services/{uuid}/applications/{app_uuid}/logs?linesObtiene los registros de Docker de un único contenedor de servicio de compose. POST /services/{uuid}/applications/{app_uuid}/restartReinicia un único contenedor de servicio de compose. POST /services/{uuid}/applications/{app_uuid}/start?force, ?latestEjecuta docker compose up para un único servicio de compose (sin dependencias), opcionalmente descargando la imagen y rehaciendo el build. POST /services/{uuid}/applications/{app_uuid}/stopDetiene un único contenedor de servicio de compose.
Bases de datos de servicios #
Método Ruta Cuerpo / consulta Qué hace GET /services/{uuid}/databasesLista las bases de datos de compose de un servicio. GET /services/{uuid}/databases/{database_uuid}Obtiene una base de datos de compose por UUID de servicio y UUID de base de datos. PATCH /services/{uuid}/databases/{database_uuid}+8 opcionales Actualiza los campos modificables de una base de datos de servicio de compose. POST /services/{uuid}/databases/{database_uuid}/importsImporta una copia de seguridad de la base de datos de un servicio POST /services/{uuid}/databases/{database_uuid}/imports/uploadsSube una importación de base de datos de un servicio GET /services/{uuid}/databases/{database_uuid}/imports/{activity_id}Obtiene el estado de importación de la base de datos de un servicio GET /services/{uuid}/databases/{database_uuid}/logs?linesObtiene los registros de Docker del contenedor de una base de datos de compose. POST /services/{uuid}/databases/{database_uuid}/restartReinicia el contenedor de una base de datos de compose. POST /services/{uuid}/databases/{database_uuid}/start?force, ?latestEjecuta docker compose up para una base de datos de compose. POST /services/{uuid}/databases/{database_uuid}/stopDetiene el contenedor de una base de datos de compose.
Servicios #
Servicios de un clic (plantillas de Docker Compose) en tus servidores de aplicaciones.
Método Ruta Cuerpo / consulta Qué hace GET /servicesLista todos los servicios. POST /servicesserver_uuid, project_uuid, +12 opcionalesCrea un servicio de un clic o personalizado GET /services/{uuid}Obtiene un servicio por UUID. PATCH /services/{uuid}+8 opcionales Actualiza un servicio por UUID. DELETE /services/{uuid}?delete_configurations, ?delete_volumes, ?docker_cleanup, ?delete_connected_networks, …Elimina un servicio por UUID. POST /services/{uuid}/clonedestination_uuid, +2 opcionalesClona un servicio en un destino del equipo autenticado. GET /services/{uuid}/envsLista todas las variables de entorno por UUID de servicio. POST /services/{uuid}/envs+6 opcionales Crea una variable de entorno por UUID de servicio. PATCH /services/{uuid}/envskey, value, +4 opcionalesActualiza una variable de entorno por UUID de servicio. PATCH /services/{uuid}/envs/bulkdataActualiza varias variables de entorno por UUID de servicio. DELETE /services/{uuid}/envs/{env_uuid}Elimina una variable de entorno por UUID. GET /services/{uuid}/logs?sub_service_name, ?lines, ?show_timestampsObtiene los registros de un subrecurso concreto de un servicio por UUID de servicio. POST /services/{uuid}/migratedestination_uuid, +1 opcionalMigra un servicio a otro destino/servidor del equipo autenticado. POST /services/{uuid}/moveenvironment_uuidMueve un servicio a otro proyecto/entorno. POST /services/{uuid}/restart?latestReinicia un servicio. POST /services/{uuid}/startInicia un servicio. POST /services/{uuid}/stop?docker_cleanupDetiene un servicio. GET /services/{uuid}/storagesLista todos los almacenamientos persistentes y de archivo por UUID de servicio. POST /services/{uuid}/storagestype, mount_path, resource_uuid, +4 opcionalesCrea un almacenamiento persistente o de archivo para un subrecurso de un servicio. PATCH /services/{uuid}/storagestype, +6 opcionalesActualiza un almacenamiento persistente o de archivo por UUID de servicio. DELETE /services/{uuid}/storages/{storage_uuid}Elimina un almacenamiento persistente o de archivo por UUID de servicio. PUT /services/{uuid}/storages/{storage_uuid}/backupsfrequency, +12 opcionalesCrea o reemplaza la programación de copias de seguridad de un volumen persistente o almacenamiento de directorio de un servicio. DELETE /services/{uuid}/storages/{storage_uuid}/backupsElimina la programación de copias de seguridad y sus archivos locales y en S3 de un almacenamiento de servicio. POST /services/{uuid}/storages/{storage_uuid}/backups/runPone en cola una copia de seguridad inmediata del volumen de un almacenamiento de servicio con programación. GET /services/{uuid}/tagsLista las etiquetas de un servicio por UUID. POST /services/{uuid}/tags+2 opcionales Añade etiqueta(s) a un servicio por UUID. DELETE /services/{uuid}/tags/{tag_uuid}Quita una etiqueta de un servicio por UUID.
Estado y versión #
Método Ruta Cuerpo / consulta Qué hace GET /healthEndpoint de health check. GET /versionObtiene la versión de Hostwolf.
Ampliaciones de servidores #
Pide un presupuesto para un tamaño mayor con POST /servers/{uuid}/resize y {"size":"m"}. El UUID es el de un servidor de aplicaciones o VPS comprado; los servidores de aplicaciones también aceptan su UUID de servidor. El presupuesto devuelve 200 con el nuevo precio mensual, la diferencia de precio, la interrupción estimada y la nota sobre el disco. El servidor aún no cambia.
Confirma con {"size":"m","confirm":true} y una cabecera Idempotency-Key. Guarda un UUID para esta confirmación y reutilízalo al volver a intentarlo. La respuesta es 202 con el identificador de la operación. Un tamaño no disponible o un servidor ocupado devuelve 409; un servidor de otro equipo devuelve 404.
El servidor conserva su ubicación, IP, volúmenes adicionales y registro de aplicaciones. Su estado es resizing hasta que terminan la ampliación y la actualización de facturación. El nuevo precio se aplica al terminar; el ajuste proporcional aparece en la próxima factura.
En el SDK 0.2.2, llama a servers.resize(uuid, 'm') para pedir un presupuesto y pasa {confirm:true, idempotencyKey:key} para confirmar. La herramienta MCP es resize_server. Este parche aún no se ha publicado.