{"name":"Yandex Cloud API (IAM, Resource Manager, Compute Cloud)","vendor":"Яндекс","industry":"cloud","summary":"REST API облачной платформы Yandex Cloud. В файл вошли базовые сервисы: получение IAM-токена, облака и каталоги (Resource Manager), виртуальные машины Compute Cloud (список, создание, запуск, остановка, перезапуск, удаление) и отслеживание асинхронных операций. У каждого сервиса свой хост на `api.cloud.yandex.net`; те же методы доступны через gRPC.","docsUrl":"https://yandex.cloud/ru/docs/api-design-guide/","coverage":{"included":[],"excluded":[]},"scenarios":[{"id":"poluchit-iam-token-dlya-zaprosov-k-api","title":"Получить IAM-токен для запросов к API","summary":"Первый шаг любой автоматизации Yandex Cloud: обменять ключ сервисного аккаунта или OAuth-токен на IAM-токен.","steps":["Для скриптов и серверов создай сервисный аккаунт с нужными ролями и авторизованный ключ к нему. Подпиши им JWT (алгоритм PS256, aud = https://iam.api.cloud.yandex.net/iam/v1/tokens).","Обменяй: POST /iam/v1/tokens на iam.api.cloud.yandex.net с полем jwt. Для своего аккаунта на Яндексе вместо jwt передай yandexPassportOauthToken — ровно одно из полей.","Передавай токен во всех запросах: Authorization: Bearer <IAM-токен>. Токен живёт ограниченное время — получай новый заранее, например раз в час."],"code":"import time, jwt, requests  # pip install pyjwt cryptography requests\n\nkey = {\"service_account_id\": \"<id сервисного аккаунта>\", \"id\": \"<id ключа>\", \"private_key\": open(\"private.pem\").read()}\nnow = int(time.time())\ntoken = jwt.encode({\"aud\": \"https://iam.api.cloud.yandex.net/iam/v1/tokens\", \"iss\": key[\"service_account_id\"],\n                    \"iat\": now, \"exp\": now + 3600},\n                   key[\"private_key\"], algorithm=\"PS256\", headers={\"kid\": key[\"id\"]})\niam = requests.post(\"https://iam.api.cloud.yandex.net/iam/v1/tokens\", json={\"jwt\": token}).json()[\"iamToken\"]","language":"python","methods":["POST /iam/v1/tokens"]},{"id":"nayti-katalog-i-posmotret-virtualnye","title":"Найти каталог и посмотреть виртуальные машины","summary":"Инвентаризация: какие ВМ есть в облаке, в каком они состоянии.","steps":["Получи облака: GET /resource-manager/v1/clouds на resource-manager.api.cloud.yandex.net.","Получи каталоги облака: GET /resource-manager/v1/folders с cloudId.","Получи ВМ каталога: GET /compute/v1/instances с folderId на compute.api.cloud.yandex.net. Листай страницы через pageSize и pageToken = nextPageToken из ответа.","Подробности по одной машине — GET /compute/v1/instances/{instanceId}; status показывает RUNNING, STOPPED и т. д."],"code":"H=\"Authorization: Bearer $IAM_TOKEN\"\ncurl -G https://resource-manager.api.cloud.yandex.net/resource-manager/v1/folders -H \"$H\" -d cloudId=<id облака>\ncurl -G https://compute.api.cloud.yandex.net/compute/v1/instances -H \"$H\" -d folderId=<id каталога> -d pageSize=100","language":"bash","methods":["GET /resource-manager/v1/clouds","GET /resource-manager/v1/folders","GET /compute/v1/instances","GET /compute/v1/instances/{instanceId}"]},{"id":"sozdat-virtualnuyu-mashinu-i-dozhdatsya","title":"Создать виртуальную машину и дождаться готовности","summary":"Поднять сервер из скрипта: для теста, CI или временной нагрузки.","steps":["Отправь запрос: POST /compute/v1/instances с folderId, zoneId (например, ru-central1-a), platformId, resourcesSpec (memory в байтах, cores, coreFraction), bootDiskSpec с образом и networkInterfaceSpecs с подсетью. Числа int64 передаются строками.","Ответ — объект Operation: создание идёт асинхронно. Сохрани его id.","Проверяй статус: GET /operations/{operationId} на operation.api.cloud.yandex.net. done = true — операция завершилась; если есть error — с ошибкой, иначе в response будет созданная ВМ.","Удалить машину — DELETE /compute/v1/instances/{instanceId}, тоже через операцию."],"code":"OP=$(curl -s -X POST https://compute.api.cloud.yandex.net/compute/v1/instances \\\n  -H \"Authorization: Bearer $IAM_TOKEN\" -H 'Content-Type: application/json' \\\n  -d '{\n        \"folderId\": \"<id каталога>\",\n        \"name\": \"test-vm\",\n        \"zoneId\": \"ru-central1-a\",\n        \"platformId\": \"standard-v3\",\n        \"resourcesSpec\": {\"memory\": \"2147483648\", \"cores\": \"2\", \"coreFraction\": \"20\"},\n        \"bootDiskSpec\": {\"diskSpec\": {\"size\": \"21474836480\", \"imageId\": \"<id образа>\"}},\n        \"networkInterfaceSpecs\": [{\"subnetId\": \"<id подсети>\", \"primaryV4AddressSpec\": {\"oneToOneNatSpec\": {\"ipVersion\": \"IPV4\"}}}],\n        \"metadata\": {\"user-data\": \"#cloud-config\\nusers:\\n  - name: admin\\n    sudo: ALL=(ALL) NOPASSWD:ALL\\n    ssh_authorized_keys:\\n      - ssh-ed25519 AAAA...\"}\n      }' | jq -r .id)\n\ncurl https://operation.api.cloud.yandex.net/operations/$OP -H \"Authorization: Bearer $IAM_TOKEN\"","language":"bash","methods":["POST /compute/v1/instances","DELETE /compute/v1/instances/{instanceId}","GET /operations/{operationId}"]},{"id":"vyklyuchat-mashiny-na-noch-i-vklyuchat","title":"Выключать машины на ночь и включать утром","summary":"Экономия на тестовых стендах: ВМ работают только в рабочее время.","steps":["По расписанию вечером вызывай POST /compute/v1/instances/{instanceId}:stop для каждой машины стенда, утром — POST /compute/v1/instances/{instanceId}:start.","Каждый вызов возвращает Operation — проверь итог через GET /operations/{operationId}.","Удобно помечать такие ВМ метками (labels, например env = test) и выбирать их фильтром в GET /compute/v1/instances.","Если сервис ответил 409 ABORTED (параллельная операция над той же машиной) или 503 — повтори через несколько секунд."],"code":"for ID in $(curl -s -G https://compute.api.cloud.yandex.net/compute/v1/instances -H \"Authorization: Bearer $IAM_TOKEN\" \\\n              -d folderId=<id каталога> | jq -r '.instances[] | select(.labels.env == \"test\") | .id'); do\n  curl -s -X POST \"https://compute.api.cloud.yandex.net/compute/v1/instances/$ID:stop\" -H \"Authorization: Bearer $IAM_TOKEN\"\ndone","language":"bash","methods":["GET /compute/v1/instances","POST /compute/v1/instances/{instanceId}:start","POST /compute/v1/instances/{instanceId}:stop","GET /operations/{operationId}"]}],"baseUrls":[{"label":"IAM","url":"https://iam.api.cloud.yandex.net"},{"label":"Resource Manager","url":"https://resource-manager.api.cloud.yandex.net"},{"label":"Compute Cloud","url":"https://compute.api.cloud.yandex.net"},{"label":"Операции","url":"https://operation.api.cloud.yandex.net"}],"auth":{"type":"bearer","description":"Все запросы, кроме получения токена, передают IAM-токен в заголовке:\n\nIAM-токен получают методом `POST /iam/v1/tokens` в обмен на OAuth-токен аккаунта на Яндексе или JWT сервисного аккаунта.","example":"Authorization: Bearer <IAM-токен>"},"methods":[{"id":"POST /iam/v1/tokens","title":"Получение IAM-токена","httpMethod":"POST","path":"/iam/v1/tokens","description":"Хост `iam.api.cloud.yandex.net`. Передаётся ровно одно из полей.","params":[{"name":"yandexPassportOauthToken","in":"body","type":"string","required":false,"description":"OAuth-токен аккаунта на Яндексе, до 4000 символов"},{"name":"jwt","in":"body","type":"string","required":false,"description":"JWT сервисного аккаунта, до 8000 символов"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"GET /resource-manager/v1/clouds","title":"Список облаков","httpMethod":"GET","path":"/resource-manager/v1/clouds","description":"","params":[{"name":"pageSize","in":"query","type":"string","required":false,"description":"Размер страницы; при большем числе результатов возвращается nextPageToken"},{"name":"pageToken","in":"query","type":"string","required":false,"description":"Токен следующей страницы"},{"name":"filter","in":"query","type":"string","required":false,"description":"Фильтр по полю"},{"name":"organizationId","in":"query","type":"string","required":false,"description":"ID организации"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"GET /resource-manager/v1/folders","title":"Список каталогов в облаке","httpMethod":"GET","path":"/resource-manager/v1/folders","description":"","params":[{"name":"cloudId","in":"query","type":"string","required":true,"description":"ID облака"},{"name":"pageSize","in":"query","type":"string","required":false,"description":"Размер страницы"},{"name":"pageToken","in":"query","type":"string","required":false,"description":"Токен следующей страницы"},{"name":"filter","in":"query","type":"string","required":false,"description":"Фильтр по полю"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"GET /compute/v1/instances","title":"Список виртуальных машин","httpMethod":"GET","path":"/compute/v1/instances","description":"","params":[{"name":"folderId","in":"query","type":"string","required":true,"description":"ID каталога"},{"name":"pageSize","in":"query","type":"string","required":false,"description":"Размер страницы"},{"name":"pageToken","in":"query","type":"string","required":false,"description":"Токен следующей страницы"},{"name":"filter","in":"query","type":"string","required":false,"description":"Фильтр: условия, объединённые AND"},{"name":"orderBy","in":"query","type":"string","required":false,"description":"Сортировка, например createdAt desc; по умолчанию id asc"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"GET /compute/v1/instances/{instanceId}","title":"Информация о виртуальной машине","httpMethod":"GET","path":"/compute/v1/instances/{instanceId}","description":"","params":[{"name":"instanceId","in":"path","type":"string","required":true,"description":"ID виртуальной машины"},{"name":"view","in":"query","type":"string","required":false,"description":"BASIC — без метаданных, или полный вид"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /compute/v1/instances","title":"Создание виртуальной машины","httpMethod":"POST","path":"/compute/v1/instances","description":"Асинхронная операция; её можно отменить, пока она выполняется.","params":[{"name":"folderId","in":"body","type":"string","required":true,"description":"ID каталога"},{"name":"zoneId","in":"body","type":"string","required":true,"description":"Зона доступности"},{"name":"platformId","in":"body","type":"string","required":true,"description":"Аппаратная платформа"},{"name":"resourcesSpec.memory","in":"body","type":"string","required":true,"description":"Объём памяти в байтах"},{"name":"resourcesSpec.cores","in":"body","type":"string","required":true,"description":"Число ядер"},{"name":"resourcesSpec.coreFraction","in":"body","type":"string","required":false,"description":"Гарантированная доля vCPU: 0, 5, 20, 50, 100"},{"name":"resourcesSpec.gpus","in":"body","type":"string","required":false,"description":"Число GPU: 0, 1, 2, 4"},{"name":"bootDiskSpec","in":"body","type":"object","required":true,"description":"Загрузочный диск: diskSpec (size, imageId, typeId) или diskId"},{"name":"networkInterfaceSpecs","in":"body","type":"array","required":true,"description":"Сетевые интерфейсы"},{"name":"name","in":"body","type":"string","required":false,"description":"Имя ВМ"},{"name":"description","in":"body","type":"string","required":false,"description":"Описание, до 256 символов"},{"name":"labels","in":"body","type":"object","required":false,"description":"Метки ключ:значение"},{"name":"metadata","in":"body","type":"object","required":false,"description":"Метаданные (в том числе пользовательские ключи)"},{"name":"secondaryDiskSpecs","in":"body","type":"array","required":false,"description":"Дополнительные диски, до 3"},{"name":"hostname","in":"body","type":"string","required":false,"description":"Имя хоста"},{"name":"schedulingPolicy","in":"body","type":"object","required":false,"description":"Политика планирования"},{"name":"serviceAccountId","in":"body","type":"string","required":false,"description":"Сервисный аккаунт для аутентификации изнутри ВМ"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /compute/v1/instances/{instanceId}:start","title":"Запуск виртуальной машины","httpMethod":"POST","path":"/compute/v1/instances/{instanceId}:start","description":"","params":[{"name":"instanceId","in":"path","type":"string","required":true,"description":"ID виртуальной машины"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /compute/v1/instances/{instanceId}:stop","title":"Остановка виртуальной машины","httpMethod":"POST","path":"/compute/v1/instances/{instanceId}:stop","description":"","params":[{"name":"instanceId","in":"path","type":"string","required":true,"description":"ID виртуальной машины"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /compute/v1/instances/{instanceId}:restart","title":"Перезапуск виртуальной машины","httpMethod":"POST","path":"/compute/v1/instances/{instanceId}:restart","description":"","params":[{"name":"instanceId","in":"path","type":"string","required":true,"description":"ID виртуальной машины"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"DELETE /compute/v1/instances/{instanceId}","title":"Удаление виртуальной машины","httpMethod":"DELETE","path":"/compute/v1/instances/{instanceId}","description":"","params":[{"name":"instanceId","in":"path","type":"string","required":true,"description":"ID виртуальной машины"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"GET /operations/{operationId}","title":"Статус операции","httpMethod":"GET","path":"/operations/{operationId}","description":"Хост `operation.api.cloud.yandex.net`.","params":[{"name":"operationId","in":"path","type":"string","required":true,"description":"ID операции"}],"requestExample":"GET https://operation.api.cloud.yandex.net/operations/fcmq0j5033e516c56ctq","responseExample":"","docsUrl":""}],"codeExamples":[],"errors":[{"code":"400","description":"INVALID_ARGUMENT, FAILED_PRECONDITION или OUT_OF_RANGE — некорректные параметры или не выполнены условия операции"},{"code":"401","description":"UNAUTHENTICATED — нужна аутентификация"},{"code":"403","description":"PERMISSION_DENIED — недостаточно полномочий"},{"code":"404","description":"NOT_FOUND — ресурс не найден"},{"code":"409","description":"ALREADY_EXISTS или ABORTED — ресурс уже существует или конфликт параллельных операций"},{"code":"429","description":"RESOURCE_EXHAUSTED — превышен лимит запросов"},{"code":"499","description":"CANCELLED — операция прервана клиентом"},{"code":"500","description":"UNKNOWN, INTERNAL или DATA_LOSS — ошибка сервера"},{"code":"501","description":"NOT_IMPLEMENTED — операция не поддерживается"},{"code":"503","description":"UNAVAILABLE — сервис недоступен, повторите через несколько секунд"},{"code":"504","description":"DEADLINE_EXCEEDED — превышено время ожидания"}],"limits":"","gotchas":["Каждая операция, изменяющая ресурс, возвращает объект Operation: `id`, `created_at`, `created_by`, `modified_at`, `done`, `metadata` и одно из полей `response`/`error`. Отслеживайте статус по `id`.","`done: true` означает завершение операции, в том числе с ошибкой. Поле `error` может появиться раньше — пока сервис откатывает изменения.","Для `Create`/`Update` поле `response` содержит созданный или изменённый ресурс.","Числа int64 (`pageSize`, `memory`, `cores`) передаются строками.","Пагинация: `pageSize` и `pageToken`, следующая страница — по `nextPageToken` из ответа."],"slug":"yandex-cloud","version":2,"updatedAt":"2026-10-24T17:05:39.784Z","sources":[{"title":"Принципы API Yandex Cloud","url":"https://yandex.cloud/ru/docs/api-design-guide/","kind":"research","addedAt":"2026-10-14T14:54:26.298Z"},{"title":"Обработка ошибок","url":"https://yandex.cloud/ru/docs/api-design-guide/concepts/errors","kind":"research","addedAt":"2026-10-14T14:54:26.298Z"},{"title":"Объект Operation","url":"https://yandex.cloud/ru/docs/api-design-guide/concepts/operation","kind":"research","addedAt":"2026-10-14T14:54:26.298Z"},{"title":"IamToken.Create","url":"https://yandex.cloud/ru/docs/iam/api-ref/IamToken/create","kind":"research","addedAt":"2026-10-14T14:54:26.298Z"},{"title":"Cloud.List","url":"https://yandex.cloud/ru/docs/resource-manager/api-ref/Cloud/list","kind":"research","addedAt":"2026-10-14T14:54:26.298Z"},{"title":"Folder.List","url":"https://yandex.cloud/ru/docs/resource-manager/api-ref/Folder/list","kind":"research","addedAt":"2026-10-14T14:54:26.298Z"},{"title":"Compute Instance API","url":"https://yandex.cloud/ru/docs/compute/api-ref/Instance/","kind":"research","addedAt":"2026-10-14T14:54:26.298Z"},{"title":"Документация Yandex Cloud на GitHub","url":"https://github.com/yandex-cloud/docs","kind":"research","addedAt":"2026-10-14T14:54:26.298Z"},{"title":"Вставленный текст","url":"","kind":"import","addedAt":"2026-10-14T14:54:26.298Z"},{"title":"scenarios-yandex-cloud.md","url":"","kind":"import","addedAt":"2026-10-24T17:05:29.324Z"}],"logoUrl":null}