Přesměruje už existující zkrácený odkaz na jinou cílovou URL. Samotný krátký odkaz zůstává beze změny, takže funguje i ve zprávách, které už jsou odeslané.

## API URL

Adresa URL používaná k odeslání požadavků HTTP:

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

> [!NOTE]
> Nedostane-li se požadavek k cíli, zopakujte ho na [záložním serveru](https://www.bulkgate.com/cs/dokumentace/api-administrace-a-tokeny/zalozni-server/) `backup1.bulkgate.com`.

## Podporované HTTP metody

- `POST` - `application/json`

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

> [!NOTE]
> API má nastavenou kvótu na `20` požadavků za minutu.

## Tabulka s parametry

| NÁZEV PARAMETRU   | HODNOTA                                                | POVINNÝ | VÝCHOZÍ HODNOTA |
|:------------------|:-------------------------------------------------------|:--------|:----------------|
| application_id    | [Aplikační identifikátor](https://www.bulkgate.com/cs/dokumentace/api-administrace-a-tokeny/administrace-api/) | **Ano** | -               | 
| application_token | [Aplikační ověřovací token](https://www.bulkgate.com/cs/dokumentace/api-administrace-a-tokeny/api-tokeny/)	      | **Ano** | -               |
| short_url         | Zkrácená url, která má být změněna	                    | **Ano** | -               |
| target_url        | Nová url                                               | **Ano** | -               |

## Příklad požadavku

```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"
}
```

## Odpověď

**V případě úspěchu:**

```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"
    }
}
```

Pole odpovědi fungují stejně jako u [shorten](https://www.bulkgate.com/cs/dokumentace/zkracovac/zkracovac-zkraceni-url/), s jedním rozdílem: `final_url` tady nese adresu **přesně tak, jak jste ji poslali**, bez doplnění schématu.

**V případě chyby:**

```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
}
```

Kde:

- **type** a **error** (popis chyby) najdete v [tabulce typů chyb](https://www.bulkgate.com/cs/dokumentace/api-administrace-a-tokeny/typy-chyb-api/)
- **code** je HTTP kód chyby
- **detail** je doplňující informace o chybě

### Typy chyb Shortener API

Vedle [obecných typů](https://www.bulkgate.com/cs/dokumentace/api-administrace-a-tokeny/typy-chyb-api/) vrací Shortener API vlastní:

| TYP                                     | KDY NASTANE                                                           |
|:----------------------------------------|:-----------------------------------------------------------------------|
| `url_not_found`                         | `short_url` v účtu neexistuje.                                         |
| `url_is_not_valid`                      | Nová `target_url` se nepodařilo rozparsovat.                           |
| `domain_is_not_white_listed`            | Nová cílová doména není na whitelistu (u domén s omezením).            |
| `the_per_minute_quota_has_been_exceeded`| Vyčerpaná kvóta 20 požadavků za minutu.                                |
