## Публичная ссылка на файл

`POST /v1/files/:id/public-link`

**Ссылка открывает файл любому без авторизации. Выключить её через API нельзя: только в интерфейсе Битрикс24 или физическим удалением объекта.**

Метод создаёт ссылку, если её нет. Повтор возвращает ту же ссылку. Может вернуться существующая ссылка другого сотрудника, в том числе с паролем или сроком; ответ не сообщает, защищена ли она. Не пишите URL в логи, аудит и телеметрию. Корзина лишь приостанавливает доступ: восстановление снова открывает прежнюю ссылку. Объект в корзине допускается и возвращает meta.inTrash=true; по ссылке будет страница «объект не найден» до восстановления.

## Параметры

| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| id | integer | да | Целое безопасное число больше нуля |

Скоуп ключа: disk. Тело не требуется. READONLY-ключ не может публиковать.

## curl — личный ключ

```bash
curl -X POST "https://vibecode.bitrix24.tech/v1/files/42/public-link" -H "X-Api-Key: YOUR_API_KEY"
```

## curl — ключ приложения

```bash
curl -X POST "https://vibecode.bitrix24.tech/v1/files/42/public-link" -H "X-Api-Key: YOUR_APP_KEY"
```


## JavaScript — личный ключ

```javascript
const response = await fetch("https://vibecode.bitrix24.tech/v1/files/42/public-link", {
  method: "POST",
  headers: { "X-Api-Key": "YOUR_API_KEY" },
});
const data = await response.json();
```


## JavaScript — ключ приложения

```javascript
const response = await fetch("https://vibecode.bitrix24.tech/v1/files/42/public-link", {
  method: "POST",
  headers: { "X-Api-Key": "YOUR_APP_KEY" },
});
const data = await response.json();
```

## Ответ

```json
{"success":true,"data":{"url":"https://bitrix24public.com/example.bitrix24.com/file/EXAMPLE_LINK","revocableViaApi":false},"meta":{"inTrash":false}}
```

## Поля ответа

| Поле | Тип | Описание |
|---|---|---|
| success | boolean | true |
| data.url | string | Секретная ссылка доступа |
| data.revocableViaApi | boolean | false |
| meta.inTrash | boolean | Объект в корзине |

## Ограничения и ошибки

Ссылки на файл требуют фичи disk_manual_external_link; на недоступном тарифе ответ 403 DISK_PUBLIC_LINK_PLAN_UNAVAILABLE.

403 BITRIX_ACCESS_DENIED означает отсутствие права изменения объекта или отключённые публичные ссылки на портале; Б24 не различает причины. 404 ENTITY_NOT_FOUND означает отсутствие объекта. 422 DISK_PUBLIC_LINK_REFUSED означает, что ссылка не получена. Записи автоматически не повторяются: при 502 DISK_OUTCOME_UNKNOWN сначала перечитайте состояние. В batch недоступно.

Для физического удаления используйте [purge](/docs/entities/files/purge).

Метод Битрикс24: `disk.file.getExternalLink`.

400 — неверный id в пути:

```json
{"success":false,"error":{"code":"INVALID_ID","message":"id must be a positive safe integer."}}
```
