Перейти к содержанию

Avito API - Документация

Обзор

Avito API предоставляет возможность автоматизации работы с объявлениями и мессенджером Avito для бизнес-аккаунтов.

Официальный сайт: https://developers.avito.ru

Требования для доступа к API

1. Бизнес-аккаунт Avito Pro

  • Учетная запись должна быть Avito Pro (бизнес-аккаунт)
  • Требуется подключить один из платных тарифов
  • Необходимо пройти проверку как:
  • ИП (индивидуальный предприниматель)
  • Юридическое лицо
  • Самозанятый

2. Автозагрузка для категорий

Для категорий «Недвижимость» и «Транспорт» автозагрузка становится доступна сразу после подключения тарифа.


Аутентификация (OAuth2)

Получение credentials

  1. Зарегистрируйтесь на https://developers.avito.ru
  2. Создайте приложение в разделе "Мои приложения"
  3. Получите:
  4. Client ID
  5. 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:

{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR...",
  "token_type": "Bearer",
  "expires_in": 86400
}

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. Работа с объявлениями

Получить список объявлений

GET https://api.avito.ru/core/v1/items
Authorization: Bearer {access_token}

Response:

{
  "items": [
    {
      "id": "2876543210",
      "title": "Участок 10 соток в ДНП Тихие Луга",
      "category_id": 24,
      "status": "active",
      "price": 299000,
      "location": {
        "district_id": 637680
      },
      "stats": {
        "views": 145,
        "contacts": 12
      }
    }
  ]
}

Получить детали объявления

GET https://api.avito.ru/core/v1/items/{item_id}
Authorization: Bearer {access_token}

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 (Чаты)

Получить список чатов

GET https://api.avito.ru/messenger/v2/chats
Authorization: Bearer {access_token}

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"
      }
    }
  ]
}

Получить сообщения чата

GET https://api.avito.ru/messenger/v2/chats/{chat_id}/messages
Authorization: Bearer {access_token}

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 секунд.


Статистика объявлений

GET https://api.avito.ru/stats/v1/accounts/{user_id}/items
Authorization: Bearer {access_token}

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 попытки с экспоненциальной задержкой

Обработка ошибок

{
  "error": "invalid_token",
  "error_description": "The access token expired"
}

Типичные ошибки:

Код Описание Решение
401 Unauthorized Обновить access_token
403 Forbidden Проверить scope разрешений
429 Too Many Requests Соблюдать rate limits
500 Internal Server Error Повторить запрос с задержкой

Best Practices

  1. Кэширование токенов: Сохраняйте access_token и обновляйте только перед истечением
  2. Обработка ошибок: Реализуйте retry logic с экспоненциальной задержкой
  3. Webhook безопасность: Проверяйте подпись webhook (если предоставляется)
  4. Автоответчик: Отвечайте на типовые вопросы автоматически в течение 5-10 минут

Полезные ссылки


Обновлено: 2026-02-16