# Посилання

Коли людина відповідає боту фото, відео, аудіо або файлом, а відповідь записується в змінну (перемикач запису відповіді у змінну користувача в розділі [«Додатково»](https://support.watbot.org/uk/chatbots/blocks/messages#додатково) блоку), у змінну потрапляє не сам файл, а коротке посилання на нього — вигляду `…/w/bK3x9`. Таке саме коротке посилання веде на файл [експорту списку](https://support.watbot.org/uk/lists/import-export#експорт-в-excel) бота в Excel.

Метод `decodeShortLink` перетворює таке посилання на пряме посилання на файл — щоб ваша система могла його завантажити, не переходячи за переадресацією.

## decodeShortLink

Повертає пряме посилання на файл за коротким посиланням.

```endpoint
GET POST https://watbot.org/api/v1/decodeShortLink
```

| Параметр | Тип | Обов'язковий | Опис |
|---|---|---|---|
| `url` | рядок | так | Коротке посилання повністю, з `https://` і, якщо він є, з параметром `?k=…`. Метод бере з нього код після `/w/`; домен не перевіряється |

```bash title="Запит"
curl -X POST "https://watbot.org/api/v1/decodeShortLink" \
  -H "Authorization: Bearer ВАШ_КЛЮЧ" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/w/bK3x9"}'
```

```json title="Відповідь 200"
{
  "data": {
    "url": "https://files.example.com/bots/12345/passport-scan.jpg"
  }
}
```

```json title="Відповідь 404"
{
  "error": "Коротке посилання не знайдено",
  "message": "Коротке посилання не знайдено"
}
```

Розкриваються лише посилання на файли, і лише ті, що належать вашому боту або вашому списку — зокрема списку, створеному в проєкті, а не в боті. Короткі посилання іншого призначення метод не розкриває. Прострочене посилання не розкривається, як і не відкривається за переходом.

Помилки методу (загальні — у розділі [Помилки](https://support.watbot.org/uk/api#помилки)):

| Код | Коли | Відповідь |
|---|---|---|
| `403` | Посилання належить боту або списку іншого акаунта або не прив'язане ні до бота, ні до списку | `{"error": "…", "message": "…"}` |
| `404` | Короткого посилання з таким кодом немає, строк його дії минув, не підійшов ключ `?k=` або видалено список, до якого воно веде | `{"error": "…", "message": "…"}` |
| `422` | Посилання веде не на файл | `{"error": "…", "message": "…"}` |
| `422` | `url` не передано, це не адреса або в ній немає шляху `/w/код` | `{"message": "…", "errors": {"url": ["…"]}}` |
