Проверка API в песочнице
Для проверки API вам понадобятся тестовый ключ и curl. Вы отправите тестовую анкету, получите ленту песочницы и проверите лайк, мэтч, сообщение и событие. События можно получать вебхуком или забирать запросом к API (шаг 5). Полный путь до запуска описан в обзоре подключения.
1. Получите ключи
Подайте заявку. Мы проверим её вручную и откроем вам кабинет — вход по коду на почту, с которой подавали заявку. Ключи письмом не присылаем: площадка выпускает их в кабинете сама.
В кабинете два контура — тестовый и боевой, у каждого свои значения. Начните с тестового: выпустите ключ и укажите адрес для вебхуков. Ключ показывается один раз — сразу сохраните его.
| Что | Пример | Где хранить |
|---|---|---|
partner_id |
d097d65b-… |
где угодно |
api_key |
dn_3f9c… |
только на сервере, в секретах |
webhook_secret |
whsec_8a1e… |
на сервере — для проверки подписи вебхуков |
Ключ API никогда не кладите в мобильное приложение или в JavaScript на странице: все запросы к сети идут с вашего сервера.
export PEREVAL_API_KEY=dn_...
2. Отправьте анкету
external_id в пути — ваш id пользователя, любой строкой. Сеть будет называть этого человека так же во всех ответах и событиях.
curl -X PUT https://api.pereval.dating/v1/members/user-123 \
-H "Authorization: Bearer $PEREVAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"consent": {"network": true, "cross_language": true, "given_at": "2026-10-24T12:00:00Z", "text_version": "2026-10-24"},
"display_name": "Анна",
"birth_year": 1994,
"gender": "female",
"age_min": 28, "age_max": 40,
"languages": ["ru"],
"city": {"name": "Москва", "country": "RU", "lat": 55.75, "lon": 37.62},
"bio": "Горы, джаз и хороший кофе",
"photos": ["https://cdn.your-app.ru/u/123/1.jpg"],
"intents": ["serious", "casual"]
}'
Ответ:
{ "network_id": "6f1c2b4e-8a3d-4c55-9b1e-2f0a7d9c1e44" }
Повторный PUT с тем же external_id обновляет анкету — вызывайте его при каждом изменении профиля. Если у вас уже много людей, которые включили участие, отправьте их пачками до 100 — см. первую загрузку.
3. Получите ленту
curl https://api.pereval.dating/v1/members/user-123/feed?limit=20 \
-H "Authorization: Bearer $PEREVAL_API_KEY"
{
"items": [
{
"network_id": "1b9e…",
"partner": { "id": "…", "name": "Знакомства Плюс" },
"display_name": "Elena",
"age": 31,
"gender": "female",
"city": "Москва",
"distance_km": 4,
"languages": ["en"],
"bio": "Люблю горы и кофе",
"bio_original": "I love mountains and coffee",
"bio_translated": true,
"photos": ["https://…"],
"photo_verified": true,
"verified_by": "partner",
"intents": ["serious", "casual", "friendship"]
}
],
"remaining_today": 180,
"next_cursor": "eyJ…"
}
Показывайте эти анкеты вместе со своими. Отметьте, что анкета из сети «Перевал», а если bio_translated — пометку «переведено ИИ» и возможность увидеть оригинал.
В ответе может быть next_cursor. Следующая страница — тот же запрос с cursor. Без курсора повтор вернёт тех же людей. Этот минимум — одна страница.
Если это листалка и человек пропустил анкету без лайка, отметьте дизлайк — сеть не покажет её 30 дней. Сайт с поиском так не делает: там страницы идут курсором. Оба пути расписаны отдельно — листалка и сайт с поиском.
curl -X POST https://api.pereval.dating/v1/dislikes \
-H "Authorization: Bearer $PEREVAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"from": "user-123", "to": "5c2a…"}'
В сутки участник получает до 200 разных людей, остаток новых — в remaining_today. Повторный показ тех же анкет остаток не уменьшает.
4. Поставьте лайк
curl -X POST https://api.pereval.dating/v1/likes \
-H "Authorization: Bearer $PEREVAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"from": "user-123", "to": "1b9e…"}'
{"matched": false} — лайк сохранён, приложение Елены получит событие like.received. Если она ответит взаимностью, оба приложения получат match.created, а ответ на лайк будет {"matched": true, "match_id": "…"}.
5. Примите событие
Сеть шлёт события POST-запросом на ваш адрес вебхуков. Минимальный обработчик на PHP:
<?php
$body = file_get_contents('php://input');
$expected = 'sha256=' . hash_hmac('sha256', $body, getenv('PEREVAL_WEBHOOK_SECRET'));
if (!hash_equals($expected, $_SERVER['HTTP_X_NETWORK_SIGNATURE'] ?? '')) {
http_response_code(401);
exit;
}
$event = json_decode($body, true);
// Повторы возможны: пропускайте событие, если $event['id'] уже обработан.
switch ($event['type']) {
case 'ping': /* проверка из кабинета */ break;
case 'match.created': /* создать разговор */ break;
case 'message.created': /* показать сообщение */ break;
}
http_response_code(204);
Проверьте адрес и подпись кнопкой «Отправить проверочное событие» в кабинете — должен прийти ping.
Нет адреса для вебхуков — например, у вас бот или простой хостинг? Не указывайте его в кабинете и забирайте события сами:
curl "https://api.pereval.dating/v1/events?after=0&limit=100" \
-H "Authorization: Bearer $PEREVAL_API_KEY"
В ответе — items и next_after; следующий запрос делайте с after=next_after. Подробно, на всех языках и со всеми типами событий — в разделе События и вебхуки.
6. Напишите сообщение
curl -X POST https://api.pereval.dating/v1/matches/$MATCH_ID/messages \
-H "Authorization: Bearer $PEREVAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"from": "user-123", "text": "Привет! Как прошли выходные?"}'
Елена русского не знает, поэтому сеть переведёт сообщение на английский и отправит его, как только перевод будет готов, — с оригиналом рядом. Когда она прочитает, вам придёт событие message.read.
Что дальше
- Путь от заявки до запуска — чем проверка API отличается от готовой интеграции.
- Анкеты и согласия — какие тексты показать пользователю и когда обновлять анкету.
- События и вебхуки — все события и надёжный приём.
- Тестирование — песочница и чек-лист перед запуском.
- Справочник API — все запросы с примерами на PHP, Python, Node.js и Go.