Redirige un enlace corto existente a otra URL de destino. El enlace corto se mantiene igual, por lo que sigue funcionando en los mensajes que ya se han enviado.

## URL de la API

URL utilizada para enviar las solicitudes HTTP:

```url
https://portal.bulkgate.com/api/1.0/shortener/change
```

> [!NOTE]
> Si la solicitud no llega a su destino, repítala en el [servidor de respaldo](https://www.bulkgate.com/es/documentacion/administracion-de-la-api/servidor-de-respaldo/) `backup1.bulkgate.com`.

## Métodos HTTP compatibles

- `POST` - `application/json`

```http
POST /api/1.0/shortener/change HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json
```

> [!NOTE]
> La API tiene una cuota de `20` solicitudes por minuto.

## Tabla de parámetros

| NOMBRE DEL PARÁMETRO | VALOR | OBLIGATORIO | VALOR PREDETERMINADO |
|:------------------|:---------------------------------------------------------|:----------|:--------------|
| application_id | [Application ID](https://www.bulkgate.com/es/documentacion/administracion-de-la-api/administracion-api/) | **Sí** | - |
| application_token | [Token de autenticación de la aplicación](https://www.bulkgate.com/es/documentacion/administracion-de-la-api/tokens-de-api/) | **Sí** | - |
| short_url | URL acortada que se va a modificar | **Sí** | - |
| target_url | Nueva URL | **Sí** | - |

## Ejemplo de solicitud

```http-json
POST /api/1.0/shortener/change HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json

{
  "application_id": 451,
  "application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
  "short_url": "ur7.wf/K",
  "target_url": "www.insymbo.com"
}
```

## Respuesta

**En caso de éxito:**

```json
{
    "data": {
        "short_url": "http://ur7.wf/K",
        "target_url": "http://www.insymbo.com/",
        "final_url": "www.insymbo.com",
        "title": "Online assessment tool for employee selection - INSYMBO"
    }
}
```

Los campos de la respuesta funcionan igual que en [Acortar URL](https://www.bulkgate.com/es/documentacion/acortador-de-url/acortador-acortar-url/), con una diferencia: aquí `final_url` contiene la dirección **exactamente como la envió**, sin añadir el esquema.

**En caso de error:**

```json
{
    "type": "url_not_found",
    "code": 400,
    "error": "Url not found",
    "detail": null
}
```

```json
{
    "type": "the_per_minute_quota_has_been_exceeded",
    "code": 400,
    "error": "The per minute quota has been exceeded",
    "detail": null
}
```

Donde:

- **type** y **error** (descripción del error) se encuentran en la [tabla de tipos de error](https://www.bulkgate.com/es/documentacion/administracion-de-la-api/tipos-de-error/)
- **code** es el código de error HTTP
- **detail** es información adicional sobre el error

### Tipos de error de la Shortener API

Además de los [tipos generales](https://www.bulkgate.com/es/documentacion/administracion-de-la-api/tipos-de-error/), la Shortener API devuelve los suyos propios:

| TIPO | CUÁNDO OCURRE |
|:----------------------------------------|:-----------------------------------------------------------------------|
| `url_not_found` | `short_url` no existe en la cuenta. |
| `url_is_not_valid` | No se ha podido analizar la nueva `target_url`. |
| `domain_is_not_white_listed` | El nuevo dominio de destino no está en la lista blanca (en dominios restringidos). |
| `the_per_minute_quota_has_been_exceeded`| Se ha agotado la cuota de 20 solicitudes por minuto. |
