Ошибки и лимиты
Ошибка — это HTTP-код и JSON:
{ "error": "invalid", "message": "birth_year: members must be 18+" }
Опирайтесь на error — коды стабильны. message — для людей и логов, его текст может меняться.
Коды ошибок
| HTTP | error |
Что значит | Что делать |
|---|---|---|---|
| 400 | bad_json |
Тело — не JSON | Проверить сериализацию |
| 400 | bad_id |
Параметр не UUID (match_id, to, up_to) |
Передавать id из ответов сети как есть |
| 401 | unauthorized |
Нет ключа, ключ неверный или контур площадки приостановлен | Проверить заголовок Authorization: Bearer … |
| 403 | forbidden |
Действие запрещено: лайк или дизлайк своему же пользователю через сеть; участник скрыт по жалобам или удаляется (и ленты нет) | Не повторять |
| 404 | not_found |
Нет такого участника, мэтча или сообщения — или он не ваш. и лайк тому, кого ваш пользователь не может видеть: блокировка, другой контур, скрытый | Пользователь не отправлен в сеть, уже удалён или недоступен: убрать карточку |
| 409 | match_closed |
Мэтч закрыт | Закрыть разговор у себя |
| 409 | matched |
Лайк уже дал мэтч — отменить нельзя | Не повторять |
| 409 | location_change_limited |
Город меняли меньше суток назад: новый город или переезд дальше 50 км | Сказать человеку, что сменить город можно через сутки; остальное отправить с прежним городом |
| 409 | match_frozen |
Кто-то из двоих удаляет аккаунт (30 дней может восстановить) или скрыт сетью по жалобам | «Аккаунт удалён» или «Аккаунт недоступен»; писать снова можно после восстановления или reinstate |
| 409 | member_hidden |
Участник скрыт (consent.network: false): ленты нет, лайкнуть можно только того, кто лайкнул его, без суперлайка |
Предложить вернуться в сеть |
| 409 | photo_check_gone |
Только страница проверки фото: задание с жестом истекло или уже использовано | Страница сама предложит начать заново |
| 409 | world_consent_required |
Лента scope=world участнику без согласия «Весь мир» |
Предложить включить «Весь мир»; до тех пор — обычная лента |
| 422 | invalid |
Данные не прошли проверку — поле в message |
Исправить данные; не повторять как есть |
| 429 | rate_limited |
Больше 600 запросов в минуту | Подождать и повторить с паузой |
| 429 | super_like_limit |
Суперлайков за сутки больше 5 | Сказать человеку, что суперлайки вернутся завтра; обычный лайк можно |
| 429 | photo_check_limit |
больше 10 проверок фото на одного человека за сутки | Сказать человеку, что попробовать снова можно завтра |
| 429 | first_messages_limit |
Новый участник (первые 7 дней в сети) уже начал 20 разговоров за сутки | Не повторять; сказать, что новые разговоры можно начать завтра. Отвечать в начатых можно |
| 503 | photo_check_off |
сервис сверки фото временно недоступен | Повторить позже |
| 500, 503 | internal |
Ошибка или временная недоступность сети (503 бывает и при проверке ключа — ключ в порядке) | Повторить с экспоненциальной паузой |
Повторы на вашей стороне
- Можно повторять: сетевые ошибки, таймауты,
429 rate_limited,5xx. Паузы: 1 с, 2 с, 4 с… до минуты. - Безопасно повторять:
PUT /v1/members,PUT /v1/members/…,DELETE /v1/members/…,POST /v1/activity,POST /v1/likes,POST /v1/dislikes,POST /v1/blocks,POST /v1/matches/{id}/read— повтор не создаст дублей. - Осторожно:
POST /v1/matches/{id}/messages— повтор после таймаута может отправить сообщение дважды. Повторяйте, только если ответ точно не пришёл, и показывайте пользователю статус «не отправлено».
Лимиты
| Что | Значение |
|---|---|
| Запросы | 600 в минуту на площадку, всплеск до 100 |
| Тело запроса | до 1 МБ |
| Лента | до 50 анкет за запрос, до 200 разных людей на участника в сутки. Повтор страницы лимит не тратит |
Пачка анкет (PUT /v1/members) |
до 100 |
| Пачка дизлайков | до 100 |
Отметки активности (POST /v1/activity) |
до 1000 за запрос |
| Входящие лайки | до 100 за запрос |
События (GET /v1/events) |
до 500 за запрос, хранятся 7 дней |
| История сообщений | до 100 за запрос |
| Сообщение | 1–4000 символов |
| Описание анкеты | до 1000 символов |
| Фото | 1–9 на анкету |
external_id |
1–128 символов |
| Смена города | раз в сутки |
| Суперлайки | 5 в сутки на участника, сообщение до 200 символов |
| Новые разговоры у новых участников | 20 в сутки первые 7 дней |
| Доставка вебхука | таймаут 10 секунд, повторы до 3 суток |
Если вам не хватает лимитов — напишите, увеличим.
Дополнительные услуги
Коды entitlement_required (402), commerce_forbidden (403), commerce_conflict, quote_expired, boost_incompatible_with_incognito (409), invalid_commerce_request (422), commerce_unavailable и live_payments_unavailable (503) — в разделе Услуги сети. insufficient_test_credits (402) относится только к TEST. Не заменяйте идентификатор заказа после таймаута: повторите прежний запрос.