FOR TESTING PURPOSES ONLY
Закрыть
Документация API для разработчиков

Введение

Этот документ описывает все доступные API-методы платформы Luna (OpenVK). С его помощью вы сможете написать своё мобильное приложение, десктопный клиент, бота или любой другой инструмент, взаимодействующий с нашей социальной сетью.

API полностью совместим с протоколом VK API (версия 4.100), что означает: если вы знакомы с разработкой под ВКонтакте — вы уже знаете, как работать с нашим API.

Базовый URL: https://luna.hamystudio.ru


1. Быстрый старт

1.1. Получение токена доступа (Access Token)

Для работы с API вам нужен токен. Чтобы его получить, отправьте POST-запрос на /token:

POST /token
Content-Type: application/x-www-form-urlencoded

grant_type=password&username=ваш_логин&password=ваш_пароль

Ответ (успех):

{
  "access_token": "1-abcdef01-23456789-abcdef01-23456789-abcdef01-23456789-abcdef01-23456789-abcdef01-23456789-abcdef01-jill",
  "expires_in": 0,
  "user_id": 1,
  "is_stale": false,
  "secret": "..."
}

Если включена двухфакторная аутентификация (2FA):

{
  "error": "need_validation",
  "error_description": "use app code",
  "validation_type": "2fa_app",
  "validation_sid": "2fa_1_...",
  "phone_mask": "+7 *** *** ** 42",
  "redirect_url": "..."
}

В этом случае нужно отправить код из приложения 2FA:

POST /token
grant_type=password&username=логин&password=пароль&code=123456&2fa_supported=1

1.2. Использование токена

Добавьте access_token как POST-параметр к любому запросу:

POST /method/users.get
access_token=ВАШ_ТОКЕН&fields=photo_200,status

Или используйте параметр auth_mechanism=roaming если вы авторизованы через браузер (сессионные куки).

1.3. Формат ответа

Успешный ответ:

{
  "response": { ... }
}

Ошибка:

{
  "error_code": 5,
  "error_msg": "User authorization failed: no access_token passed",
  "request_params": [
    {"key": "method", "value": "users.get"}
  ]
}

HTTP-статус при ошибке: 400 Bad API Call.


2. Пользователи (users.*)

users.get

Получение информации о пользователях.

Параметры: | Параметр | Тип | По умолчанию | Описание | |----------|-----|-------------|----------| | user_ids | string | "0" | ID пользователей через запятую | | fields | string | "" | Дополнительные поля (см. ниже) | | offset | int | 0 | Смещение | | count | int | 100 | Количество (макс. 100) |

Доступные поля (fields): verified, sex, has_photo, photo_max_orig, photo_max, photo_50, photo_100, photo_200, photo_200_orig, photo_400_orig, status, screen_name, friend_status, last_seen, music, movies, tv, books, city, interests, quotes, games, email, telegram, about, rating, counters, correct_counters, guid, background, reg_date, is_dead, nickname, blacklisted_by_me, blacklisted, custom_fields, bdate

Пример:

POST /method/users.get
user_ids=1,2&fields=photo_200,status,sex

users.getFollowers

Получение списка подписчиков пользователя. Требуется авторизация.

Параметры: user_id, fields, offset, count

users.search

Поиск пользователей. Требуется авторизация.

Параметры: | Параметр | Тип | Описание | |----------|-----|----------| | q | string | Поисковый запрос | | fields | string | Дополнительные поля | | offset, count | int | Пагинация | | city | string | Город | | hometown | string | Родной город | | sex | int | 0 — любой, 1 — жен, 2 — муж, 3 — не указано | | status | int | Семейное положение | | online | bool | Только онлайн | | sort | int | Сортировка | | polit_views | int | Политические взгляды | | fav_music, fav_films, fav_shows, fav_books, interests | string | Фильтры по интересам |

users.report

Пожаловаться на пользователя. Требуется авторизация.

Параметры: user_id, type (spam/insult/etc, по умолч. "spam"), comment


3. Аккаунт (account.*)

account.getProfileInfo

Получить данные своего профиля. Требуется авторизация.

Возвращает: объект с полями first_name, last_name, photo_200, nickname, id, is_verified, status, bdate, sex, screen_name, relation, home_town, audio_status.

account.saveProfileInfo

Сохранить изменения профиля. Требуется авторизация.

Параметры: first_name, last_name, screen_name, sex (-1 = не менять), relation (-1 = не менять), bdate, bdate_visibility, home_town, status, telegram

account.setOnline

Отметить пользователя как онлайн. Требуется авторизация.

account.setOffline

Отметить как оффлайн (заглушка). Требуется авторизация.

account.getCounters

Счётчики для колокольчика. Требуется авторизация.

Возвращает: {"friends": int, "notifications": int, "messages": int}

account.getBalance

Баланс голосов. Требуется авторизация.

Возвращает: {"votes": int}

account.getOvkSettings

Настройки платформы. Требуется авторизация.

Возвращает: {"avatar_style", "style", "show_rating", "nsfw_tolerance", "post_view", "main_page"}

account.sendVotes

Отправить голоса пользователю. Требуется авторизация.

Параметры: receiver (ID получателя), value (количество), message (сообщение)

account.ban / account.unban

Добавить/удалить из чёрного списка. Требуется авторизация.

Параметр: owner_id (ID пользователя)

account.getBanned

Список заблокированных пользователей. Требуется авторизация.

Параметры: offset, count, fields

account.saveInterestsInfo

Сохранить интересы и предпочтения. Требуется авторизация.

Параметры: interests, fav_music, fav_films, fav_shows, fav_books, fav_quote, fav_games, about


4. Сообщения (messages.*)

messages.send

Отправить личное сообщение. Требуется авторизация.

Параметры: | Параметр | Тип | Описание | |----------|-----|----------| | user_id | int | ID получателя | | peer_id | int | ID диалога | | domain | string | Экранное имя вместо user_id | | message | string | Текст сообщения | | attachment | string | Вложения (формат: type{ownerid}{id}) | | sticker_id | int | ID стикера |

Возвращает: ID сообщения (int)

messages.getHistory

Получить историю переписки. Требуется авторизация.

Параметры: user_id или peer_id, offset, count, rev (обратный порядок), extended (включить профили), fields

messages.getConversations

Список диалогов. Требуется авторизация.

Параметры: offset, count, filter (all/unread/important), extended, fields

messages.getById

Получить сообщения по ID. Требуется авторизация.

Параметры: message_ids (через запятую), preview_length, extended

messages.delete

Удалить сообщения. Требуется авторизация.

Параметры: message_ids (через запятую), spam, delete_for_all

messages.restore

Восстановить сообщение. Требуется авторизация.

Параметр: message_id

messages.edit

Редактировать сообщение. Требуется авторизация.

Параметры: message_id, message, attachment, peer_id

messages.getLongPollServer

Получить данные для LongPoll-соединения. Требуется авторизация.

Возвращает: {"key": string, "server": string, "ts": int, "pts": int}

messages.getLongPollHistory

Получить обновления через LongPoll. Требуется авторизация.

Параметры: ts (timestamp), preview_length, events_limit, msgs_limit


5. Друзья (friends.*)

friends.get

Список друзей пользователя. Требуется авторизация.

Параметры: user_id, fields, offset, count

friends.add

Добавить в друзья или отправить заявку. Требуется авторизация.

Параметр: user_id

Возвращает: 1 — заявка отправлена, 2 — взаимные друзья.

friends.delete

Удалить из друзей. Требуется авторизация.

friends.areFriends

Проверить статус дружбы с пользователями. Требуется авторизация.

Параметр: user_ids (через запятую)

Возвращает: массив {"friend_status": int, "user_id": int}

friends.getRequests

Заявки в друзья. Требуется авторизация.

Параметры: fields, out (0 — входящие, 1 — исходящие), offset, count, extended


6. Группы (groups.*)

groups.get

Список групп пользователя. Требуется авторизация.

Параметры: user_id, fields, offset, count, online, filter

groups.getById

Информация о группах по ID.

Параметры: group_ids (через запятую), group_id, fields, offset, count

groups.search

Поиск групп.

Параметры: q (запрос), offset, count, fields

groups.join / groups.leave

Вступить/покинуть группу. Требуется авторизация.

Параметр: group_id

groups.edit

Редактировать группу. Требуется авторизация.

Параметры: group_id, title, description, screen_name, website, wall, topics, adminlist, topicsAboveWall, hideFromGlobalFeed, audio

groups.getMembers

Участники группы. Требуется авторизация.

Параметры: group_id, offset, count, fields

groups.getSettings

Настройки группы. Требуется авторизация.

groups.isMember

Проверить членство в группе. Требуется авторизация.

Параметры: group_id, user_id, extended


7. Стена (wall.*)

wall.get

Посты на стене. Требуется авторизация.

Параметры: | Параметр | Тип | Описание | |----------|-----|----------| | owner_id | int | ID владельца (отрицательный = группа) | | domain | string | Экранное имя | | offset, count | int | Пагинация | | extended | int | 1 = вернуть профили и группы | | filter | string | all/owner/others | | rss | int | 1 = вернуть RSS-ленту |

wall.getById

Посты по ID. Требуется авторизация.

Параметр: posts (формат: "ownerId_postId" через запятую), extended, fields

wall.post

Создать пост на стене. Требуется авторизация.

Параметры: owner_id, message, copyright, from_group, signed, attachments, post_id (для редактирования), explicit, lat, long, place_name

wall.repost

Репост записи. Требуется авторизация.

Параметры: object (формат: wall{ownerId}_{postId}), message, attachments, group_id, as_group, signed

Возвращает: {"success": 1, "post_id": int, "pretty_id": int, "reposts_count": int, "likes_count": int}

wall.edit

Редактировать пост. Требуется авторизация.

Параметры: owner_id, post_id, message, attachments, copyright, signed, explicit, lat, long, place_name

wall.delete / wall.restore

Удалить/восстановить пост. Требуется авторизация.

Параметры: owner_id, post_id

wall.pin / wall.unpin

Закрепить/открепить пост. Требуется авторизация.

wall.getComments

Комментарии к посту. Требуется авторизация.

Параметры: owner_id, post_id, need_likes, offset, count, fields, sort (asc/desc), extended

wall.addComment

Добавить комментарий. Требуется авторизация.

Параметры: owner_id, post_id, message, attachments, from_group

wall.editComment / wall.deleteComment

Редактировать/удалить комментарий. Требуется авторизация.

wall.reportPost / wall.reportComment

Пожаловаться на пост/комментарий. Требуется авторизация.

wall.postAdsStealth

Создать скрытый (рекламный) пост. Требуется авторизация.


8. Фотографии (photos.*)

photos.getAlbums

Список альбомов. Требуется авторизация.

Параметры: owner_id, album_ids, offset, count, need_system, need_covers, photo_sizes

photos.get

Фотографии в альбоме. Требуется авторизация.

Параметры: owner_id, album_id, photo_ids, extended, photo_sizes, offset, count

photos.getAll

Все фотографии пользователя. Требуется авторизация.

Параметры: owner_id, extended, offset, count, photo_sizes

photos.getById

Фото по ID. Требуется авторизация.

Параметр: photos (формат: "{ownerId}_{photoId}" через запятую)

photos.createAlbum / photos.editAlbum / photos.deleteAlbum

Управление альбомами. Требуется авторизация.

photos.delete

Удалить фото. Требуется авторизация.

photos.edit

Редактировать описание фото. Требуется авторизация.

photos.getUploadServer / photos.save

Загрузка фотографий (двухэтапный процесс).

Шаг 1: Получить URL через photos.getUploadServerШаг 2: POST файл на URL → Шаг 3: photos.save с данными из ответа.

photos.createComment / photos.getComments

Комментарии к фото. Требуется авторизация.


9. Аудиозаписи (audio.*)

audio.get

Список аудиозаписей. Требуется авторизация.

Параметры: owner_id, album_id, audio_ids, need_user, offset, count, uploaded_only, shuffle, shuffle_seed, hash

audio.search

Поиск музыки. Требуется авторизация.

Параметры: q, auto_complete, lyrics, performer_only, sort, search_own, offset, count, hash

audio.getById

Аудиозаписи по ID. Требуется авторизация.

Параметр: audios (формат: "{ownerId}_{audioId}" через запятую)

audio.add / audio.delete

Добавить/удалить аудиозапись. Требуется авторизация.

audio.restore

Восстановить удалённую запись. Требуется авторизация.

audio.edit

Редактировать информацию о треке. Требуется авторизация.

audio.getLyrics

Текст песни. Требуется авторизация.

Параметр: lyrics_id

audio.getCount

Количество аудиозаписей. Требуется авторизация.

audio.getPopular / audio.getFeed

Популярные / Рекомендации. Требуется авторизация.

audio.beacon

Отметить прослушивание. Требуется авторизация.

audio.getAlbums / audio.searchAlbums

Управление альбомами музыки. Требуется авторизация.

audio.addAlbum / audio.editAlbum / audio.deleteAlbum

Создание/редактирование/удаление музыкальных альбомов.

audio.moveToAlbum / audio.removeFromAlbum / audio.copyToAlbum

Перемещение записей между альбомами.

audio.bookmarkAlbum / audio.unBookmarkAlbum

Закладки альбомов.

audio.setBroadcast

Установить музыку в статус. Требуется авторизация.

audio.getBroadcastList

Список друзей с музыкой в статусе. Требуется авторизация.


10. Видеозаписи (video.*)

video.get

Список видеозаписей. Требуется авторизация.

Параметры: owner_id, videos, fields, offset, count, extended

video.search

Поиск видео.

Параметры: q, sort, offset, count, extended, fields


11. Лайки (likes.*)

likes.add

Добавить лайк. Требуется авторизация.

Параметры: | Параметр | Тип | Описание | |----------|-----|----------| | type | string | post / comment / video / photo / note | | owner_id | int | ID владельца | | item_id | int | ID элемента |

likes.delete

Убрать лайк. Требуется авторизация.

likes.isLiked

Проверить, лайкнул ли пользователь. Требуется авторизация.

Параметры: user_id, type, owner_id, item_id

Возвращает: {"liked": int, "copied": int}

likes.getList

Список пользователей, лайкнувших элемент. Требуется авторизация.

Параметры: type, owner_id, item_id, extended, offset, count, skip_own


12. Заметки (notes.*)

notes.get / notes.getById

Получить заметки / конкретную заметку. Требуется авторизация.

notes.add

Создать заметку. Требуется авторизация.

Параметры: title, text

notes.edit

Редактировать заметку. Требуется авторизация.

Параметры: note_id, title, text, privacy, comment_privacy, privacy_view, privacy_comment

notes.getComments / notes.createComment

Комментарии к заметкам. Требуется авторизация.


13. Опросы (polls.*)

polls.getById

Получить информацию об опросе.

Параметры: poll_id, extended, fields

polls.addVote

Проголосовать. Требуется авторизация.

Параметры: poll_id, answers_ids (ID вариантов через запятую)

polls.deleteVote

Отменить голос. Требуется авторизация.

polls.getVoters

Голосовавшие по вариантам. Требуется авторизация.

polls.create

Создать опрос. Требуется авторизация.

Параметры: question, add_answers (JSON массив), disable_unvote, is_anonymous, is_multiple, end_date


14. Обсуждения (board.*)

board.getTopics

Темы обсуждений группы. Требуется авторизация.

Параметры: group_id, topic_ids, offset, count, extended, preview, preview_length

board.addTopic

Создать тему. Требуется авторизация.

Параметры: group_id, title, text, from_group

board.editTopic / board.deleteTopic

Редактировать/удалить тему. Требуется авторизация.

board.fixTopic / board.unfixTopic

Закрепить/открепить тему. Требуется авторизация.

board.openTopic / board.closeTopic

Открыть/закрыть тему. Требуется авторизация.

board.getComments

Комментарии в теме. Требуется авторизация.

board.createComment

Добавить комментарий. Требуется авторизация.


15. Документы (docs.*)

docs.get

Список документов. Требуется авторизация.

Параметры: count, offset, type, owner_id, return_tags, order

docs.getById

Документы по ID. Требуется авторизация.

docs.add / docs.delete / docs.restore

Добавить/удалить/восстановить документ. Требуется авторизация.

docs.edit

Редактировать документ. Требуется авторизация.

Параметры: owner_id, doc_id, title, tags, folder_id, owner_hidden

docs.search

Поиск документов. Требуется авторизация.

docs.getTypes / docs.getTags

Типы и теги документов.


16. Уведомления (notifications.*)

notifications.get

Получить уведомления. Требуется авторизация.

Параметры: | Параметр | Тип | Описание | |----------|-----|----------| | count | int | Количество (макс. 100) | | offset | int | Смещение | | archived | int | 0 — новые, 1 — архивные | | start_from | string | Начать с этой метки | | filters | string | Фильтр по типам | | start_time, end_time | int | Временной диапазон |

Типы уведомлений (поле type в ответе): | Тип | Описание | |-----|----------| | like_post | Лайк поста | | copy_post | Репост | | comment_post | Комментарий к посту | | comment_photo | Комментарий к фото | | comment_video | Комментарий к видео | | comment_note | Комментарий к заметке | | wall | Пост на стене | | mention | Упоминание | | mention_comment_video | Упоминание в комментарии к видео | | mention_comment_photo | Упоминание в комментарии к фото | | make_you_admin | Назначение модератором | | wall_publish | Публикация предложенного поста | | new_posts_in_club | Новые посты в клубе | | sent_gift | Получение подарка | | voices_transfer | Перевод голосов | | up_rating | Повышение рейтинга |

Ответ:

{
  "items": [
    {
      "type": "like_post",
      "date": 1234567890,
      "parent": { "id": 123, "text": "..." },
      "feedback": { "from_id": 456 },
      "reply": null
    }
  ],
  "profiles": [
    { "uid": 456, "first_name": "Имя", "last_name": "Фамилия", "photo": "..." }
  ],
  "groups": [],
  "last_viewed": 1234567890
}

notifications.markAsViewed

Отметить уведомления как просмотренные. Требуется авторизация.


17. Новости (newsfeed.*)

newsfeed.get

Лента новостей. Требуется авторизация.

Параметры: fields, start_from, start_time, end_time, offset, count, extended

newsfeed.getGlobal

Глобальная лента (все посты). Требуется авторизация.

newsfeed.getByType

Лента по типу (top и др.). Требуется авторизация.

newsfeed.getBanned

Чёрный список в ленте. Требуется авторизация.

newsfeed.addBan / newsfeed.deleteBan

Добавить/удалить из скрытых в ленте. Требуется авторизация.


18. Статус (status.*)

status.get

Получить статус пользователя.

Параметры: user_id, group_id

Возвращает: строку или {"status": "текст", "audio": {...}}

status.set

Установить статус. Требуется авторизация.

Параметры: text, group_id


19. Подарки (gifts.*)

gifts.get

Подарки пользователя. Требуется авторизация.

Параметры: user_id, count, offset

gifts.send

Отправить подарок. Требуется авторизация.

Параметры: user_ids, gift_id, message, privacy

gifts.getCategories

Категории подарков.

gifts.getGiftsInCategory

Подарки в категории.


20. Жалобы (reports.*)

reports.add

Отправить жалобу. Требуется авторизация.

Параметры: owner_id, comment, reason, type, report_source

Допустимые типы (type): post, photo, video, group, comment, note, app, user, audio


21. Утилиты (utils.*)

utils.getServerTime

Текущее время сервера (timestamp).

utils.resolveScreenName

Преобразовать экранное имя в ID.

Параметр: screen_name

Возвращает: {"object_id": int, "type": "user" / "group"}

utils.resolveGuid

Получить пользователя по GUID.


22. Информация о платформе (ovk.*)

ovk.version

Версия API.

ovk.test

Тест авторизации. Возвращает {"authorized": bool, "auth_with": str, "version": str}.

ovk.aboutInstance

Статистика платформы.

Параметры: fields (statistics,administrators,popular_groups,links), admin_fields, group_fields

ovk.chickenWings

🍗 Крылышки.


23. Платежи (pay.*)

pay.verifyOrder

Проверить заказ. Требуется авторизация.

Параметры: app_id, amount, signature

pay.getIdByMarketingId

Получить ID по маркетинговому ID.


24. Загрузка файлов

Загрузка фото на стену

  1. photos.getWallUploadServer → получить URL
  2. POST файл на полученный URL
  3. photos.saveWallPhoto → сохранить

Загрузка фото профиля

  1. photos.getOwnerPhotoUploadServer → получить URL
  2. POST файл на URL
  3. photos.saveOwnerPhoto → сохранить

25. Коды ошибок

Код Описание
1 Неизвестная ошибка
3 Неизвестный метод
4 Неверный параметр
5 Авторизация не пройдена (нет токена)
7 Неверный grant_type
9 Rate limit (слишком много запросов)
10 Обязательный параметр отсутствует
12 Доступ запрещён
15 Доступ запрещён (общий)
18 Аккаунт деактивирован
28 Неверный логин/пароль или 2FA код
29 Слишком много нарушений
50 Пользователь/группа не найдены
52 Неверное вложение
100 Параметр некорректен
103 Неверный screen_name
104 Не найдено
121 Неверный хэш
129 Неверный файл изображения
174 Нельзя добавить себя в друзья
177 Пользователь не найден
946 Не реализовано
950 Внутренняя ошибка сервера

26. Rate Limiting (ограничение частоты запросов)

Для write-операций (публикация, добавление в друзья, вступление в группы и т.д.) действуют лимиты:

  • Если вы превысите лимит — сервер вернёт ошибку код 9
  • При повторных нарушениях ваш IP может быть временно заблокирован
  • Для администраторов ограничения могут быть смягчены

Рекомендация: не делайте более 3-5 write-запросов в секунду. Для read-запросов лимиты значительно выше.


27. OAuth-авторизация через браузер

Если вы разрабатываете веб-приложение, можно использовать OAuth flow:

  1. Перенаправьте пользователя на:

    /authorize?client_name=МойКлиент&redirect_uri=https://example.com/callback&prefers_postMessage=0
  2. Пользователь подтверит доступ

  3. Ваш redirect_uri получит токен:

    https://example.com/callback#access_token=...&user_id=1&expires_in=0

Для JavaScript-приложений используйте prefers_postMessage=1 — токен будет отправлен через window.postMessage.


28. Примеры запросов

Пример на cURL

# Получить токен
curl -X POST "https://luna.hamystudio.ru/token" \
  -d "grant_type=password&username=myuser&password=mypass"

# Получить информацию о себе
curl -X POST "https://luna.hamystudio.ru/method/users.get" \
  -d "access_token=ВАШ_ТОКЕН&fields=photo_200,status"

# Отправить сообщение
curl -X POST "https://luna.hamystudio.ru/method/messages.send" \
  -d "access_token=ВАШ_ТОКЕН&user_id=2&message=Привет!"

# Получить уведомления
curl -X POST "https://luna.hamystudio.ru/method/notifications.get" \
  -d "access_token=ВАШ_ТОКЕН&count=20&archived=0"

Пример на Python

import requests

BASE_URL = "https://luna.hamystudio.ru"

# Авторизация
token_resp = requests.post(f"{BASE_URL}/token", data={
    "grant_type": "password",
    "username": "myuser",
    "password": "mypass"
}).json()

access_token = token_resp["access_token"]

# Получить свой профиль
profile = requests.post(f"{BASE_URL}/method/account.getProfileInfo", data={
    "access_token": access_token
}).json()

print(profile["response"]["first_name"])

# Получить уведомления
notifs = requests.post(f"{BASE_URL}/method/notifications.get", data={
    "access_token": access_token,
    "count": 20,
    "archived": 0
}).json()

for item in notifs["response"]["items"]:
    print(f"Тип: {item['type']}, Дата: {item['date']}")

Пример на Kotlin (Android)

import okhttp3.*
import kotlinx.serialization.json.*

val client = OkHttpClient()
val BASE_URL = "https://luna.hamystudio.ru"

suspend fun getToken(username: String, password: String): String {
    val response = client.newCall(
        Request.Builder()
            .url("$BASE_URL/token")
            .post(FormBody.Builder()
                .add("grant_type", "password")
                .add("username", username)
                .add("password", password)
                .build())
            .build()
    ).execute()

    val json = Json.parseToJsonElement(response.body!!.string()).jsonObject
    return json["access_token"]!!.jsonPrimitive.content
}

suspend fun getNotifications(token: String): JsonArray {
    val response = client.newCall(
        Request.Builder()
            .url("$BASE_URL/method/notifications.get")
            .post(FormBody.Builder()
                .add("access_token", token)
                .add("count", "20")
                .add("archived", "0")
                .build())
            .build()
    ).execute()

    val json = Json.parseToJsonElement(response.body!!.string()).jsonObject
    return json["response"]!!.jsonObject["items"]!!.jsonArray
}

29. Конфиденциальность и разрешения

API учитывает настройки приватности пользователей. Если у пользователя закрытый профиль, вы не получите доступ к его данным, даже зная ID.

Privacy-параметры, которые проверяются:

  • friends.read — доступ к списку друзей
  • messages.write — отправка сообщений
  • audios.read — доступ к музыке
  • videos.read — доступ к видео
  • notes.read — доступ к заметкам
  • photos.read — доступ к фото
  • wall.write — публикация на стене
  • groups.read — доступ к списку групп

30. Поддержка

Если у вас возникли вопросы по API:

  • Напишите администрации через поддержку сайта
  • Изучите примеры кода выше
  • API совместим с VK API v4.100 — документация ВКонтакте также может быть полезна

Данный документ лицензирован по CC-BY-SA. Последнее обновление: апрель 2026.