Коротко: Union API отдаёт по каждому автомобилю из Encar не только цену и пробег, но и полную историю: ДТП, залоги, аресты, угон, затопление, полную гибель, смены владельцев и номеров. Это те данные, которые обычно приходится собирать вручную или покупать у корейских брокеров. Теперь они доступны через один запрос.
Почему цена и пробег — это ещё не вся картина
Импорт авто из Кореи кажется простым: нашёл объявление, проверил пробег, посчитал пошлину. Но реальные риски лежат глубже:
- Автомобиль был в прокате — износ больше, чем у машины, которую эксплуатировал один собственник.
- Числится в залоге или под арестом — сделку могут оспорить, машину не выпустят.
- Была серия ДТП — даже если отремонтирована, стоимость запчастей и работ видна в истории.
- Сменил 4 владельца за 3 года — сигнал о скрытых проблемах.
- Был затоплен или признан полностью погибшим — такие машины часто всплывают в продаже после «восстановления».
Без этих данных вы покупаете объявление, а не автомобиль.
Что именно отдаёт Union API по Encar
Поле extra в ответе API содержит три блока.
1. Risk-данные (история автомобиля)
| Что проверяем | Поле в API | Что означает |
|---|---|---|
| Прокат/аренда | is_rental |
Машина использовалась в прокате — износ выше, чем у авто в личном пользовании |
| Залоги | pledge_count |
Количество залогов (저당) |
| Аресты | seizing_count |
Количество арестов (압류) |
| Пробелы в страховке | insurance_gaps |
Периоды без страховки, формат "YYYYMM~YYYYMM" |
| ДТП | accidents[] |
Список ДТП с датой, типом, стоимостью запчастей, работ, покраски и выплатой |
| Сводка по ДТП | accident_summary |
Всего ДТП, ущерб своему/чужому авто |
| Смены номеров | car_changes[] |
Даты и замаскированные номера (в целях приватности часть знаков скрыта, например 34누XXXX) |
| Затопление | flood |
Частичное/полное затопление, дата |
| Угон | theft |
Количество, дата |
| Полная гибель | total_loss |
Количество, дата. Автомобиль признан полностью погибшим (тотальное уничтожение) |
| Смены владельцев | ownership |
Даты смен, общее число |
| Характер использования | usage |
Бизнес, госслужба, история кодов |
Обратите внимание: если в ответе нет ключа pledge_count, seizing_count или is_rental, это означает, что по данному автомобилю соответствующих сведений в источнике нет. Это не равнозначно отсутствию залогов или арестов — API честно разделяет эти состояния.
2. Заводские опции
Поле options показывает, какими заводскими опциями оснащён автомобиль: standard — базовые, tuning — тюнинг, etc — прочее. Опции приходят числовыми кодами (например, "001", "024").
Чтобы получить человекочитаемые названия, используйте справочник Union API:
GET /api/v2/cars/options/dictionary?market=encar
Ответ — карта код → {name_ru, name_en}. Справочник бесплатный, из баланса не списывается. Используйте name_ru для отображения, name_en — для англоязычного интерфейса.
3. Расчёт таможни
| Поле | Значение |
|---|---|
duty_value |
Пошлина |
duty_currency |
Валюта (EUR) |
customs_fee_rub |
Таможенный сбор, RUB |
excise_rub |
Акциз, RUB |
recycling_fee_rub |
Утильсбор, RUB |
nds_applies |
Применяется ли НДС |
vehicle_type |
combustion / electric / hybrid_other |
calculated_at |
Дата расчёта |
Блок может отсутствовать целиком — это норма, а не ошибка: расчёт выполнен не для каждого объявления.
Как это выглядит в запросе
Запросите поле extra в списке fields:
GET /api/v2/cars?market=encar&fields=id,brand,model,year,price,extra&limit=10
Значение extra приходит строкой с JSON — распарсите её:
import json
row = response["data"][0]
extra = json.loads(row["extra"])
risk = extra["risk_data"]
print(f"ДТП: {risk['accident_summary']['cnt']}")
print(f"Залоги: {risk.get('pledge_count', 'нет данных')}")
print(f"Пробелы в страховке: {risk['insurance_gaps']}")
Пример реальных данных
{
"risk_data": {
"is_rental": false,
"pledge_count": 0,
"seizing_count": 0,
"insurance_gaps": ["201909~202107", null, null, null, null],
"accidents": [
{"date": "2019-06-17", "type": "1", "part_cost": 586682,
"labor_cost": 518298, "painting_cost": 704598,
"insurance_benefit": 1590000}
],
"accident_summary": {"cnt": 4, "my_car_cnt": 4, "my_car_cost": 5793633,
"other_car_cnt": 2, "other_car_cost": 5225224},
"car_changes": [{"date": "2011-09-08", "plate_no": "34누XXXX"}],
"flood": {"total_loss_cnt": 0, "partial_loss_cnt": 0},
"theft": {"cnt": 0},
"total_loss": {"cnt": 0},
"ownership": {"changes": ["2025-11-13", "2023-12-28"], "change_cnt": 2},
"usage": {"type_code": "2", "is_business": false,
"is_government": false, "use_history": ["2"]}
},
"options": {
"type": "CAR",
"standard": ["001", "004", "005"],
"tuning": ["024"],
"etc": []
}
}
Что здесь важно:
- 4 ДТП, из них 4 с ущербом своему авто и 2 — чужому.
- Пробел в страховке с сентября 2019 по июль 2021 — почти 2 года без полиса.
- 2 смены владельца, последняя — ноябрь 2025.
- Не в прокате, не в залоге, не под арестом, не затоплен, не угнан, не признан полностью погибшим.
Это машина с историей, но без критических рисков. Решение о покупке — за вами.
Как интерпретировать данные (и чего не делать)
null≠false≠0. Если ключаpledge_countнет — это «нет данных», а не «нет залогов». Не показывайте «0 залогов» там, где данных просто нет.is_rental— это прокат, а не залог. Не путайте сpledge_count/seizing_count.type_codeвusage— не используйте. Семантика не документирована. Опирайтесь на флагиis_businessиis_government.my_car_cnt + other_car_cnt ≠ cnt. Одно ДТП может попасть в обе категории. Не выводите одну величину из другой.- Экранируйте строковые поля (
etc,plate_no) перед вставкой в HTML — данные приходят из внешних источников. total_loss— это полная гибель. Автомобиль признан тотально уничтоженным. Не путайте с крупным ДТП или дорогим ремонтом.first_seen_at— служебная метка, не для показа в карточке.
Что это даёт бизнесу
- Собственная база данных. Скачайте все интересующие автомобили через API, разверните их у себя и фильтруйте по любым параметрам: история ДТП, залоги, пробег, комплектация, расчёт таможни. Данные всегда под рукой, без повторных запросов к источнику.
- Фильтрация до покупки. Отсекайте машины с ДТП, залогами, затоплением, полной гибелью ещё на этапе поиска.
- Торг с продавцом. Данные о стоимости ремонта — аргумент для снижения цены.
- Оценка ликвидности. Машина с 4 владельцами и пробелом в страховке продаётся хуже.
- Скорость. Ручной сбор истории по одному авто занимает часы. API отдаёт всё за секунды.
Как начать
- Запросите демо-доступ к Union API.
- Укажите
fields=...,extraв запросе к рынкуencar. - Распарсите
extraи выведите risk-данные в интерфейсе. - Используйте справочник опций, чтобы узнать, какие заводские опции есть у автомобиля.
Полное описание структуры поля extra — в справочнике по полю extra, список эндпоинтов — в документации API. Нужен ключ — зарегистрируйтесь.
Есть вопросы по интеграции? Напишите нам — поможем настроить выборку и интерпретацию risk-данных.