> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vertracloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Actualizar dominio de la aplicación

> Cambia el puerto, el prefijo de ruta o la redirección de un dominio personalizado, o lo convierte en el dominio principal, sin reiniciar la aplicación.

Cambia la forma en que se sirve un dominio. Envía solo los campos que quieras cambiar; la aplicación no se reinicia ni se vuelve a desplegar.
Requiere el scope `apps:write` cuando se llama con una clave de API.

**id** `string` *required*

El ID de la aplicación.

**domain\_id** `string` *required*

El ID del dominio, obtenido de [Listar dominios de la aplicación](https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/domains/list.md).

**workspace\_id** `string`

Si la aplicación pertenece a un workspace, el ID de ese workspace. Obligatorio para los miembros del workspace que actúan sobre una aplicación que no les pertenece.

**port** `integer`

El puerto de la aplicación que sirve este dominio, un entero de `1` a `65535`. Una aplicación puede servir sus dominios en hasta 5 puertos distintos además del `80`.

**path\_prefix** `string | null`

Una ruta literal que se antepone a cada petición, con el mismo formato que en [Añadir dominio a la aplicación](https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/domains/create.md) (`/api`). Envía `null` para quitarla.

**redirect\_to** `string | null`

El ID de otro dominio de la misma aplicación al que redirigir. Envía `null` para dejar de redirigir: el dominio vuelve a servir la aplicación y
`redirect_status` vuelve a `308`. El destino no debe redirigirse a sí mismo.

**redirect\_status** `integer`

El estado HTTP de la redirección: `301`, `302`, `307` o `308`. Se aplica solo mientras el dominio redirige. Cuando estableces `redirect_to` sin este campo,
el estado es `308` para un dominio que estaba sirviendo la aplicación, y se mantiene sin cambios para uno que ya redirigía.

**primary** `boolean`

Envía `true` en un complemento automático para convertirlo en el dominio principal: empieza a servir la aplicación, tomando el puerto y el prefijo de ruta,
y el antiguo dominio principal redirige a él. No tiene efecto sobre el dominio que ya es el principal, y cualquier otro dominio responde `VALIDATION_ERROR`.

### Respuesta

**response** `APIApplicationDomain[]`

El dominio que cambiaste y cualquier otro dominio cuyo rol cambió a causa de ello (por ejemplo, el antiguo dominio principal tras `primary`).
Cada elemento tiene los campos descritos en [Listar dominios de la aplicación](https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/domains/list.md#respuesta).

```json Response theme={null}
{
  "response": [
    {
      "id": "7b8f5e0a-3c1d-4e52-9a47-0d6e2c1f9b34",
      "hostname": "api.example.com",
      "apex": false,
      "companion_of": null,
      "redirect_to": null,
      "redirect_status": 308,
      "path_prefix": "/api",
      "port": 3000,
      "status": "active",
      "ssl_status": "active",
      "created_at": "2026-10-21T14:02:11.000Z"
    }
  ]
}
```

### Respuestas de error

**code** `string`

El código de error que indica el motivo del fallo. Valores posibles:

* `VALIDATION_ERROR`: Los parámetros de ruta o el cuerpo no superaron la validación, por ejemplo un campo desconocido, o `primary` en un dominio que no se puede intercambiar (`400`). La respuesta incluye también `message` y `path`.
* `INVALID_DOMAIN_PORT`: `port` no es un entero de 1 a 65535 (`400`).
* `INVALID_PATH_PREFIX`: `path_prefix` no sigue el formato de [Añadir dominio a la aplicación](https://docs.vertracloud.app/es-es/api-reference/endpoint/apps/domains/create.md) (`400`).
* `INVALID_REDIRECT_TARGET`: `redirect_to` no es otro dominio de esta aplicación, no está `active`, es el propio dominio o encadenaría dos redirecciones (`400`).
* `AUTH_TOKEN_MISSING`, `API_KEY_INVALID`, `SESSION_REVOKED`: Falta la cabecera `Authorization`, la clave de API no es válida o la sesión del panel fue revocada (`401`).
* `API_KEY_IP_DENIED`: La clave de API se usa desde una IP fuera de su lista de permitidas (`403`).
* `USER_NOT_FOUND`: No se pudo resolver el usuario autenticado (`401`).
* `ACCESS_DENIED`: El usuario no tiene permiso para actuar sobre la aplicación (`403`).
* `API_KEY_SCOPE_DENIED`: La clave de API no tiene el scope `apps:write` (`403`).
* `DOMAIN_PORT_LIMIT_REACHED`: El cambio haría que la aplicación sirviera dominios en más de 5 puertos además del `80` (`403`). `details.limit` indica el límite.
* `APP_NOT_FOUND`: La aplicación indicada no existe (`404`).
* `DOMAIN_NOT_FOUND`: La aplicación no tiene ningún dominio con ese ID (`404`).
* `RATE_LIMIT_EXCEEDED`: Se alcanzó el presupuesto de la ruta (`429`).
* `INTERNAL_SERVER_ERROR`: Error inesperado (`500`).

```json Error Response (400) theme={null}
{
  "code": "INVALID_REDIRECT_TARGET"
}
```

```json Error Response (404) theme={null}
{
  "code": "DOMAIN_NOT_FOUND"
}
```

> [!NOTE]
>
> Esta ruta tiene su propio presupuesto de 20 peticiones por minuto. Consulta [Límites de peticiones](https://docs.vertracloud.app/es-es/api-reference/introduction.md#cómo-se-aplican-los-límites-de-peticiones-a-la-api).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.