Личный кабинет

Главная → Блог → История регистрации авто через API: как считать владельцев и периоды владения

История регистрации

История регистрации авто через API: как считать владельцев и периоды владения

· Редакция AvtoVinCod · 8 мин чтения

История регистрации авто через API: как считать владельцев и периоды владения

Историю регистрации автомобиля получают запросом GET /vin?vin= (или /body?body= для авто без VIN): в ответе периоды владения, характеристики ТС, данные ПТС и СТС. Если есть только госномер, сначала вызывают /gos2vin?plate= и получают VIN, затем историю. Для оценки авто достаточно посчитать периоды владения и сверить их с историей госномеров через /plate-history.

Дальше - как это выглядит в работе: что именно приходит, как из ответа достать число владельцев, где логика ломается и сколько всё стоит.

Что входит в историю регистрации и зачем она бизнесу

Это данные ГИБДД о том, как автомобиль жил в учёте: периоды владения (от даты постановки на учёт до снятия или перехода к следующему владельцу), тип владельца, характеристики ТС, а также сведения о ПТС и СТС. По числу записей и их длительности сразу видно, сколько было хозяев и как быстро машина меняла руки.

На эту информацию опираются разные команды. Трейд-ин и выкуп считают риск ликвидности: пять владельцев за три года - повод занизить оценку или запросить дополнительные проверки. Лизинговая компания сверяет заявленную историю с реальной. Страховая смотрит на аномалии перед расчётом. Маркетплейсы и доски объявлений модерируют карточки: в объявлении "один хозяин", а в истории четыре периода - расхождение, которое видно автоматически.

Чего в истории регистрации нет. Она не покажет залог, ограничения на регистрационные действия, розыск, ДТП и штрафы. Для этого есть отдельные методы: реестр залогов ФНП, Score, ДТП по базе ГИБДД, штрафы. Как собрать их в один сценарий, описано в материале полный отчёт по VIN для бизнеса.

Про запрос "бесплатно"

Периодически спрашивают, можно ли получить историю регистрации бесплатно. Честный ответ: реальные данные ГИБДД через API платные, за каждую выполненную проверку идёт списание. Бесплатно работает тестовые значения: VIN X7TEST00000000001, госномер Т000ТТ00. Ответ приходит по схеме настоящего метода, с полем "testMode": true, и ничего не списывается. На них удобно отлаживать интеграцию до первого рубля.

Сценарий 1: история по VIN

Базовый вызов - API истории регистрации. Хост api.avtovincod.ru, метод GET, токен в заголовке Authorization.

curl -H "Authorization: Bearer ВАШ_ТОКЕН" \
 "https://api.avtovincod.ru/vin?vin=X7TEST00000000001"

То же на Python:

import requests

r = requests.get(
 "https://api.avtovincod.ru/vin",
 params={"vin": "X7TEST00000000001"},
 headers={"Authorization": "Bearer ВАШ_ТОКЕН"},
 timeout=60,
)
data = r.json()
if data.get("success") == 1:
 print(data)
else:
 print(data.get("code"), data.get("error"))

Точные названия полей и вложенность смотрите в документации и в тестовом ответе: не стоит зашивать структуру по памяти. Логика разбора у всех одинаковая. В ответе есть массив периодов владения, у каждого периода даты начала и окончания и тип владельца (физическое или юридическое лицо). Отдельно идут характеристики ТС и блок с данными ПТС и СТС. Персональных данных владельцев нет: только тип и периоды.

Как посчитать владельцев и срок последнего владения

Число владельцев - это длина массива периодов. Но есть нюанс: подряд идущие записи иногда относятся к одному и тому же лицу (перерегистрация из-за замены документов, смены региона). Поэтому в продуктовой логике я бы хранил два числа: сырое количество записей и "эффективное" количество, где вы сами решаете, что считать новым владельцем.

Срок последнего владения - разница между сегодняшней датой и началом последнего открытого периода. Если последний период закрыт, а нового нет, машина снята с учёта, и это отдельный флаг для вашего процесса. Средний срок владения - сумма длительностей, делённая на количество периодов. Для открытого периода берите текущую дату.

from datetime import date

def summarize(periods):
 today = date.today()
 spans = []
 for p in periods:
 start = date.fromisoformat(p["start"])
 end = date.fromisoformat(p["end"]) if p.get("end") else today
 spans.append((end - start).days)
 return {
 "owners": len(spans),
 "last_days": spans[-1] if spans else 0,
 "avg_days": sum(spans) // len(spans) if spans else 0,
 }

Имена ключей start и end здесь условные: подставьте реальные из ответа. Порядок записей тоже проверьте на тестовом ответе, а в коде лучше явно сортировать по дате начала.

Сценарий 2: у вас только госномер

Так бывает в выкупе и на площадках: менеджер видит машину на парковке, клиент прислал фото. VIN нет, номер есть. Цепочка из двух вызовов: сначала VIN по госномеру (GET /gos2vin?plate=), затем /vin?vin= с полученным значением. Вместе с VIN метод возвращает номер кузова или шасси, СТС, марку, модель, год, мощность и признак такси - часть этого можно сразу сверить с тем, что заявил продавец. Подробнее про такую схему - в материале проверка по госномеру для автосалонов.

Бывает, что VIN в ответе пустой: у многих японских машин и других авто, ввезённых без привычного VIN, идентификатором служит номер кузова. Тогда используйте GET /body?body=. Ответ по смыслу тот же, меняется только ключ запроса. Если /gos2vin вернул номер кузова вместо VIN, просто передайте его в /body.

Обратная задача тоже встречается: в базе только VIN, а менеджеру нужен актуальный номер, чтобы найти машину или сделать проверку по номеру. Для этого есть госномер по VIN: GET /vin2gos?vin=.

История госномера: смена номеров как сигнал

Периоды владения говорят, кто и когда. Смена номеров добавляет второй слой: как часто машину перерегистрировали и в каких регионах. Метод история госномеров по VIN (GET /plate-history?vin= или ?body=) возвращает список номеров от последнего к первому. Дат в нём нет, и это важно помнить: привязать номер к конкретному периоду точно нельзя, можно лишь оценить порядок.

Ответ приходит за доли секунды. Тарификация необычная: списание только если найдено два номера и больше (found >= 2). Один номер или ни одного - found: 0, бесплатно. То есть платите вы только тогда, когда смена номеров реально была.

Как это читать вместе с владельцами. Четыре периода владения и три номера - обычная картина: номера меняются вместе с хозяевами. Два периода и пять номеров уже странно: либо многократные перерегистрации, либо замены после утери, либо попытки "освежить" историю. Номера из разных регионов подряд при коротких периодах - классический признак перепродажи через цепочку посредников. Сам по себе сигнал не приговор, но повод запросить дополнительные проверки.

Правила оценки: что считать подозрительным

Универсального порога нет, он зависит от сегмента. Для массовых иномарок возрастом 5-7 лет три владельца - нормально. Для двухлетней машины три владельца - уже вопрос. Мои рабочие ориентиры, которые вы подберёте под свою статистику:

Любую историю полезно сверять с внешними данными. История объявлений о продаже показывает, сколько раз машину выставляли, с какой ценой и пробегом. Если в объявлениях она мелькала шесть раз за год, а владельцев по ГИБДД двое, значит, продавали, но не переоформляли: типичная схема перекупов. А история техосмотра и пробег даёт зафиксированные ЕАИСТО значения, с которыми сравнивают одометр.

Скоринг на стороне бизнеса

score = 0
if owners > max(2, car_age_years / 2): score += 2
if short_periods >= 2: score += 2 # периоды < 6 мес.
if plates_count > owners + 1: score += 1
if has_legal_entity_in_middle: score += 1
if offers_count_year >= 4 and owners <= 2: score += 2

decision = "ok" if score <= 2 else "manual" if score <= 4 else "reject_or_discount"

Веса условные, их надо калибровать на ваших сделках: возьмите последние 200-300 выкупленных авто, посмотрите, какие из них потом тяжело продавались, и подстройте пороги.

Когда нужен Score вместо базовой истории

Если на том же шаге вам нужно знать про запреты на регистрационные действия и розыск, берите не два вызова, а один: история регистрации с ограничениями и розыском (GET /score?vin= или /score-body?body=). В ответе периоды владения, запреты (тип, основание, регион, исполнительное производство) и розыск. Поле found: 1 - данные есть, 0 - VIN не найден в базе ГИБДД. Для выкупа и лизинга, где ограничение критичнее числа хозяев, это обычно правильный выбор по умолчанию. Для модерации объявлений, где достаточно количества владельцев, хватит базовой истории.

Интеграция в процесс и стоимость

Обработка ответа сводится к нескольким правилам. success: 1 - проверка выполнена и тарифицируется. success: 0 - не выполнена или данных нет, бесплатно. Ошибки приходят в формате {"success":0,"error":"...","code":"..."}: 400 - неверный формат VIN или номера (не повторяйте запрос, исправьте входные данные), 402 - не хватает баланса (алерт финансистам или в мониторинг), 503 - источник недоступен (не тарифицируется, повторите с паузой). Для методов с found проверяйте его отдельно: success: 1 и found: 0 для реестровых проверок означает "проверка прошла, записей нет".

Списание видно в блоке billing (charged, balance, requestId) и заголовках X-Charged, X-Balance, X-Request-Id. Нет блока - запрос не списан. Логируйте requestId: по нему удобно разбирать спорные случаи.

МетодЦена за запрос
История регистрации (/vin, /body)12 ₽
VIN по госномеру (/gos2vin)8 ₽
Госномер по VIN (/vin2gos)6 ₽
История госномеров (/plate-history)1,5 ₽, только при found >= 2
История рег., ограничения и розыск (/score)20 ₽

Типичная цепочка "госномер - VIN - история - история номеров" стоит 8 + 12 + 1,5 = 21,5 ₽ за машину (последний шаг только когда номеров больше одного). Актуальные цены лежат в prices.json.

Подключение без договора: регистрация в кабинете, токен сразу, пополнение от 100 ₽ банковской картой. Юрлица могут работать по счёту с актом и актом сверки в конце месяца. Депозит действует 90 дней. Сначала отладьте всё на тестовых значениях, они бесплатны.

Кэширование и агенты

История регистрации меняется только с новыми регистрационными действиями, поэтому кэшировать её на несколько суток вполне разумно, особенно если один и тот же VIN прилетает из разных каналов. Для сделок в моменте (выдача кредита, подписание договора) запрос лучше повторить свежим: машина могла уйти на перерегистрацию вчера. Ключ кэша - VIN или номер кузова, а не госномер: номер может смениться.

Если у вас LLM-агент или автоматизация без собственного кода интеграции, подключите MCP-сервер https://api.avtovincod.ru/mcp (Streamable HTTP, авторизация Bearer-токеном). Среди 32 инструментов есть registration_history; вызов тарифицируется так же, как обычный запрос к методу.

Частые вопросы

Можно ли проверить историю регистрации авто бесплатно?

Реальные данные ГИБДД через API платные: списание идёт за выполненную проверку, история регистрации стоит 12 ₽. Бесплатно работают тестовые значения (VIN X7TEST00000000001, госномер Т000ТТ00): ответ приходит по схеме метода с полем testMode: true, баланс не списывается. Токен нужен в любом случае.

Как узнать количество владельцев автомобиля через API?

Запросите GET /vin?vin= и посчитайте периоды владения в ответе. Учтите, что соседние записи иногда относятся к одному лицу, поэтому в скоринге удобно хранить и сырое число записей, и число, скорректированное вашими правилами.

Как узнать историю госномера автомобиля?

Используйте GET /plate-history?vin= или ?body=. Метод возвращает список госномеров от последнего к первому, без дат. Плата 1,5 ₽ взимается только если найдено два номера и больше, при одном номере или отсутствии результата запрос бесплатный.

Можно ли проверить историю регистрации по госномеру без VIN?

Да, в два шага. Сначала GET /gos2vin?plate= возвращает VIN (или номер кузова), затем этот идентификатор передаётся в /vin или /body. Суммарно получается 8 + 12 = 20 ₽ за машину.

Что делать, если у авто нет VIN, например у японского?

Используйте номер кузова: GET /body?body= для истории регистрации или /score-body?body= для истории с ограничениями и розыском. Номер кузова можно получить и из ответа /gos2vin по госномеру.

Чем история регистрации отличается от метода Score?

Базовая история даёт периоды владения, характеристики ТС, данные ПТС и СТС. Score добавляет запреты на регистрационные действия (тип, основание, регион, исполнительное производство) и розыск; стоит 20 ₽ против 12 ₽. Если ограничения важны для решения, дешевле и проще взять Score сразу одним вызовом.

Показывает ли API персональные данные владельцев?

В истории регистрации указаны периоды владения и тип владельца (физическое или юридическое лицо), без ФИО и других персональных данных частных лиц.

Проверка автомобилей через API

Без договора и долгих согласований: пополните баланс от 100 ₽ и проверяйте реальные машины. Тестовые значения бесплатно, документация с примерами на популярных языках.

Получить токен   Документация API

Читайте также