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

Главная → Документация → Score: ограничения и розыск

Score: ограничения и розыск

Запреты на регистрационные действия (тип, инициатор, регион, основание), розыск, статус записи, теххарактеристики и периоды владения - по VIN или номеру кузова.

Хост api.avtovincod.ru Метод GET Формат JSON Авторизация Bearer Ответ до 45 сек

Аутентификация

Единый API-токен для всех API выдаётся сразу после регистрации в личном кабинете. Передавайте его в заголовке:

Authorization: Bearer ВАШ_ТОКЕН

Эндпоинты

Проверка по VIN

GET https://api.avtovincod.ru/score?vin=Z94K241BBJR061674
Authorization: Bearer ВАШ_ТОКЕН

Проверка по номеру кузова

GET https://api.avtovincod.ru/score-body?body=LS1510005059
Authorization: Bearer ВАШ_ТОКЕН
ПараметрОписание
vinОбязательный для /score. VIN, 17 символов.
bodyОбязательный для /score-body. Номер кузова: 5-16 символов, латиница/цифры/дефис (I, O, Q допускаются).
Обработка асинхронная на стороне источника: ответ может занять до 100 секунд. Ставьте таймаут клиента 120 секунд и не разрывайте соединение раньше. Цена и лимиты у обоих эндпоинтов общие.

Как читать ответ

ОтветЧто это значитПлатно
success 1, found 1Данные получены: запись о регистрации, ограничения, розыск.да
success 1, found 0Проверка выполнена, VIN в базе ГИБДД не найден. Ограничения и розыск по такой машине проверить нельзя.да
success 0Проверка не выполнена или источник не дал данных. Повторите позже.нет
HTTP 4xx, success 0, codeОшибка запроса (токен, формат, баланс, лимит), см. коды ошибок.нет

Для решения используйте блок status как итоговые флаги, детали - в restrictions и searches (пустой массив значит записей нет). Поле found добавлено 08.10.2026, остальные поля не менялись.

Пример 1. Данные получены

{
  "success": 1,
  "found": 1,
  "record": {
    "vin": "KMHFC41DP9A378503",
    "model": "HYUNDAI TG 3.3 GLS AT",
    "year": "2008",
    "color": "ЧЕРНЫЙ",
    "category": "B",
    "engineVolume": "3342",
    "powerHp": "235",
    "powerKwt": "173",
    "maxWeight": "2220",
    "weightWithoutLoading": "1750",
    "recordStatus": "действующая",
    "lastRegAction": "Изменение собственника",
    "ownershipPeriods": [
      { "personType": "Юридическое лицо", "from": "2009-12-30", "to": "2017-02-20" },
      { "personType": "Физическое лицо",  "from": "2017-02-20", "to": null }
    ]
  },
  "restrictions": [
    {
      "restriction_name": "Запрет на регистрационные действия",
      "region": "Ленинградская область",
      "organization_name": "Судебный пристав",
      "reasons": "Документ: 1234 от 17.06.2025",
      "enforcement_number": "203186/25/47023-ИП",
      "enforcement_date": "2025-06-17",
      "osp_address": "188300, Россия, ..."
    }
  ],
  "searches": [],
  "status": { "restricted": true, "wanted": false, "spec_wanted": false }
}

Поля, которых нет в базе для этой машины (номера и даты СТС и ПТС, номер двигателя и др.), приходят со значением null: ключи остаются на месте.

За что запрет и сколько платить. У запрета от приставов есть номер исполнительного производства enforcement_number. Передайте его в метод Долги у приставов: GET /enforcement?number=12345/24/77001-ИП - придут вид долга (штраф ГИБДД, налог, кредит), сумма, взыскатель и можно ли оплатить онлайн. В тестовом ответе номер 00000/00/00000-ИП: цепочку можно проверить бесплатно.

Пример 2. VIN не найден в базе ГИБДД

Проверка выполнена, ответ тарифицируется.

{
  "success": 1,
  "found": 0,
  "message": "VIN не найден в базе ГИБДД",
  "record": null,
  "restrictions": [],
  "searches": [],
  "status": { "restricted": false, "wanted": false, "spec_wanted": false }
}

Пример 3. Проверка не выполнена

Источник не ответил или не дал данных. Деньги не списываются, повторите запрос позже.

{ "success": 0 }

Коды ошибок

HTTP · codeЧто означает
400 · VIN_INVALID / BODY_INVALIDНеверный формат идентификатора.
403 · SCORE_NOT_ALLOWEDScore не подключён для токена - запросите доступ в кабинете.
401 · NO_TOKEN / TOKEN_INVALIDТокен не передан, неверен или деактивирован - возьмите актуальный в кабинете.
402 · INSUFFICIENT_BALANCEНедостаточно средств - пополните баланс в кабинете (раздел «Платежи»).
403 · IP_NOT_ALLOWEDIP не входит в ваш белый список (если он настроен).
429 · RATE_LIMIT / RATE_LIMIT_IPПревышена частота запросов в минуту - повторите через минуту.
503 · SERVICE_UNAVAILABLEИсточник временно недоступен - повторите позже, запрос не тарифицирован.
429 · SCORE_LIMIT_DAY / _MONTH / _YEARИсчерпан лимит Score - остатки в кабинете.

Пример на cURL

curl -s --max-time 120 "https://api.avtovincod.ru/score?vin=Z94K241BBJR061674" \\
  -H "Authorization: Bearer ВАШ_ТОКЕН"

Примеры кода: PHP, Python, JavaScript, Go, Java, C#, Ruby, 1С

Примеры готовы к запуску: токен берётся из переменной окружения AVC_TOKEN, а в запросе стоит тестовое значение (vin=X7TEST00000000001). По тестовым значениям приходит ответ-образец по схеме метода: бесплатно, без списания и даже при нулевом балансе, с полем "testMode": true. Так интеграцию можно собрать и проверить до первого платного запроса. Все тестовые значения.

curl -s --max-time 120 -G "https://api.avtovincod.ru/score" \
  --data-urlencode "vin=X7TEST00000000001" \
  -H "Authorization: Bearer $AVC_TOKEN"
<?php
$url = 'https://api.avtovincod.ru/score?' . http_build_query(['vin' => 'X7TEST00000000001']);
$ch  = curl_init($url);
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 120,
    CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('AVC_TOKEN')]]);
$d = json_decode(curl_exec($ch), true);
echo $d['success'] ? json_encode($d, JSON_UNESCAPED_UNICODE) : $d['code'] . ': ' . $d['error'];
import os, requests

r = requests.get("https://api.avtovincod.ru/score", params={"vin": "X7TEST00000000001"},
                 headers={"Authorization": "Bearer " + os.environ["AVC_TOKEN"]}, timeout=120)
d = r.json()
print(d if d.get("success") else f'{d["code"]}: {d["error"]}')
// Node.js 18+, файл .mjs (await на верхнем уровне)
const url = "https://api.avtovincod.ru/score?" + new URLSearchParams({ vin: "X7TEST00000000001" });
const res = await fetch(url, { headers: { Authorization: `Bearer ${process.env.AVC_TOKEN}` },
                               signal: AbortSignal.timeout(120000) });
const d = await res.json();
console.log(d.success ? d : `${d.code}: ${d.error}`);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
	"os"
	"time"
)

func main() {
	q := url.Values{}
	q.Set("vin", "X7TEST00000000001")
	req, _ := http.NewRequest("GET", "https://api.avtovincod.ru/score?"+q.Encode(), nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("AVC_TOKEN"))
	resp, err := (&http.Client{Timeout: 120 * time.Second}).Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(resp.StatusCode, string(body))
}
// Java 11+
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.*;
import java.nio.charset.StandardCharsets;
import java.time.Duration;

public class AvtoVinCod {
    public static void main(String[] args) throws Exception {
        String q = "vin=" + URLEncoder.encode("X7TEST00000000001", StandardCharsets.UTF_8);
        HttpRequest req = HttpRequest.newBuilder(URI.create("https://api.avtovincod.ru/score?" + q))
            .header("Authorization", "Bearer " + System.getenv("AVC_TOKEN"))
            .timeout(Duration.ofSeconds(120)).GET().build();
        HttpResponse<String> resp = HttpClient.newHttpClient()
            .send(req, HttpResponse.BodyHandlers.ofString());
        System.out.println(resp.statusCode() + " " + resp.body());
    }
}
// .NET 6+
using System.Net.Http.Headers;

using var http = new HttpClient { Timeout = TimeSpan.FromSeconds(120) };
http.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("AVC_TOKEN"));
var url = "https://api.avtovincod.ru/score?" + "vin=" + Uri.EscapeDataString("X7TEST00000000001");
var resp = await http.GetAsync(url);
Console.WriteLine((int)resp.StatusCode + " " + await resp.Content.ReadAsStringAsync());
require "net/http"
require "json"

uri = URI("https://api.avtovincod.ru/score")
uri.query = URI.encode_www_form(vin: "X7TEST00000000001")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer #{ENV["AVC_TOKEN"]}"
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true, read_timeout: 120) { |h| h.request(req) }
d = JSON.parse(res.body)
puts d["success"] == 1 ? d : "#{d["code"]}: #{d["error"]}"
Токен = "ВАШ_ТОКЕН";
Соединение = Новый HTTPСоединение("api.avtovincod.ru", 443, , , , 120, Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос("/score?" + "vin=" + КодироватьСтроку("X7TEST00000000001", СпособКодированияСтроки.КодировкаURL));
Запрос.Заголовки.Вставить("Authorization", "Bearer " + Токен);
Ответ = Соединение.Получить(Запрос);

Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку("UTF-8"));
Данные = ПрочитатьJSON(Чтение);
Чтение.Закрыть();

Если Данные.success = 1 Тогда
    Сообщить("Проверка выполнена");
Иначе
    Сообщить(Данные.code + ": " + Данные.error);
КонецЕсли;

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

Примеры ответов: успешный, ошибка, источник недоступен

Успешный запрос

GET https://api.avtovincod.ru/score?vin=Z94K241BBJR061674
Authorization: Bearer ВАШ_ТОКЕН

HTTP 200, success: 1. Списание по тарифу метода, сумма и остаток в блоке billing (цифры в примере условные).

{
  "success": 1,
  "found": 1,
  "record": {
    "vin": "Z94K241BBJR061674",
    "bodyNumber": null,
    "model": "LADA GFL110 LADA VESTA",
    "year": "2021",
    "color": "БЕЛЫЙ",
    "category": "B",
    "engineVolume": "1596",
    "powerHp": "106",
    "powerKwt": "78",
    "maxWeight": "1670",
    "weightWithoutLoading": "1230",
    "recordStatus": "действующая",
    "lastRegAction": "Изменение собственника",
    "ownershipPeriods": [
      {
        "personType": "Юридическое лицо",
        "from": "2021-06-01",
        "to": "2023-04-10"
      },
      ...
    ]
  },
  "restrictions": [
    {
      "restriction_name": "Запрет на регистрационные действия",
      "region": "г. Москва",
      "organization_name": "Судебный пристав",
      "reasons": "Документ: 0000 от 01.09.2026",
      "enforcement_number": "00000/00/00000-ИП",
      "enforcement_date": "2026-09-01",
      "osp_address": "г. Москва"
    }
  ],
  "searches": [],
  "status": {
    "restricted": true,
    "wanted": false,
    "spec_wanted": false
  },
  "billing": {
    "charged": 14,
    "currency": "RUB",
    "billed": true,
    "balance": 986,
    "requestId": 1234567
  }
}

Бесплатная проба без списания: https://api.avtovincod.ru/score?vin=X7TEST00000000001 вернёт ответ-образец по этой же схеме с полем testMode: true и charged: 0.

Неуспешный запрос

GET https://api.avtovincod.ru/score?vin=Z94K241BBJR0616
Authorization: Bearer ВАШ_ТОКЕН

Ошибка в параметрах: HTTP 400, код BAD_VIN, текст ошибки можно показать пользователю. Бесплатно.

{
  "success": 0,
  "error": "VIN должен содержать 17 символов, у вас 15. Проверьте ввод.",
  "code": "BAD_VIN"
}

Источник недоступен

GET https://api.avtovincod.ru/score?vin=Z94K241BBJR061674
Authorization: Bearer ВАШ_ТОКЕН

Данные от источника не получены: HTTP 200, success: 0. Бесплатно, повторите запрос позже. Запрос записан в историю с charged: 0.

{
  "success": 0,
  "billing": {
    "charged": 0,
    "currency": "RUB",
    "billed": false,
    "balance": 986,
    "requestId": 1234569
  }
}

Тарификация

Списание - при success: 1: когда данные получены (found: 1) и когда проверка выполнена, но VIN в базе ГИБДД нет (found: 0). Ответ success: 0 и ошибки не тарифицируются. Актуальная цена, баланс и вся статистика запросов с телами ответов - в личном кабинете.

В ответ добавляется блок billing: сколько списано за этот запрос (charged, в рублях), платный ли он (billed), остаток баланса после запроса (balance) и номер в истории запросов (requestId). Те же данные в заголовках X-Charged, X-Balance, X-Request-Id. Нет блока - запрос не списан. Подробнее о блоке billing.

Уже подключены? Ничего менять не нужно.

MCP-сервер для ИИ-ассистентов

Подключите проверки к ИИ-ассистенту: Claude, Cursor, VS Code и другим клиентам с поддержкой MCP (Model Context Protocol). Ассистент сам вызывает нужный метод по вашему токену, и проверку можно запросить обычными словами: "проверь залог и ограничения по VIN", "есть ли штрафы по СТС". Удобно менеджерам автосалона, лизинга и страховой без программиста, а разработчику помогает быстро собрать прототип интеграции.

Попробуйте прямо сейчас - регистрация за минуту, токен сразу, пополнение картой. Проверить можно и без кода: в кабинете есть консоль проверки.

Создать аккаунт