# Яндекс Диск REST API: Скачать файл с Диска

Сценарий из mcp-everything. Актуально на 2026-10-24.

Забрать файл, который пользователь положил в папку, — для обработки на сервере.

1. Получи ссылку: GET /v1/disk/resources/download с path к файлу.
2. Скачай файл по href из ответа обычным GET-запросом. Ссылка действует ограниченное время — запрашивай новую перед каждым скачиванием.
3. Чтобы найти файлы в папке, запроси её содержимое: GET /v1/disk/resources с path, limit, offset и sort (например, -modified — сначала новые). Список — в _embedded.items.

```bash
curl -s -G https://cloud-api.yandex.net/v1/disk/resources -H "$H" \
  --data-urlencode 'path=disk:/Входящие' -d limit=20 -d sort=-modified -d 'fields=_embedded.items.name,_embedded.items.path'

HREF=$(curl -s -G https://cloud-api.yandex.net/v1/disk/resources/download -H "$H" \
  --data-urlencode 'path=disk:/Входящие/scan-001.pdf' | jq -r .href)
curl -L -o scan-001.pdf "$HREF"
```

## Базовые URL

- Боевой: `https://cloud-api.yandex.net`
- Загрузка и скачивание файлов идут через отдельные адреса, которые API возвращает в поле .: `href`

## Авторизация

Тип: OAuth 2.0

OAuth-токен Яндекс ID передаётся в заголовке `Authorization` с типом токена перед значением. Для получения токена создают OAuth-приложение с правами Диска (`cloud_api:disk.write`, `cloud_api:disk.read`, `cloud_api:disk.app_folder`, `cloud_api:disk.info`) и открывают `https://oauth.yandex.ru/authorize?response_type=token&client_id=<ClientID>`.

Заголовки `Accept` и `Content-Type` — только `application/json`.

```
Authorization: OAuth 0c4181a7c2cf4521964a72ff57a34a07
```

## Методы сценария

### GET /v1/disk/resources — Метаинформация о файле или папке

Для ресурса в Корзине — `GET /v1/disk/trash/resources`.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `path` | query | string | да | Путь к ресурсу, в URL-кодировке |
| `fields` | query | string | нет | Ключи ответа через запятую, вложенные — через точку |
| `limit` | query | integer | нет | Число вложенных ресурсов, по умолчанию 20 |
| `offset` | query | integer | нет | Сколько вложенных ресурсов пропустить |
| `preview_crop` | query | boolean | нет | Обрезать превью до квадрата, по умолчанию false |
| `preview_size` | query | string | нет | Размер превью: S–XXXL, ширина, высота или ШxВ |
| `sort` | query | string | нет | name, path, created, modified, size; дефис — обратный порядок |

### GET /v1/disk/resources/download — Ссылка на скачивание файла

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `path` | query | string | да | Путь к файлу, в URL-кодировке |
| `fields` | query | string | нет | Ключи ответа |

Пример ответа:

```json
{
  "href": "https://downloader.dst.yandex.ru/disk/...",
  "method": "GET",
  "templated": false
}
```

## Нюансы

- Пути передаются в URL-кодировке; `disk:/foo` и `/foo` — одна и та же папка.
- Длительные операции (копирование, перемещение, удаление непустых папок, загрузка из интернета) возвращают `202 Accepted` и объект Link на статус — статус нужно опрашивать самостоятельно.
- Объект Link: `href` (URL), `method` (HTTP-метод для него), `templated` (нужна ли подстановка параметров по RFC 6570).
- Ссылки на загрузку действуют 30 минут, ссылки на скачивание — ограниченное время.
- Один токен даёт одному приложению доступ к Диску одного пользователя; потерянный токен в кабинете не найти — запросите новый.

## Другие сценарии

- [Загрузить файл на Диск](https://mcp-everything.ru/integrations/yandex-disk/scenarios/zagruzit-fayl-na-disk.md)
- [Поделиться файлом по публичной ссылке](https://mcp-everything.ru/integrations/yandex-disk/scenarios/podelitsya-faylom-po-publichnoy-ssylke.md)
- [Скопировать, переместить или удалить папку](https://mcp-everything.ru/integrations/yandex-disk/scenarios/skopirovat-peremestit-ili-udalit-papku.md)

---

Если этого недостаточно — официальная документация: https://yandex.ru/dev/disk-api/doc/ru/
Вся интеграция одним документом: https://mcp-everything.ru/integrations/yandex-disk.md
