Avito API - Документация¶
Обзор¶
Avito API предоставляет возможность автоматизации работы с объявлениями и мессенджером Avito для бизнес-аккаунтов.
Официальный сайт: https://developers.avito.ru
Требования для доступа к API¶
1. Бизнес-аккаунт Avito Pro¶
- Учетная запись должна быть Avito Pro (бизнес-аккаунт)
- Требуется подключить один из платных тарифов
- Необходимо пройти проверку как:
- ИП (индивидуальный предприниматель)
- Юридическое лицо
- Самозанятый
2. Автозагрузка для категорий¶
Для категорий «Недвижимость» и «Транспорт» автозагрузка становится доступна сразу после подключения тарифа.
Аутентификация (OAuth2)¶
Получение credentials¶
- Зарегистрируйтесь на https://developers.avito.ru
- Создайте приложение в разделе "Мои приложения"
- Получите:
- Client ID
- Client Secret
Типы авторизации¶
1. Client Credentials (рекомендуется для тестирования)¶
POST https://api.avito.ru/token
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&
client_id=YOUR_CLIENT_ID&
client_secret=YOUR_CLIENT_SECRET&
scope=PERMISSIONS
Response:
2. Authorization Code (для доступа от имени пользователя)¶
Шаг 1: Перенаправить пользователя на:
https://avito.ru/oauth?
response_type=code&
client_id=YOUR_CLIENT_ID&
redirect_uri=YOUR_REDIRECT_URI&
scope=PERMISSIONS
Шаг 2: Получить access_token:
POST https://api.avito.ru/token
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&
client_id=YOUR_CLIENT_ID&
client_secret=YOUR_CLIENT_SECRET&
code=AUTHORIZATION_CODE&
redirect_uri=YOUR_REDIRECT_URI
Доступные разрешения (Scopes)¶
| Scope | Описание |
|---|---|
messenger:write |
Модификация сообщений в мессенджере Avito |
short_term_rent:read |
Чтение объявлений краткосрочной аренды |
short_term_rent:write |
Управление объявлениями краткосрочной аренды |
stats:read |
Получение статистики по объявлениям |
user:read |
Получение информации о пользователе |
items:apply_vas |
Применение дополнительных услуг к объявлениям |
Основные API endpoints¶
1. Работа с объявлениями¶
Получить список объявлений¶
Response:
{
"items": [
{
"id": "2876543210",
"title": "Участок 10 соток в ДНП Тихие Луга",
"category_id": 24,
"status": "active",
"price": 299000,
"location": {
"district_id": 637680
},
"stats": {
"views": 145,
"contacts": 12
}
}
]
}
Получить детали объявления¶
2. Автозагрузка объявлений (XML Feed)¶
Формат: XML файл по спецификации Avito
Endpoint для загрузки:
POST https://api.avito.ru/autoload/v1/feed
Authorization: Bearer {access_token}
Content-Type: application/xml
<?xml version="1.0" encoding="UTF-8"?>
<Ads formatVersion="3" target="Avito.ru">
<Ad>
<Id>502</Id>
<Category>Земельные участки (продажа)</Category>
<GoodsType>Продам</GoodsType>
<AdType>Товар от частного лица</AdType>
<Title>Участок 10 соток в ДНП Тихие Луга</Title>
<Description>Продается земельный участок 10 соток...</Description>
<Price>299000</Price>
<Address>Можайский район, ДНП Тихие Луга</Address>
<LandArea>10</LandArea>
<Images>
<Image url="https://example.com/photo1.jpg"/>
<Image url="https://example.com/photo2.jpg"/>
</Images>
</Ad>
</Ads>
Документация XML: https://support.avito.ru/articles/200026885
3. Messenger API (Чаты)¶
Получить список чатов¶
Parameters:
- user_id - ID пользователя Avito
- unread_only - только непрочитанные (true/false)
Response:
{
"chats": [
{
"id": "chat_12345678",
"context": {
"value": "2876543210",
"type": "item"
},
"users": [
{
"id": 987654321,
"name": "Иван"
}
],
"last_message": {
"id": "msg_abc123",
"type": "text",
"content": {
"text": "Здравствуйте, участок еще актуален?"
},
"created": "2026-02-16T16:30:00Z",
"direction": "in"
}
}
]
}
Получить сообщения чата¶
Response:
{
"messages": [
{
"id": "msg_abc123",
"author_id": 987654321,
"type": "text",
"content": {
"text": "Здравствуйте, участок еще актуален?"
},
"created": "2026-02-16T16:30:00Z",
"direction": "in",
"read": false
}
]
}
Отправить сообщение¶
POST https://api.avito.ru/messenger/v1/accounts/{user_id}/chats/{chat_id}/messages
Authorization: Bearer {access_token}
Content-Type: application/json
{
"message": {
"text": "Здравствуйте! Да, участок актуален. Можем организовать просмотр."
},
"type": "text"
}
4. Webhooks¶
Avito может отправлять уведомления о новых сообщениях на ваш сервер.
Настройка webhook¶
POST https://api.avito.ru/messenger/v1/webhooks
Authorization: Bearer {access_token}
Content-Type: application/json
{
"url": "https://silent-meadow.com/api/v1/avito/webhook",
"events": ["message.new"]
}
Формат входящего webhook¶
{
"type": "message.new",
"chat_id": "chat_12345678",
"message": {
"id": "msg_xyz789",
"author_id": 987654321,
"text": "Здравствуйте, можно уточнить цену?",
"created": "2026-02-16T17:00:00Z"
},
"item_id": "2876543210"
}
Важно: Webhook должен возвращать 200 OK в течение 5 секунд.
Статистика объявлений¶
Parameters:
- dateFrom - начальная дата (YYYY-MM-DD)
- dateTo - конечная дата (YYYY-MM-DD)
- itemIds - список ID объявлений
Response:
{
"result": {
"items": [
{
"itemId": 2876543210,
"stats": {
"views": 245,
"uniqViews": 198,
"contacts": 15,
"favorites": 8
},
"periodViews": [
{
"date": "2026-02-15",
"views": 52,
"contacts": 3
}
]
}
]
}
}
Rate Limits¶
- Client Credentials: 100 запросов/минуту
- Authorization Code: 200 запросов/минуту
- Webhook retry: 3 попытки с экспоненциальной задержкой
Обработка ошибок¶
Типичные ошибки:
| Код | Описание | Решение |
|---|---|---|
| 401 | Unauthorized | Обновить access_token |
| 403 | Forbidden | Проверить scope разрешений |
| 429 | Too Many Requests | Соблюдать rate limits |
| 500 | Internal Server Error | Повторить запрос с задержкой |
Best Practices¶
- Кэширование токенов: Сохраняйте
access_tokenи обновляйте только перед истечением - Обработка ошибок: Реализуйте retry logic с экспоненциальной задержкой
- Webhook безопасность: Проверяйте подпись webhook (если предоставляется)
- Автоответчик: Отвечайте на типовые вопросы автоматически в течение 5-10 минут
Полезные ссылки¶
- Официальная документация Avito API
- Спецификация XML автозагрузки
- Сообщество разработчиков Avito
- GitHub: PHP API wrapper
- Postman Collection
Обновлено: 2026-02-16