📘 Документация API SmartParser

Полная документация по REST API для автоматизации работы с объявлениями Авито.

🔑 Доступ к API

Для работы с API необходимо получить персональный API-ключ. Ключ используется для ценового анализа и получения номера телефона.

Получить API-ключ API-ключ доступен бесплатно в профиле после подтверждения email

💰

Получение текущего баланса

POST https://spfa.ru/api/balance/ Бесплатно

Возвращает текущий баланс вашего аккаунта. Списание средств при вызове метода не происходит.

📤 Request Body (JSON)
{
  "api_key": "ваш_api_key"
}
📥 Response 200 (Success)
{
  "success": true,
  "balance": 9745.49
}
📋 Параметры
Поле Тип Обязательное Описание
api_key string да Ваш API-ключ
Примечание:
  • Только POST запрос с Content-Type: application/json
  • Метод не списывает средства
  • Баланс возвращается в рублях
📞

Получение телефонов объявлений

POST https://spfa.ru/api/phone/ 💰 ₽/успешный

Возвращает номера телефонов продавцов Авито по списку ID объявлений. Баланс списывается только за успешно полученные номера. Метод доступен только после реального пополнения баланса.

📤 Request Body (JSON)
{
  "api_key": "ваш_api_key",
  "ads": [
    "7385509771",
    "4464666650",
    "4539040010"
  ]
}
📥 Response 200 (Success)
{
  "success": true,
  "results": [
    {
      "ad_id": "7385509771",
      "phone": "+79587478634"
    },
    {
      "ad_id": "4464666650",
      "phone": null
    },
    {
      "ad_id": "4539040010",
      "phone": "80123456784"
    }
  ],
  "meta": {
    "ads": 3,
    "success": 2,
    "time_sec": 2.49
  }
}
📋 Параметры
Поле Тип Обязательное Описание
api_key string да Ваш API-ключ
ads array[string] да Список ID объявлений Авито (до 50 шт)
Важно:
  • Только POST запросы с Content-Type: application/json
  • Максимум 50 объявлений за один запрос
  • Порядок результатов соответствует порядку переданных объявлений
  • Номера временные от Авито, те которые видит обычный неавторизованный пользователь
  • Если у Вас только бонусный баланс и реально он ни разу не пополнялся - метод для Вас недоступен (403 код)
  • Если номер недоступен, поле phone возвращается как null
📊

Умный анализ цен (Batch)

POST https://spfa.ru/api/batch_lookup/ 💰 ₽/объявление

Асинхронный анализ цен для списка объявлений. Создаёт задание и возвращает task_id для отслеживания статуса.

📤 Request Body (JSON)
{
  "api_key": "ваш_api_key",
  "region": "all",
  "queries": [
    "https://www.avito.ru/2522985321",
    "2522985322"
  ]
}
📥 Response 200 (Created)
{
  "success": true,
  "task_id": "3f2a7c9b-1234-4f67-a0b1-abcdef123456"
}
🔄 Проверка статуса
GET https://spfa.ru/api/batch_lookup/<task_id>/
Статус: RUNNING
{
  "success": true,
  "status": "RUNNING",
  "results": null
}
Статус: SUCCESS
{
  "success": true,
  "status": "SUCCESS",
  "results": [...],
  "price_per_ad": "0.50",
  "total_cost": "1.00",
  "billed": true
}
Ограничения: Максимум 5 объявлений за запрос, не более 10 запросов в минуту
🍪

Получение Cookies для парсинга

POST https://spfa.ru/api/cookies/ 💰 ₽/шт

Возвращает готовые к использованию cookies и user-agent для стабильного парсинга Авито. Каждый cookies работает до 12 часов с момента получения (если пользоваться разблокировкой и изменять ip). Обязательно реализуйте в своём клиенте разблокировку cookies (метод ниже)

📤 Request Body (JSON)
{
  "api_key": "ваш_api_key",
  "full_format": false,
}
📥 Response 200 (Success)
{
  "success": true,
  "results": {
    "id": 89,
    "cookies": {
      "as": "MHDjU2lzC95PvYwXaXML3g",
      "_csrf": "TfiOg3Gz..."
    },
    "user_agent": "Mozilla/5.0 (Windows NT 10.0...",
    "mobile": false
  }
}
📋 Параметры
Поле Тип Обязательное Описание
api_key string да Ваш API-ключ
full_format boolean нет Формат возвращаемых cookies. По умолчанию false
  • false — только основные cookies для базового парсинга
  • true — полный набор cookies (все доступные ключи)
Ошибка 503
{
  "success": false,
  "message": "Сервис временно недоступен"
}
Ошибка 403
{
  "success": false,
  "message": "Нет свободных прокси"
}
💡 Формат cookies:
  • Базовый формат (full_format: false) — содержит только ключевые cookies для обычного парсинга: f, ft, srv_id...
  • Полный формат (full_format: true) — возвращает все cookies, которые были сохранены (подходит для специфических сценариев)
Особенности использования:
  • Готовы к использованию
  • Длительность работы — до 12 часов с момента получения (если пользоваться разблокировкой и изменять ip)
  • Стабильность — минимизированы блокировки и капчи
  • Интеграция — используйте в своих парсерах и скриптах
📱

Получение новых мобильных Cookies

POST https://spfa.ru/api/cookies/mobile/ 💰 ₽/шт

Создаёт новые мобильные cookies с использованием переданного прокси и возвращает их вместе с мобильным user-agent. http прокси передаётся в авторизованном формате с символом @. Публичные прокси не принимаются

📤 Request Body (JSON)
{
  "api_key": "ваш_api_key",
  "proxy": "login:password@host:port"
}
📥 Response 200 (Success)
{
  "success": true,
  "results": {
    "id": 90,
    "cookies": {
      "srv_id": "...",
      "f": "..."
    },
    "user_agent": "Mozilla/5.0 (Linux; Android ... Mobile ...)",
    "fingerprint": {
      "client": "curl_cffi",
      "impersonate": "chrome131_android",
      "headers": {
        "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
        "accept-language": "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7",
        "cache-control": "no-cache",
        "pragma": "no-cache",
        "referer": "https://www.avito.ru/",
        "sec-ch-ua": "\"Not=A?Brand\";v=\"99\", \"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\"",
        "sec-ch-ua-mobile": "?1",
        "sec-ch-ua-platform": "\"Android\"",
        "user-agent": "Mozilla/5.0 (Linux; Android ... Mobile ...)"
      }
    },
    "mobile": true
  }
}

Объект fingerprint нужно использовать вместе с cookies и user_agent: поле impersonate задаёт профиль браузера для curl_cffi, а headers содержит полный набор заголовков созданной мобильной сессии.

📋 Параметры
Поле Тип Обязательное Описание
api_key string да Ваш API-ключ
proxy string да Прокси в формате login:password@host:port
Если поле proxy отсутствует или не содержит символ @, API вернёт ошибку 400. Ошибки API-ключа или баланса возвращаются с кодами 401 или 403.
Переданный прокси мы не храним, используем только для создания cookies именно для Вас.
Процесс не всегда быстрый, поэтому ставьте timeout > 30 сек в своём клиенте
При использовании данных cookies отправляйте запросы на api url "https://m.avito.ru/api/11/items?...". Для получения данной ссылки (из обычной) есть бесплатный endpoint или форма у нас на сайте
🔄

Разблокировка Cookies

POST https://spfa.ru/api/unblock/ Бесплатно

Обновляет ранее приобретённые cookies. Метод доступен в течение 12 часов после покупки и при передаче API-ключа возвращает актуальные значения cookies владельцу.

Переходный период: параметр api_key пока необязателен, чтобы вы успели обновить свои клиенты. Без него запрос будет выполнен, но cookies в ответе не будут возвращены. В будущем передача api_key станет обязательной.
📤 Request Body (JSON)
{
  "id": 87,
  "api_key": "ваш_api_key",
  "proxy": "login:password@host:port"
}
📥 Response 200 (Success)
{
  "success": true,
  "results": {
    "id": 87,
    "cookies": {
      "srv_id": "...",
      "f": "..."
    }
  }
}
📋 Параметры
Поле Тип Обязательное Описание
id integer да ID cookies из ответа метода получения cookies
api_key string пока нет API-ключ владельца cookies. Только при его передаче ответ содержит cookies. В будущем параметр станет обязательным.
proxy string нет Прокси, который нужно использовать при обновлении cookies
Если в ответе success: true - это значит, что у нас он прошел все процессы разблокировки. При наличии корректного API-ключа владельцу возвращается последняя сохранённая версия. Без API-ключа успешный ответ имеет вид {"success": true}.
Ошибка 410 (Gone)
{
  "success": false,
  "message": "Прошло уже больше 12 часов..."
}
Ошибка 404 (Not Found)
{
  "success": false,
  "message": "Cookie не найден"
}
🔗

Преобразование Web URL в API URL

POST https://spfa.ru/api/avito-url/ Бесплатно

Преобразует ссылку веб-страницы поиска Avito в готовую ссылку https://m.avito.ru/api/11/items с соответствующими параметрами поиска. API-ключ SPFA для этого метода не требуется.

📤 Request Body (JSON)
{
  "url": "https://www.avito.ru/all/telefony?..."
}
📥 Response 200
{
  "success": true,
  "api_url": "https://m.avito.ru/api/11/items?..."
}
Пример cURL
curl -X POST https://spfa.ru/api/avito-url/ \
  -H "Content-Type: application/json" \
  -d '{"url":"https://www.avito.ru/all/telefony?..."}'
Коды ответа
КодОписание
200Ссылка успешно преобразована
400Некорректный JSON или ссылка не относится к Avito
429Превышен лимит: 2 запроса в минуту с одного IP
502Avito вернул ошибку или ответ без URI
503Нет доступных прокси
Этот же функционал доступен через форму Web → API. Лимит формы и API общий: два POST-запроса в минуту с одного IP.
📊 Сводная таблица API методов
Метод Эндпоинт HTTP метод Стоимость Лимиты
💰 Баланс /api/balance/ POST Бесплатно 6 запросов в минуту
📞 Телефоны /api/phone/ POST ₽/успешный 50 объявлений/запрос
📊 Анализ цен /api/batch_lookup/ POST ₽/объявление 5 объявлений/запрос
🍪 Cookies /api/cookies/ POST ₽/шт Нет ограничений
📱 Mobile Cookies /api/cookies/mobile/ POST ₽/шт Нет ограничений
🔗 Web → API URL /api/avito-url/ POST Бесплатно 2 запроса в минуту с IP
🔄 Разблокировка /api/unblock/ POST Бесплатно В течение 12 часов (до 16 запросов в минуту)