{"openapi":"3.1.0","info":{"title":"VK Music API","description":"\nAPI к музыке VK: поиск, треки, плейлисты, профили, стены и аудио-стрим.\n\n## Быстрый старт\n\n```bash\ncurl -H \"Authorization: Bearer vkm_ВАШ_КЛЮЧ\" \\\n  \"https://api.example.com/v1/tracks/search?q=дяхан+гуф&count=5\"\n```\n\nКлюч выдаёт администратор и показывает один раз. Передавайте его в заголовке `Authorization: Bearer ...`\nили `X-API-Key: ...`.\n\n## Оплата\n\n| Режим | Что происходит |\n|---|---|\n| `free` | Запросы бесплатны, действуют только лимиты |\n| `prepaid` | За каждый успешный запрос списываются кредиты. Цены: `GET /v1/me` |\n\nКредиты списываются при старте запроса и возвращаются, если ответ был ошибкой (4xx или 5xx).\nЕсли баланса не хватает, вернётся `402 insufficient_credits`.\n\n## Лимиты и заголовки ответа\n\n| Заголовок | Значение |\n|---|---|\n| `X-Request-ID` | ID запроса, укажите его при обращении в поддержку |\n| `X-RateLimit-Limit` / `X-RateLimit-Remaining` | Лимит запросов в минуту и остаток |\n| `X-Credits-Charged` / `X-Credits-Balance` | Списано за запрос и остаток кредитов |\n| `X-Cache` | `HIT`, если ответ взят из кэша |\n| `Retry-After` | Сколько секунд ждать после `429` |\n\n## Ошибки\n\nВсе ошибки приходят в одном формате:\n\n```json\n{\"error\": {\"code\": \"rate_limited\", \"message\": \"...\", \"details\": {}, \"request_id\": \"9f1c2ab34de5f678\"}}\n```\n\n## Права ключа\n\n`search`, `tracks`, `playlists`, `profiles`, `stream`, `raw`. Раздел `raw` (произвольные методы VK) выдаётся отдельно.\n\n## Метрики\n\n`GET /v1/me/usage` — ваши запросы, ошибки, попадания в кэш, трафик, потраченные кредиты и задержки (p50, p95, p99).\n`GET /v1/me/requests` — журнал последних запросов.\n","version":"1.0.0"},"servers":[{"url":"https://vkapi.rubeas.ru"}],"paths":{"/v1/tracks/search":{"get":{"tags":["Треки"],"summary":"Поиск треков","description":"Поиск по названию и исполнителю (`audio.search`). Если по запросу ничего не нашлось, он исправляется Яндекс.Спеллером и поиск повторяется (исправленный текст в `corrected_query`; отключается `autocorrect=false`). Результаты кэшируются на 10 минут.","operationId":"search_tracks_v1_tracks_search_get","security":[{"HTTPBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":200,"description":"Поисковый запрос","examples":["дяхан гуф"],"title":"Q"},"description":"Поисковый запрос"},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Сколько элементов вернуть","default":20,"title":"Count"},"description":"Сколько элементов вернуть"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":0,"description":"Смещение от начала выдачи","default":0,"title":"Offset"},"description":"Смещение от начала выдачи"},{"name":"autocorrect","in":"query","required":false,"schema":{"type":"boolean","description":"Исправлять опечатки, если ничего не найдено","default":true,"title":"Autocorrect"},"description":"Исправлять опечатки, если ничего не найдено"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchPage_TrackOut_"}}}},"401":{"description":"Ключ не передан, неверен, отозван или истёк","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"403":{"description":"Клиент отключён, у ключа нет нужного раздела (scope) или профиль закрыт (`content_private`)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"429":{"description":"Превышен лимит запросов или суточная квота","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"422":{"description":"Некорректные параметры","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"502":{"description":"VK или источник аудио вернул ошибку","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"503":{"description":"Нет доступных VK-аккаунтов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}}}}},"/v1/tracks/popular":{"get":{"tags":["Треки"],"summary":"Популярные треки","description":"Чарт VK (`audio.getPopular`). Часть треков приходит без ссылки на аудио.","operationId":"popular_tracks_v1_tracks_popular_get","security":[{"HTTPBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Сколько элементов вернуть","default":50,"title":"Count"},"description":"Сколько элементов вернуть"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_TrackOut_"}}}},"401":{"description":"Ключ не передан, неверен, отозван или истёк","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"403":{"description":"Клиент отключён, у ключа нет нужного раздела (scope) или профиль закрыт (`content_private`)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"429":{"description":"Превышен лимит запросов или суточная квота","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"502":{"description":"VK или источник аудио вернул ошибку","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"503":{"description":"Нет доступных VK-аккаунтов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tracks/{owner_id}/{track_id}":{"get":{"tags":["Треки"],"summary":"Трек по идентификатору","description":"Возвращает трек со ссылкой на аудио (`audio.getById`). Для приватных треков передайте `access_key`.","operationId":"get_track_v1_tracks__owner_id___track_id__get","security":[{"HTTPBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"owner_id","in":"path","required":true,"schema":{"type":"integer","title":"Owner Id"}},{"name":"track_id","in":"path","required":true,"schema":{"type":"integer","title":"Track Id"}},{"name":"access_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Ключ доступа из ссылки на приватный объект","title":"Access Key"},"description":"Ключ доступа из ссылки на приватный объект"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackOut"}}}},"401":{"description":"Ключ не передан, неверен, отозван или истёк","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"403":{"description":"Клиент отключён, у ключа нет нужного раздела (scope) или профиль закрыт (`content_private`)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"429":{"description":"Превышен лимит запросов или суточная квота","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"404":{"description":"Объект не найден","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"502":{"description":"VK или источник аудио вернул ошибку","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"503":{"description":"Нет доступных VK-аккаунтов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/links/resolve":{"get":{"tags":["Ссылки"],"summary":"Разобрать ссылку VK","description":"Принимает ссылку на трек (`vk.com/audio…`), плейлист или альбом (`vk.com/music/playlist/…`), запись стены (`vk.com/wall-1_2`), подкасты (`vk.com/podcasts-1`) или профиль (`vk.com/id…`, `club…`, короткое имя `vk.com/durov`). Для треков, плейлистов и записей сразу возвращает содержимое.","operationId":"resolve_link_v1_links_resolve_get","security":[{"HTTPBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","minLength":8,"maxLength":500,"examples":["https://vk.ru/audio-2001943454_155943454"],"title":"Url"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkOut"}}}},"401":{"description":"Ключ не передан, неверен, отозван или истёк","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"403":{"description":"Клиент отключён, у ключа нет нужного раздела (scope) или профиль закрыт (`content_private`)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"429":{"description":"Превышен лимит запросов или суточная квота","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"404":{"description":"Объект не найден","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"422":{"description":"Некорректные параметры","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"502":{"description":"VK или источник аудио вернул ошибку","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"503":{"description":"Нет доступных VK-аккаунтов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}}}}},"/v1/playlists/search":{"get":{"tags":["Плейлисты"],"summary":"Поиск плейлистов и альбомов","description":"`audio.searchPlaylists`. Опечатки исправляются так же, как в поиске треков.","operationId":"search_playlists_v1_playlists_search_get","security":[{"HTTPBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":200,"examples":["летний вайб"],"title":"Q"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Сколько элементов вернуть","default":20,"title":"Count"},"description":"Сколько элементов вернуть"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":0,"description":"Смещение от начала выдачи","default":0,"title":"Offset"},"description":"Смещение от начала выдачи"},{"name":"autocorrect","in":"query","required":false,"schema":{"type":"boolean","description":"Исправлять опечатки, если ничего не найдено","default":true,"title":"Autocorrect"},"description":"Исправлять опечатки, если ничего не найдено"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchPage_PlaylistOut_"}}}},"401":{"description":"Ключ не передан, неверен, отозван или истёк","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"403":{"description":"Клиент отключён, у ключа нет нужного раздела (scope) или профиль закрыт (`content_private`)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"429":{"description":"Превышен лимит запросов или суточная квота","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"422":{"description":"Некорректные параметры","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"502":{"description":"VK или источник аудио вернул ошибку","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"503":{"description":"Нет доступных VK-аккаунтов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}}}}},"/v1/playlists/{owner_id}/{playlist_id}":{"get":{"tags":["Плейлисты"],"summary":"Плейлист с треками","description":"Метаданные плейлиста и его треки одним запросом (`execute.getPlaylist`).","operationId":"get_playlist_v1_playlists__owner_id___playlist_id__get","security":[{"HTTPBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"owner_id","in":"path","required":true,"schema":{"type":"integer","title":"Owner Id"}},{"name":"playlist_id","in":"path","required":true,"schema":{"type":"integer","title":"Playlist Id"}},{"name":"access_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Ключ доступа из ссылки на приватный объект","title":"Access Key"},"description":"Ключ доступа из ссылки на приватный объект"},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Сколько элементов вернуть","default":100,"title":"Count"},"description":"Сколько элементов вернуть"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":0,"description":"Смещение от начала выдачи","default":0,"title":"Offset"},"description":"Смещение от начала выдачи"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaylistWithTracks"}}}},"401":{"description":"Ключ не передан, неверен, отозван или истёк","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"403":{"description":"Клиент отключён, у ключа нет нужного раздела (scope) или профиль закрыт (`content_private`)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"429":{"description":"Превышен лимит запросов или суточная квота","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"404":{"description":"Объект не найден","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"502":{"description":"VK или источник аудио вернул ошибку","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"503":{"description":"Нет доступных VK-аккаунтов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/profiles/resolve":{"get":{"tags":["Профили и сообщества"],"summary":"Короткое имя в идентификатор","description":"`utils.resolveScreenName`: `durov` или `public12345` в `owner_id`. Если имя не найдено, `404`.","operationId":"resolve_profile_v1_profiles_resolve_get","security":[{"HTTPBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"screen_name","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[A-Za-z0-9_.]+$","examples":["durov"],"title":"Screen Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolvedOut"}}}},"401":{"description":"Ключ не передан, неверен, отозван или истёк","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"403":{"description":"Клиент отключён, у ключа нет нужного раздела (scope) или профиль закрыт (`content_private`)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"429":{"description":"Превышен лимит запросов или суточная квота","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"404":{"description":"Объект не найден","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"502":{"description":"VK или источник аудио вернул ошибку","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"503":{"description":"Нет доступных VK-аккаунтов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/profiles/{owner_id}/tracks":{"get":{"tags":["Профили и сообщества"],"summary":"Аудиозаписи пользователя или сообщества","description":"`owner_id` пользователя положительный, сообщества — отрицательный (`audio.get`). Закрытый профиль даёт `403 content_private`.","operationId":"profile_tracks_v1_profiles__owner_id__tracks_get","security":[{"HTTPBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"owner_id","in":"path","required":true,"schema":{"type":"integer","title":"Owner Id"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Сколько элементов вернуть","default":20,"title":"Count"},"description":"Сколько элементов вернуть"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":0,"description":"Смещение от начала выдачи","default":0,"title":"Offset"},"description":"Смещение от начала выдачи"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_TrackOut_"}}}},"401":{"description":"Ключ не передан, неверен, отозван или истёк","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"403":{"description":"Клиент отключён, у ключа нет нужного раздела (scope) или профиль закрыт (`content_private`)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"429":{"description":"Превышен лимит запросов или суточная квота","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"502":{"description":"VK или источник аудио вернул ошибку","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"503":{"description":"Нет доступных VK-аккаунтов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/profiles/{owner_id}/playlists":{"get":{"tags":["Профили и сообщества"],"summary":"Плейлисты пользователя или сообщества","description":"`audio.getPlaylists`, постранично.","operationId":"profile_playlists_v1_profiles__owner_id__playlists_get","security":[{"HTTPBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"owner_id","in":"path","required":true,"schema":{"type":"integer","title":"Owner Id"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Сколько элементов вернуть","default":50,"title":"Count"},"description":"Сколько элементов вернуть"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":0,"description":"Смещение от начала выдачи","default":0,"title":"Offset"},"description":"Смещение от начала выдачи"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_PlaylistOut_"}}}},"401":{"description":"Ключ не передан, неверен, отозван или истёк","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"403":{"description":"Клиент отключён, у ключа нет нужного раздела (scope) или профиль закрыт (`content_private`)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"429":{"description":"Превышен лимит запросов или суточная квота","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"502":{"description":"VK или источник аудио вернул ошибку","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"503":{"description":"Нет доступных VK-аккаунтов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/profiles/{owner_id}/podcasts":{"get":{"tags":["Профили и сообщества"],"summary":"Подкасты пользователя или сообщества","description":"Выпуски подкастов (`podcasts.getEpisodes`).","operationId":"profile_podcasts_v1_profiles__owner_id__podcasts_get","security":[{"HTTPBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"owner_id","in":"path","required":true,"schema":{"type":"integer","title":"Owner Id"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Сколько элементов вернуть","default":20,"title":"Count"},"description":"Сколько элементов вернуть"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":0,"description":"Смещение от начала выдачи","default":0,"title":"Offset"},"description":"Смещение от начала выдачи"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_TrackOut_"}}}},"401":{"description":"Ключ не передан, неверен, отозван или истёк","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"403":{"description":"Клиент отключён, у ключа нет нужного раздела (scope) или профиль закрыт (`content_private`)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"429":{"description":"Превышен лимит запросов или суточная квота","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"502":{"description":"VK или источник аудио вернул ошибку","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"503":{"description":"Нет доступных VK-аккаунтов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/profiles/{owner_id}/wall":{"get":{"tags":["Профили и сообщества"],"summary":"Аудио со стены","description":"Просматривает до 100 записей стены (`wall.get`) начиная с `offset` и собирает вложения: аудио, плейлисты и подкасты, включая вложения репостов. `total` — число записей на стене, `counts` — сколько вложений каждого типа найдено.","operationId":"profile_wall_v1_profiles__owner_id__wall_get","security":[{"HTTPBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"owner_id","in":"path","required":true,"schema":{"type":"integer","title":"Owner Id"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Сколько записей стены просмотреть","default":100,"title":"Count"},"description":"Сколько записей стены просмотреть"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":0,"description":"Смещение от начала выдачи","default":0,"title":"Offset"},"description":"Смещение от начала выдачи"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WallOut"}}}},"401":{"description":"Ключ не передан, неверен, отозван или истёк","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"403":{"description":"Клиент отключён, у ключа нет нужного раздела (scope) или профиль закрыт (`content_private`)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"429":{"description":"Превышен лимит запросов или суточная квота","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"502":{"description":"VK или источник аудио вернул ошибку","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"503":{"description":"Нет доступных VK-аккаунтов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/wall/{owner_id}/{post_id}":{"get":{"tags":["Профили и сообщества"],"summary":"Аудио из одной записи стены","description":"Вложения одной записи (`wall.getById`): аудио, плейлисты, подкасты и вложения репоста.","operationId":"wall_post_v1_wall__owner_id___post_id__get","security":[{"HTTPBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"owner_id","in":"path","required":true,"schema":{"type":"integer","title":"Owner Id"}},{"name":"post_id","in":"path","required":true,"schema":{"type":"integer","title":"Post Id"}},{"name":"access_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Ключ доступа из ссылки на приватный объект","title":"Access Key"},"description":"Ключ доступа из ссылки на приватный объект"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_WallItemOut_"}}}},"401":{"description":"Ключ не передан, неверен, отозван или истёк","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"403":{"description":"Клиент отключён, у ключа нет нужного раздела (scope) или профиль закрыт (`content_private`)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"429":{"description":"Превышен лимит запросов или суточная квота","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"404":{"description":"Объект не найден","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"502":{"description":"VK или источник аудио вернул ошибку","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"503":{"description":"Нет доступных VK-аккаунтов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tracks/{owner_id}/{track_id}/stream":{"get":{"tags":["Аудио"],"summary":"Ссылка на аудио","description":"Прямая ссылка VK на аудио. Ссылки VK привязаны к IP получателя и быстро устаревают, поэтому для надёжного получения файла используйте `/download`.","operationId":"stream_link_v1_tracks__owner_id___track_id__stream_get","security":[{"HTTPBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"owner_id","in":"path","required":true,"schema":{"type":"integer","title":"Owner Id"}},{"name":"track_id","in":"path","required":true,"schema":{"type":"integer","title":"Track Id"}},{"name":"access_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Ключ доступа из ссылки на приватный объект","title":"Access Key"},"description":"Ключ доступа из ссылки на приватный объект"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StreamLinkOut"}}}},"401":{"description":"Ключ не передан, неверен, отозван или истёк","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"403":{"description":"Клиент отключён, у ключа нет нужного раздела (scope) или профиль закрыт (`content_private`)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"429":{"description":"Превышен лимит запросов или суточная квота","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"404":{"description":"Объект не найден","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"451":{"description":"VK не отдаёт этот трек","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"502":{"description":"VK или источник аудио вернул ошибку","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"503":{"description":"Нет доступных VK-аккаунтов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tracks/{owner_id}/{track_id}/download":{"get":{"tags":["Аудио"],"summary":"Скачать mp3","description":"Готовый mp3-файл. HLS-потоки VK собираются в mp3 на сервере. Поддерживается `Range`. Заголовок `X-Cache: HIT` значит, что файл взят из кэша сервера.","operationId":"download_v1_tracks__owner_id___track_id__download_get","security":[{"HTTPBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"owner_id","in":"path","required":true,"schema":{"type":"integer","title":"Owner Id"}},{"name":"track_id","in":"path","required":true,"schema":{"type":"integer","title":"Track Id"}},{"name":"access_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Ключ доступа из ссылки на приватный объект","title":"Access Key"},"description":"Ключ доступа из ссылки на приватный объект"},{"name":"range","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Файл mp3","content":{"audio/mpeg":{}}},"206":{"content":{"audio/mpeg":{}},"description":"Часть файла (Range)"},"401":{"description":"Ключ не передан, неверен, отозван или истёк","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"403":{"description":"Клиент отключён, у ключа нет нужного раздела (scope) или профиль закрыт (`content_private`)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"429":{"description":"Превышен лимит запросов или суточная квота","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"404":{"description":"Объект не найден","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"451":{"description":"VK не отдаёт этот трек","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"502":{"description":"VK или источник аудио вернул ошибку","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"503":{"description":"Нет доступных VK-аккаунтов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/vk/call":{"post":{"tags":["Прямые вызовы VK"],"summary":"Произвольный метод VK API","description":"Выполняет метод VK от имени нашего пула аккаунтов с подписью Android-приложения. Доступны только методы чтения (`audio.*`, `wall.get`, `users.get`, `groups.getById`, `catalog.*` и др.); методы записи запрещены.","operationId":"vk_call_v1_vk_call_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VkCallIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VkCallOut"}}}},"401":{"description":"Ключ не передан, неверен, отозван или истёк","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"403":{"description":"Клиент отключён, у ключа нет нужного раздела (scope) или профиль закрыт (`content_private`)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"429":{"description":"Превышен лимит запросов или суточная квота","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"422":{"description":"Некорректные параметры","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"502":{"description":"VK или источник аудио вернул ошибку","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"503":{"description":"Нет доступных VK-аккаунтов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}}},"security":[{"HTTPBearer":[]},{"APIKeyHeader":[]}]}},"/v1/me":{"get":{"tags":["Аккаунт клиента"],"summary":"Мои лимиты, баланс и цены","operationId":"me_v1_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeOut"}}}},"401":{"description":"Ключ не передан, неверен, отозван или истёк","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"403":{"description":"Клиент отключён, у ключа нет нужного раздела (scope) или профиль закрыт (`content_private`)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"429":{"description":"Превышен лимит запросов или суточная квота","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}}},"security":[{"HTTPBearer":[]},{"APIKeyHeader":[]}]}},"/v1/me/usage":{"get":{"tags":["Аккаунт клиента"],"summary":"Метрики моего использования","description":"Запросы, ошибки, доля попаданий в кэш, трафик, потраченные кредиты и задержки (среднее, p50, p95, p99) по времени и по методам.","operationId":"my_usage_v1_me_usage_get","security":[{"HTTPBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"default":7,"title":"Days"}},{"name":"granularity","in":"query","required":false,"schema":{"enum":["hour","day"],"type":"string","default":"day","title":"Granularity"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Ключ не передан, неверен, отозван или истёк","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"403":{"description":"Клиент отключён, у ключа нет нужного раздела (scope) или профиль закрыт (`content_private`)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"429":{"description":"Превышен лимит запросов или суточная квота","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/requests":{"get":{"tags":["Аккаунт клиента"],"summary":"Журнал моих запросов","operationId":"my_requests_v1_me_requests_get","security":[{"HTTPBearer":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"only_errors","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Only Errors"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RequestLogOut"},"title":"Response My Requests V1 Me Requests Get"}}}},"401":{"description":"Ключ не передан, неверен, отозван или истёк","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"403":{"description":"Клиент отключён, у ключа нет нужного раздела (scope) или профиль закрыт (`content_private`)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"429":{"description":"Превышен лимит запросов или суточная квота","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"ErrorBody":{"properties":{"code":{"type":"string","title":"Code","description":"Машиночитаемый код ошибки"},"message":{"type":"string","title":"Message"},"details":{"additionalProperties":true,"type":"object","title":"Details"},"request_id":{"type":"string","title":"Request Id"}},"type":"object","required":["code","message","request_id"],"title":"ErrorBody"},"ErrorOut":{"properties":{"error":{"$ref":"#/components/schemas/ErrorBody"}},"type":"object","required":["error"],"title":"ErrorOut"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LinkOut":{"properties":{"type":{"type":"string","enum":["track","playlist","wall","podcasts","user"],"title":"Type"},"owner_id":{"type":"integer","title":"Owner Id"},"item_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Item Id"},"access_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Key"},"track":{"anyOf":[{"$ref":"#/components/schemas/TrackOut"},{"type":"null"}]},"playlist":{"anyOf":[{"$ref":"#/components/schemas/PlaylistWithTracks"},{"type":"null"}]},"wall":{"anyOf":[{"$ref":"#/components/schemas/Page_WallItemOut_"},{"type":"null"}]}},"type":"object","required":["type","owner_id"],"title":"LinkOut"},"MeOut":{"properties":{"client_id":{"type":"integer","title":"Client Id"},"name":{"type":"string","title":"Name"},"billing_mode":{"type":"string","enum":["free","prepaid"],"title":"Billing Mode","description":"`prepaid` — списание кредитов за каждый успешный запрос"},"balance":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Balance","description":"Остаток кредитов (только для prepaid)"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"},"rate_limit_per_minute":{"type":"integer","title":"Rate Limit Per Minute"},"daily_quota":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Daily Quota"},"used_today":{"type":"integer","title":"Used Today"},"prices":{"items":{"$ref":"#/components/schemas/PriceOut"},"type":"array","title":"Prices"}},"type":"object","required":["client_id","name","billing_mode","scopes","rate_limit_per_minute","daily_quota","used_today","prices"],"title":"MeOut"},"Page_PlaylistOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PlaylistOut"},"type":"array","title":"Items"},"count":{"type":"integer","title":"Count","description":"Число элементов в ответе"},"offset":{"type":"integer","title":"Offset","default":0},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"Всего у владельца, если VK сообщает"}},"type":"object","required":["items","count"],"title":"Page[PlaylistOut]"},"Page_TrackOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TrackOut"},"type":"array","title":"Items"},"count":{"type":"integer","title":"Count","description":"Число элементов в ответе"},"offset":{"type":"integer","title":"Offset","default":0},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"Всего у владельца, если VK сообщает"}},"type":"object","required":["items","count"],"title":"Page[TrackOut]"},"Page_WallItemOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WallItemOut"},"type":"array","title":"Items"},"count":{"type":"integer","title":"Count","description":"Число элементов в ответе"},"offset":{"type":"integer","title":"Offset","default":0},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"Всего у владельца, если VK сообщает"}},"type":"object","required":["items","count"],"title":"Page[WallItemOut]"},"PlaylistOut":{"properties":{"id":{"type":"string","title":"Id","description":"Идентификатор вида `owner_id_playlist_id`"},"playlist_id":{"type":"integer","title":"Playlist Id"},"owner_id":{"type":"integer","title":"Owner Id"},"title":{"type":"string","title":"Title"},"count":{"type":"integer","title":"Count","description":"Число треков"},"access_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Key"},"cover_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cover Url"}},"type":"object","required":["id","playlist_id","owner_id","title","count"],"title":"PlaylistOut"},"PlaylistWithTracks":{"properties":{"playlist":{"$ref":"#/components/schemas/PlaylistOut"},"tracks":{"$ref":"#/components/schemas/Page_TrackOut_"}},"type":"object","required":["playlist","tracks"],"title":"PlaylistWithTracks"},"PriceOut":{"properties":{"operation":{"type":"string","title":"Operation"},"summary":{"type":"string","title":"Summary"},"credits":{"type":"integer","title":"Credits"}},"type":"object","required":["operation","summary","credits"],"title":"PriceOut"},"RequestLogOut":{"properties":{"at":{"type":"string","title":"At"},"request_id":{"type":"string","title":"Request Id"},"operation":{"type":"string","title":"Operation"},"method":{"type":"string","title":"Method"},"path":{"type":"string","title":"Path"},"status":{"type":"integer","title":"Status"},"duration_ms":{"type":"integer","title":"Duration Ms"},"credits":{"type":"integer","title":"Credits"},"cache_hit":{"type":"boolean","title":"Cache Hit"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code"}},"type":"object","required":["at","request_id","operation","method","path","status","duration_ms","credits","cache_hit","error_code"],"title":"RequestLogOut"},"ResolvedOut":{"properties":{"type":{"type":"string","enum":["user","group"],"title":"Type"},"owner_id":{"type":"integer","title":"Owner Id","description":"Положительный для пользователя, отрицательный для сообщества"},"object_id":{"type":"integer","title":"Object Id"}},"type":"object","required":["type","owner_id","object_id"],"title":"ResolvedOut"},"SearchPage_PlaylistOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PlaylistOut"},"type":"array","title":"Items"},"count":{"type":"integer","title":"Count","description":"Число элементов в ответе"},"offset":{"type":"integer","title":"Offset","default":0},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"Всего у владельца, если VK сообщает"},"corrected_query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Corrected Query","description":"Исправленный запрос, если по исходному ничего не нашлось (Яндекс.Спеллер)"}},"type":"object","required":["items","count"],"title":"SearchPage[PlaylistOut]"},"SearchPage_TrackOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TrackOut"},"type":"array","title":"Items"},"count":{"type":"integer","title":"Count","description":"Число элементов в ответе"},"offset":{"type":"integer","title":"Offset","default":0},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"Всего у владельца, если VK сообщает"},"corrected_query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Corrected Query","description":"Исправленный запрос, если по исходному ничего не нашлось (Яндекс.Спеллер)"}},"type":"object","required":["items","count"],"title":"SearchPage[TrackOut]"},"StreamLinkOut":{"properties":{"url":{"type":"string","title":"Url"},"format":{"type":"string","title":"Format","description":"`mp3` — прямой файл, `hls` — поток m3u8 (скачивайте через /download)"},"duration":{"type":"integer","title":"Duration"}},"type":"object","required":["url","format","duration"],"title":"StreamLinkOut"},"TrackOut":{"properties":{"id":{"type":"string","title":"Id","description":"Идентификатор вида `owner_id_song_id`"},"song_id":{"type":"integer","title":"Song Id"},"owner_id":{"type":"integer","title":"Owner Id"},"title":{"type":"string","title":"Title"},"artist":{"type":"string","title":"Artist"},"duration":{"type":"integer","title":"Duration","description":"Длительность в секундах"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"Ссылка на аудио (mp3 или HLS). Пусто, если VK её не отдал"},"access_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Key"},"cover_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cover Url"},"content_restricted":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Content Restricted","description":"Код ограничения VK, если ссылки нет"},"is_hq":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Hq","description":"Высокое качество, если VK сообщает"}},"type":"object","required":["id","song_id","owner_id","title","artist","duration"],"title":"TrackOut","example":{"access_key":"7efc87ec886e16486b","artist":"Гуф, Молодой калуга","duration":184,"id":"-2001943454_155943454","is_hq":false,"owner_id":-2001943454,"song_id":155943454,"title":"ДЯХАН","url":"https://psv4.vkuseraudio.net/s/v1/amp2/.../index.m3u8"}},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VkCallIn":{"properties":{"method":{"type":"string","pattern":"^[A-Za-z0-9_]+\\.[A-Za-z0-9_]+$","title":"Method","examples":["audio.getRecommendations"]},"params":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"}]},"type":"object","title":"Params","examples":[{"count":10}]},"version":{"type":"string","pattern":"^\\d+\\.\\d+$","title":"Version","default":"5.81"}},"type":"object","required":["method"],"title":"VkCallIn"},"VkCallOut":{"properties":{"response":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{},"type":"array"}],"title":"Response"}},"type":"object","required":["response"],"title":"VkCallOut"},"WallCounts":{"properties":{"audio":{"type":"integer","title":"Audio"},"audio_playlist":{"type":"integer","title":"Audio Playlist"},"podcast":{"type":"integer","title":"Podcast"}},"type":"object","required":["audio","audio_playlist","podcast"],"title":"WallCounts"},"WallItemOut":{"properties":{"type":{"type":"string","enum":["audio","audio_playlist","podcast"],"title":"Type"},"post_id":{"type":"integer","title":"Post Id"},"track":{"anyOf":[{"$ref":"#/components/schemas/TrackOut"},{"type":"null"}]},"playlist":{"anyOf":[{"$ref":"#/components/schemas/PlaylistOut"},{"type":"null"}]}},"type":"object","required":["type","post_id"],"title":"WallItemOut"},"WallOut":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WallItemOut"},"type":"array","title":"Items"},"count":{"type":"integer","title":"Count","description":"Число элементов в ответе"},"offset":{"type":"integer","title":"Offset","default":0},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"Всего у владельца, если VK сообщает"},"counts":{"$ref":"#/components/schemas/WallCounts","description":"Сколько вложений каждого типа найдено на этой странице"}},"type":"object","required":["items","count","counts"],"title":"WallOut"}},"securitySchemes":{"HTTPBearer":{"type":"http","description":"Ключ клиента: `Authorization: Bearer vkm_…`","scheme":"bearer"},"APIKeyHeader":{"type":"apiKey","description":"Тот же ключ в заголовке `X-API-Key`","in":"header","name":"X-API-Key"}}},"tags":[{"name":"Треки","description":"Поиск, чарт и получение треков"},{"name":"Ссылки","description":"Разбор ссылок VK на треки, плейлисты и профили"},{"name":"Плейлисты","description":"Плейлисты и альбомы"},{"name":"Профили и сообщества","description":"Музыка, плейлисты и стена пользователей и сообществ"},{"name":"Аудио","description":"Ссылки на аудио и скачивание mp3"},{"name":"Прямые вызовы VK","description":"Методы VK без обёртки"},{"name":"Аккаунт клиента","description":"Баланс, цены, лимиты и метрики вашего клиента"}]}