API для разработчиков
Интегрируйте Vrooki в ваши приложения с помощью нашего REST API
Обзор
API Vrooki предоставляет программный доступ к основным функциям платформы: управление объявлениями, поиск, работа с пользователями и категориями. API построен на принципах REST и возвращает данные в формате JSON.
Base URL
https://api.vrooki.ruФормат
JSON (UTF-8)Протокол
HTTPS onlyВерсия
v1 (текущая)Аутентификация
API использует JWT-токены для аутентификации. Получите пару токенов (access + refresh) через эндпоинт авторизации и передавайте access-токен в заголовке каждого запроса.
# Получение токеновPOST /api/v1/auth/loginContent-Type: application/json{ "email": "user@example.com", "password": "secret" }# Использование токенаGET /api/v1/users/meAuthorization: Bearer <access_token>Access-токен действует 15 минут. Используйте
/api/v1/auth/refresh с refresh-токеном для обновления.Эндпоинты
| Метод | Путь | Описание |
|---|---|---|
| GET | /api/v1/listings | Список объявлений с пагинацией и фильтрами |
| GET | /api/v1/listings/{id} | Получение объявления по ID |
| POST | /api/v1/listings | Создание нового объявления |
| PATCH | /api/v1/listings/{id} | Обновление объявления |
| GET | /api/v1/categories | Список всех категорий |
Примеры кода
Python
import requests
BASE = "https://api.vrooki.ru"
# Авторизация
resp = requests.post(f"{BASE}/api/v1/auth/login", json={
"email": "user@example.com",
"password": "secret"
})
token = resp.json()["access_token"]
headers = {"Authorization": f"Bearer {token}"}
# Поиск объявлений
results = requests.post(
f"{BASE}/api/v1/search",
json={"q": "велосипед", "limit": 10},
headers=headers
)
print(results.json())JavaScript
const BASE = "https://api.vrooki.ru";
// Авторизация
const auth = await fetch(`${BASE}/api/v1/auth/login`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
email: "user@example.com",
password: "secret"
})
});
const { access_token } = await auth.json();
// Поиск объявлений
const res = await fetch(`${BASE}/api/v1/search`, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${access_token}`
},
body: JSON.stringify({ q: "велосипед", limit: 10 })
});
console.log(await res.json());Лимиты запросов
| Тариф | Запросов / мин | Запросов / день | Параллельных |
|---|---|---|---|
| Бесплатный | 60 | 1 000 | 5 |
| Базовый | 300 | 10 000 | 20 |
| Бизнес | 1 000 | 100 000 | 50 |
| Корпоративный | По запросу | По запросу | По запросу |
При превышении лимита API вернёт
429 Too Many Requests. Используйте заголовки X-RateLimit-* для отслеживания лимитов.