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

Главная → Документация → AutoCheck: оценка и история авто из США и Канады

AutoCheck: оценка и история авто из США и Канады

Отчёт AutoCheck по VIN автомобиля из США или Канады: оценка AutoCheck Score в сравнении с похожими машинами, ДТП и их тяжесть, особые отметки в титуле (Salvage и другие), страховые случаи, отзывные кампании, пробеги и вся хронология по владельцам. Приходит оригинал PDF на английском, тот же отчёт на русском страницей и разобранный JSON на русском. Хорошо дополняет отчёт CARFAX: базы у них разные.

GET /usa-scoreпо VINасинхронно, 5-15 минутPDF на английском и отчёт на русском по ссылкенет данных - бесплатно

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

Токен передаётся заголовком Authorization: Bearer <токен> или параметром ?token=. Токен один для всех API, он в личном кабинете.

Эндпоинт

GET https://api.avtovincod.ru/usa-score

Можно и POST с теми же параметрами в теле формы.

Параметры

ПараметрОписание
vinVIN, 17 символов (латиница и цифры, без I, O, Q) - заказ отчёта
taskномер задачи (taskId из ответа на заказ) - опрос готовности
brandнеобязательно: марка латиницей. Сервис определяет её по VIN сам; не определилась - отчёт заказывается без неё. brand=- - заказать без марки

Марку сервис определяет по VIN сам (коды производителей NHTSA и наша база). Если определить её не удалось, отчёт заказывается без марки: на результат это не влияет, передавать brand не нужно. Какую марку подставим, можно узнать бесплатно: GET /vv-brand?vin=VIN&method=usa_score (ответ: brand, required, candidates).

Как работает: заказ, номер задачи, опрос

Отчёт формируется 5-15 минут (иногда дольше), поэтому метод асинхронный, как ДТП по базе ГИБДД:

  1. Заказ: GET /usa-score?vin=VIN. Ответ сразу: status: "processing" и номер задачи taskId. Бесплатно.
  2. Опрос: GET /usa-score?task=taskId не чаще, чем через pollAfterSec секунд (обычно 30). Пока отчёт готовится - снова processing и оценка eta_sec. Опросы бесплатны.
  3. Готово: status: "done", ссылки на файлы отчёта в report.files и блок billing - деньги списываются один раз, в этот момент. Повторный опрос той же задачи отдаёт тот же ответ без нового списания.

Задачу не нужно держать открытой: отчёт досчитается на сервере, даже если вы перестали опрашивать, и будет ждать по taskId. Повторный заказ того же VIN, пока первый готовится, вернёт тот же taskId (второй раз не платите).

Проверка наличия данных перед заказом. Перед каждым заказом сервис бесплатно спрашивает источник, есть ли по VIN данные для этого отчёта, ничего передавать для этого не нужно. Данных нет: ответ приходит сразу, NOT_AVAILABLE с полем "precheck": true, без задачи и без списания. Источник проверки не ответил: отчёт заказывается как обычно.

У источника проверки очередь (не чаще одного запроса в 3 секунды). Если она занята, сервис сам ждёт и повторяет до 25 секунд, поэтому ответ на заказ иногда приходит через 20-30 секунд: ставьте таймаут HTTP-клиента не меньше 60 секунд. Не дождались - ответ 429 SERVICE_BUSY с полем retryAfterSec (и заголовком Retry-After): повторите тот же запрос через указанное число секунд, деньги не списаны. Узнать заранее, в каких отчётах по VIN есть данные, можно методом Наличие данных по VIN.

Пример запроса

curl -H "Authorization: Bearer $TOKEN" "https://api.avtovincod.ru/usa-score?vin=3VWJ17AT9HM628325"
# через 30 секунд и далее, пока status не станет done:
curl -H "Authorization: Bearer $TOKEN" "https://api.avtovincod.ru/usa-score?task=3f2b9c1e-7a4d-4e8b-9c21-5d6e7f8a9b0c"

Пример ответа

1. Заказ принят

{
  "success": 1,
  "status": "processing",
  "taskId": "3f2b9c1e-7a4d-4e8b-9c21-5d6e7f8a9b0c",
  "query": {
    "vin": "3VWJ17AT9HM628325"
  },
  "eta_sec": 600,
  "pollAfterSec": 30,
  "poll": "GET /usa-score?task=3f2b9c1e-7a4d-4e8b-9c21-5d6e7f8a9b0c"
}

2. Опрос: ещё готовится

{
  "success": 1,
  "status": "processing",
  "taskId": "3f2b9c1e-7a4d-4e8b-9c21-5d6e7f8a9b0c",
  "query": {
    "vin": "3VWJ17AT9HM628325"
  },
  "eta_sec": 420,
  "pollAfterSec": 30,
  "poll": "GET /usa-score?task=3f2b9c1e-7a4d-4e8b-9c21-5d6e7f8a9b0c",
  "note": "Отчёт получен, собираем все файлы."
}

3. Опрос: отчёт готов

{
  "success": 1,
  "status": "done",
  "found": 1,
  "taskId": "3f2b9c1e-7a4d-4e8b-9c21-5d6e7f8a9b0c",
  "query": {
    "vin": "3VWJ17AT9HM628325"
  },
  "report": {
    "code": "usa_score",
    "title": "AutoCheck: оценка и история авто из США и Канады",
    "vin": "3VWJ17AT9HM628325",
    "brand": "VW",
    "created_at": "2026-11-01 12:14:05",
    "files": [
      {
        "type": "pdf",
        "name": "usa_score_3VWJ17AT9HM628325.pdf",
        "size": 538112,
        "url": "https://api.avtovincod.ru/vv-file/Qm9kZXJfdGVzdF90b2tlbl8xMjM0NTY3"
      },
      {
        "type": "html",
        "name": "usa_score_3VWJ17AT9HM628325_ru.html",
        "size": 41870,
        "url": "https://api.avtovincod.ru/vv-file/UnVfdGVzdF90b2tlbl83NjU0MzIxMDk4"
      }
    ],
    "web_url": null,
    "text": null,
    "files_until": "2027-01-30",
    "data": {
      "schema": "autocheck",
      "lang": "ru",
      "vehicle": {
        "title": "2017 Volkswagen Beetle 1.8T SE / 1.8T SEL",
        "year": 2017,
        "make": "Volkswagen",
        "model": "Beetle 1.8T SE / 1.8T SEL",
        "vin": "3VWJ17AT9HM628325",
        "body": "Купе 2 дв.",
        "body_en": "Coupe 2D",
        "engine": "1.8 л, 4 цил., непосредственный впрыск, бензин",
        "engine_en": "1.8L I4 DI Gasoline",
        "class": "Легковой, субкомпактный",
        "class_en": "Car - Subcompact",
        "assembly_country": "Мексика",
        "assembly_country_en": "Mexico",
        "age_years": 9,
        "in_service": "2017-09-12",
        "owners": 2,
        "usage": "Личное",
        "usage_en": "Personal",
        "odometer_last": {
          "mi": 12925,
          "km": 20801,
          "date": "2020-09-03"
        }
      },
      "score": {
        "value": 66,
        "min": 69,
        "max": 85,
        "position": "below",
        "text": "Оценка 66 из 100; у похожих машин обычно 69-85: хуже, чем у похожих"
      },
      "summary": {
        "title_brands": [
          "Salvage (после тотальной гибели)"
        ],
        "title_brands_en": [
          "Salvage"
        ],
        "auction_issue": false,
        "damage": "severe",
        "insurance_loss": true,
        "open_recalls": 1,
        "lien": true,
        "odometer_issue": false,
        "buyback_eligible": false
      },
      "glance": [
        {
          "key": "title_brand",
          "title": "Особые отметки в титуле",
          "title_en": "State Title Brand",
          "status": "Есть особые отметки",
          "status_en": "TITLE BRAND REPORTED",
          "status_code": "problem",
          "details": [
            "Salvage (после тотальной гибели)"
          ],
          "details_en": [
            "Salvage"
          ]
        },
        {
          "key": "auction",
          "title": "Отметки и проблемы на аукционах",
          "title_en": "Auction Brand / Issues",
          "status": "Без проблем",
          "status_en": "NO ISSUE",
          "status_code": "ok",
          "details": [],
          "details_en": []
        },
        {
          "key": "accident",
          "title": "ДТП и повреждения",
          "title_en": "Accident / Damage",
          "status": "Тяжёлые",
          "status_en": "SEVERE",
          "status_code": "problem",
          "details": [
            "Есть повреждения"
          ],
          "details_en": [
            "Damage Reported"
          ]
        },
        {
          "key": "odometer",
          "title": "Проверка пробега",
          "title_en": "Odometer Check",
          "status": "Без проблем",
          "status_en": "NO ISSUE",
          "status_code": "ok",
          "details": [
            "Последний пробег: 12 925 (03.09.2020)"
          ],
          "details_en": [
            "Last reported odometer: 12,925 (09/03/2020)"
          ]
        }
      ],
      "accidents": [
        {
          "date": "2020-06-19",
          "type": "Столкновение",
          "type_en": "Collision",
          "severity": "Тяжёлые",
          "severity_en": "Severe",
          "severity_code": "severe"
        },
        {
          "date": "2020-07-08",
          "type": "Столкновение",
          "type_en": "Collision",
          "severity": "Лёгкие",
          "severity_en": "Minor",
          "severity_code": "minor"
        }
      ],
      "structural_damage": "Тяжёлые",
      "structural_damage_en": "Severe",
      "recalls": [
        {
          "date": "2024-11-01",
          "type": "Не указан",
          "type_en": "Unspecified",
          "nhtsa": null,
          "oem": "69GQ",
          "description": "Фронтальная подушка безопасности водителя",
          "description_en": "DRIVER FRONTAL AIRBAG",
          "status": "Способ устранения неизвестен",
          "status_en": "Remedy Unknown"
        }
      ],
      "service": {
        "items": [
          {
            "title": "Тормоза",
            "title_en": "Brakes Maintained",
            "text": "Замена тормозных колодок: 1. Последнее обслуживание тормозов: 17.09.2019",
            "text_en": "1 brake pad replacements Brake last maintained on 09/17/2019"
          }
        ]
      },
      "maintenance": [
        {
          "title": "ТО на 10000 миль",
          "title_en": "10000 Mile Service",
          "mi": 10000,
          "km": 16093,
          "due": null,
          "due_en": null,
          "items": [
            "Замена моторного масла и масляного фильтра",
            "Моторное масло: заливка",
            "Проверка толщины передних и задних колодок и состояния тормозных дисков"
          ],
          "items_en": [
            "Engine Oil, Draining and Replacing Oil Filter",
            "Engine Oil, Filling",
            "front and rear Brake Pad Thickness and Brake Rotor Condition, Checking"
          ]
        }
      ],
      "odometer": {
        "ok": true,
        "checks": [
          {
            "title": "Пробег по титулам штатов",
            "title_en": "State Title Odometer Check",
            "result": "Проблем не найдено",
            "result_en": "No issues reported"
          }
        ]
      },
      "history": [
        {
          "title": "Владелец 1",
          "title_en": "Owner 1",
          "year": 2017,
          "owner": 1,
          "location": "CA",
          "owned_from": "2017-09",
          "usage": "Личное",
          "usage_en": "Personal",
          "prep_date": null,
          "events": [
            {
              "date": "2017-09-28",
              "location": "SAN DIEGO, CA",
              "odometer_mi": null,
              "odometer_km": null,
              "source": "Регистрирующий орган (DMV)",
              "source_en": "Motor Vehicle Dept.",
              "details": [
                "Регистрация права собственности (титул)",
                "Регистрация или продление"
              ],
              "details_en": [
                "Title",
                "Registration Event/Renewal"
              ]
            },
            {
              "date": "2019-03-23",
              "location": "EL CAJON, CA",
              "odometer_mi": 3474,
              "odometer_km": 5591,
              "source": "Запись дилера",
              "source_en": "Dealer Record",
              "details": [
                "Машина в наличии у дилера"
              ],
              "details_en": [
                "Vehicle in Dealer Inventory"
              ]
            }
          ]
        },
        {
          "title": "Владелец 2",
          "title_en": "Owner 2",
          "year": 2019,
          "owner": 2,
          "location": "CA",
          "owned_from": "2019-04",
          "usage": "Личное",
          "usage_en": "Personal",
          "prep_date": null,
          "events": [
            {
              "date": "2020-06-19",
              "location": "IL",
              "odometer_mi": 12925,
              "odometer_km": 20801,
              "source": "Страховая компания",
              "source_en": "Auto Insurance Source",
              "details": [
                "Страховой случай: машину продал страховщик",
                "Выплата страхователю"
              ],
              "details_en": [
                "Reported as Insurance Loss - Vehicle Sold by Insurer.",
                "Claim Paid to Insured"
              ]
            },
            {
              "date": "2020-06-19",
              "location": "CA",
              "odometer_mi": null,
              "odometer_km": null,
              "source": "Страховая компания",
              "source_en": "Auto Insurance Source",
              "details": [
                "Машина признана тотальной гибелью"
              ],
              "details_en": [
                "Vehicle Reported as Total Loss"
              ]
            },
            {
              "date": "2020-06-19",
              "location": null,
              "odometer_mi": null,
              "odometer_km": null,
              "source": "Страховая компания",
              "source_en": "Auto Insurance Source",
              "details": [
                "Ущерб от столкновения"
              ],
              "details_en": [
                "Vehicle Loss Caused by Collision"
              ]
            }
          ]
        }
      ],
      "extra": [],
      "report_run": "11/01/2026 17:34:06 EST",
      "translated": true
    }
  },
  "billing": {
    "charged": 389,
    "currency": "RUB",
    "billed": true,
    "balance": 1611,
    "requestId": 1234567
  }
}

Что возвращает

ПолеЗначение
statusprocessing - отчёт готовится; done - готов; error - не сформирован (бесплатно)
taskIdномер задачи для опроса ?task=
eta_sec, pollAfterSecпримерно сколько ждать и через сколько секунд спросить снова
found1 - отчёт есть
report.files[]файлы отчёта: type (pdf, image, txt, html - страница отчёта, открывается в браузере), name, size в байтах, url - ссылка для скачивания
report.web_urlссылка на веб-версию отчёта, если она отдаётся для этого метода; иначе null. Поле есть всегда
report.textтекст отчёта, если источник прислал его текстом; иначе null
report.dataотчёт на русском в JSON: оценка, сводка, ДТП, отзывы, пробеги, хронология (ниже)
report.files_untilдо какой даты файлы можно скачать
report.brand, report.created_atмарка, по которой заказан отчёт, и время готовности

Файлы. Ссылки https://api.avtovincod.ru/vv-file/... открываются без токена (ссылка сама служит доступом, не публикуйте её), файл приходит с понятным именем usa_score_VIN.pdf. Срок хранения - 90 дней (files_until), потом ссылка отвечает 410 FILE_GONE: сохраните файлы к себе. Параметр ?dl=1 - скачать, а не открыть в браузере. PDF - оригинал источника, мы его не меняем; страница usa_score_VIN_ru.html - тот же отчёт на русском.

Отчёт на русском: report.data и страница

Кроме оригинала PDF на английском приходят тот же отчёт на русском страницей (файл html, имя usa_score_VIN_ru.html) и в JSON (report.data). Рядом с каждым переведённым значением - оригинал с окончанием _en. Пробег - в милях и километрах, даты - ГГГГ-ММ-ДД.

ПолеЗначение
schema, lang"autocheck" и "ru"
vehicleмашина: title, vin, year, make, model, body, engine, class, assembly_country, age_years, in_service (начало эксплуатации), owners, usage, odometer_last (mi, km, date)
scoreоценка AutoCheck: value, диапазон похожих машин min-max, position (below - хуже похожих, within, above), text - пояснение
summaryглавное одним взглядом: title_brands[] (особые отметки в титуле, например Salvage), damage (none, minor, moderate, severe, reported), insurance_loss, open_recalls, lien (залог), odometer_issue, auction_issue, buyback_eligible; null - в отчёте нет сведений
glance[]плитки сводки отчёта: key, title, status, status_code (ok, problem, warning, na, unknown), details[]
accidents[], structural_damageДТП: date, type, severity, severity_code; повреждение силовой структуры
recalls[]открытые отзывные кампании: date, type, nhtsa, oem, description, status
service.items[], odometerобслуживание по разделам; проверки пробега (ok, checks[])
maintenance[]рекомендованное ТО производителя по последнему пробегу (если есть в отчёте): title («ТО на 144000 миль»), mi, km, due (например «Ещё не наступило»), items[] - работы. Это график производителя, не история машины
history[]хронология по владельцам: title, owner, year, location, owned_from, usage, events[] - date, location, odometer_mi, odometer_km, source, details[]
extra[]сведения, которых нет в разделах выше (новое в отчётах AutoCheck): label, value
translatedtrue - переведено всё; false - часть фраз оставлена на английском

Каждое значение сверено с текстом PDF. Если разобрать отчёт не удалось, поля report.data и страницы на русском нет, а PDF приходит как обычно. При расхождении перевода и оригинала верен оригинал (PDF).

Коды ошибок

Все ошибки бесплатны.

КодЗначение
NO_TOKEN, TOKEN_INVALIDтокен не передан или недействителен
NOT_ALLOWEDAPI не подключён вашему токену
INSUFFICIENT_BALANCEнедостаточно средств: при заказе учитываются и отчёты, которые уже готовятся
RATE_LIMIT, TOO_MANY_PARALLELслишком часто или слишком много отчётов готовится одновременно (до 20)
INPUT_REQUIRED, BAD_VINне передан VIN или он неверный
BAD_TASK, TASK_NOT_FOUNDномер задачи неверный, чужой или от другого метода
NOT_AVAILABLEотчёт не сформирован: в источнике нет данных по этому VIN
SERVICE_BUSY (429)очередь проверки наличия данных занята: повторите через retryAfterSec секунд
PROVIDER_TIMEOUTотчёт не получен за 6 часов; закажите позже
PROVIDER_FAIL, SERVICE_UNAVAILABLEсбой источника или сервис временно недоступен; повторите позже

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

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

curl -s --max-time 90 -G "https://api.avtovincod.ru/usa-score" \
  --data-urlencode "vin=X7TEST00000000001" \
  -H "Authorization: Bearer $AVC_TOKEN"
<?php
$url = 'https://api.avtovincod.ru/usa-score?' . http_build_query(['vin' => 'X7TEST00000000001']);
$ch  = curl_init($url);
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 90,
    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/usa-score", params={"vin": "X7TEST00000000001"},
                 headers={"Authorization": "Bearer " + os.environ["AVC_TOKEN"]}, timeout=90)
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/usa-score?" + new URLSearchParams({ vin: "X7TEST00000000001" });
const res = await fetch(url, { headers: { Authorization: `Bearer ${process.env.AVC_TOKEN}` },
                               signal: AbortSignal.timeout(90000) });
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/usa-score?"+q.Encode(), nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("AVC_TOKEN"))
	resp, err := (&http.Client{Timeout: 90 * 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/usa-score?" + q))
            .header("Authorization", "Bearer " + System.getenv("AVC_TOKEN"))
            .timeout(Duration.ofSeconds(90)).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(90) };
http.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("AVC_TOKEN"));
var url = "https://api.avtovincod.ru/usa-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/usa-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: 90) { |h| h.request(req) }
d = JSON.parse(res.body)
puts d["success"] == 1 ? d : "#{d["code"]}: #{d["error"]}"
Токен = "ВАШ_ТОКЕН";
Соединение = Новый HTTPСоединение("api.avtovincod.ru", 443, , , , 90, Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос("/usa-score?" + "vin=" + КодироватьСтроку("X7TEST00000000001", СпособКодированияСтроки.КодировкаURL));
Запрос.Заголовки.Вставить("Authorization", "Bearer " + Токен);
Ответ = Соединение.Получить(Запрос);

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

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

Заказ и опрос готовности (Python)

import os, time, requests

URL = "https://api.avtovincod.ru/usa-score"
H = {"Authorization": "Bearer " + os.environ["AVC_TOKEN"]}

while True:   # заказ; очередь проверки наличия данных занята (429 SERVICE_BUSY) - повторить через retryAfterSec
    d = requests.get(URL, params={"vin": "3VWJ17AT9HM628325"}, headers=H, timeout=90).json()
    if d.get("code") != "SERVICE_BUSY": break
    time.sleep(d.get("retryAfterSec", 10))
while d.get("success") == 1 and d.get("status") == "processing":
    time.sleep(max(10, d.get("pollAfterSec", 30)))
    d = requests.get(URL, params={"task": d["taskId"]}, headers=H, timeout=90).json()

if d.get("success") == 1:
    for f in d["report"]["files"]:
        open(f["name"], "wb").write(requests.get(f["url"], timeout=120).content)
    print("готово, списано", d.get("billing", {}).get("charged"))
else:
    print(d["code"], d["error"])

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

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

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

GET https://api.avtovincod.ru/usa-score?task=3f2b9c1e-7a4d-4e8b-9c21-5d6e7f8a9b0c
Authorization: Bearer ВАШ_ТОКЕН

HTTP 200, status: "done": отчёт готов, одно списание по цене метода, сумма и остаток в блоке billing (цифры в примере условные). Ответ на заказ и опросы до готовности блока billing не содержат: они бесплатны.

{
  "success": 1,
  "status": "done",
  "found": 1,
  "taskId": "3f2b9c1e-7a4d-4e8b-9c21-5d6e7f8a9b0c",
  "query": {
    "vin": "3VWJ17AT9HM628325"
  },
  "report": {
    "code": "usa_score",
    "title": "AutoCheck: оценка и история авто из США и Канады",
    "vin": "3VWJ17AT9HM628325",
    "brand": "VW",
    "created_at": "2026-11-01 12:14:05",
    "files": [
      {
        "type": "pdf",
        "name": "usa_score_3VWJ17AT9HM628325.pdf",
        "size": 538112,
        "url": "https://api.avtovincod.ru/vv-file/Qm9kZXJfdGVzdF90b2tlbl8xMjM0NTY3"
      },
      {
        "type": "html",
        "name": "usa_score_3VWJ17AT9HM628325_ru.html",
        "size": 41870,
        "url": "https://api.avtovincod.ru/vv-file/UnVfdGVzdF90b2tlbl83NjU0MzIxMDk4"
      }
    ],
    "web_url": null,
    "text": null,
    "files_until": "2027-01-30",
    "data": {
      "schema": "autocheck",
      "lang": "ru",
      "vehicle": {
        "title": "2017 Volkswagen Beetle 1.8T SE / 1.8T SEL",
        "year": 2017,
        "make": "Volkswagen",
        "model": "Beetle 1.8T SE / 1.8T SEL",
        "vin": "3VWJ17AT9HM628325",
        "body": "Купе 2 дв.",
        "body_en": "Coupe 2D",
        "engine": "1.8 л, 4 цил., непосредственный впрыск, бензин",
        "engine_en": "1.8L I4 DI Gasoline",
        "class": "Легковой, субкомпактный",
        "class_en": "Car - Subcompact",
        "assembly_country": "Мексика",
        "assembly_country_en": "Mexico",
        "age_years": 9,
        "in_service": "2017-09-12",
        "owners": 2,
        "usage": "Личное",
        "usage_en": "Personal",
        "odometer_last": {
          "mi": 12925,
          "km": 20801,
          "date": "2020-09-03"
        }
      },
      "score": {
        "value": 66,
        "min": 69,
        "max": 85,
        "position": "below",
        "text": "Оценка 66 из 100; у похожих машин обычно 69-85: хуже, чем у похожих"
      },
      "summary": {
        "title_brands": [
          "Salvage (после тотальной гибели)"
        ],
        "title_brands_en": [
          "Salvage"
        ],
        "auction_issue": false,
        "damage": "severe",
        "insurance_loss": true,
        "open_recalls": 1,
        "lien": true,
        "odometer_issue": false,
        "buyback_eligible": false
      },
      "glance": [
        {
          "key": "title_brand",
          "title": "Особые отметки в титуле",
          "title_en": "State Title Brand",
          "status": "Есть особые отметки",
          "status_en": "TITLE BRAND REPORTED",
          "status_code": "problem",
          "details": [
            "Salvage (после тотальной гибели)"
          ],
          "details_en": [
            "Salvage"
          ]
        },
        {
          "key": "auction",
          "title": "Отметки и проблемы на аукционах",
          "title_en": "Auction Brand / Issues",
          "status": "Без проблем",
          "status_en": "NO ISSUE",
          "status_code": "ok",
          "details": [],
          "details_en": []
        },
        {
          "key": "accident",
          "title": "ДТП и повреждения",
          "title_en": "Accident / Damage",
          "status": "Тяжёлые",
          "status_en": "SEVERE",
          "status_code": "problem",
          "details": [
            "Есть повреждения"
          ],
          "details_en": [
            "Damage Reported"
          ]
        },
        {
          "key": "odometer",
          "title": "Проверка пробега",
          "title_en": "Odometer Check",
          "status": "Без проблем",
          "status_en": "NO ISSUE",
          "status_code": "ok",
          "details": [
            "Последний пробег: 12 925 (03.09.2020)"
          ],
          "details_en": [
            "Last reported odometer: 12,925 (09/03/2020)"
          ]
        }
      ],
      "accidents": [
        {
          "date": "2020-06-19",
          "type": "Столкновение",
          "type_en": "Collision",
          "severity": "Тяжёлые",
          "severity_en": "Severe",
          "severity_code": "severe"
        },
        {
          "date": "2020-07-08",
          "type": "Столкновение",
          "type_en": "Collision",
          "severity": "Лёгкие",
          "severity_en": "Minor",
          "severity_code": "minor"
        }
      ],
      "structural_damage": "Тяжёлые",
      "structural_damage_en": "Severe",
      "recalls": [
        {
          "date": "2024-11-01",
          "type": "Не указан",
          "type_en": "Unspecified",
          "nhtsa": null,
          "oem": "69GQ",
          "description": "Фронтальная подушка безопасности водителя",
          "description_en": "DRIVER FRONTAL AIRBAG",
          "status": "Способ устранения неизвестен",
          "status_en": "Remedy Unknown"
        }
      ],
      "service": {
        "items": [
          {
            "title": "Тормоза",
            "title_en": "Brakes Maintained",
            "text": "Замена тормозных колодок: 1. Последнее обслуживание тормозов: 17.09.2019",
            "text_en": "1 brake pad replacements Brake last maintained on 09/17/2019"
          }
        ]
      },
      "maintenance": [
        {
          "title": "ТО на 10000 миль",
          "title_en": "10000 Mile Service",
          "mi": 10000,
          "km": 16093,
          "due": null,
          "due_en": null,
          "items": [
            "Замена моторного масла и масляного фильтра",
            "Моторное масло: заливка",
            "Проверка толщины передних и задних колодок и состояния тормозных дисков"
          ],
          "items_en": [
            "Engine Oil, Draining and Replacing Oil Filter",
            "Engine Oil, Filling",
            "front and rear Brake Pad Thickness and Brake Rotor Condition, Checking"
          ]
        }
      ],
      "odometer": {
        "ok": true,
        "checks": [
          {
            "title": "Пробег по титулам штатов",
            "title_en": "State Title Odometer Check",
            "result": "Проблем не найдено",
            "result_en": "No issues reported"
          }
        ]
      },
      "history": [
        {
          "title": "Владелец 1",
          "title_en": "Owner 1",
          "year": 2017,
          "owner": 1,
          "location": "CA",
          "owned_from": "2017-09",
          "usage": "Личное",
          "usage_en": "Personal",
          "prep_date": null,
          "events": [
            {
              "date": "2017-09-28",
              "location": "SAN DIEGO, CA",
              "odometer_mi": null,
              "odometer_km": null,
              "source": "Регистрирующий орган (DMV)",
              "source_en": "Motor Vehicle Dept.",
              "details": [
                "Регистрация права собственности (титул)",
                "Регистрация или продление"
              ],
              "details_en": [
                "Title",
                "Registration Event/Renewal"
              ]
            },
            {
              "date": "2019-03-23",
              "location": "EL CAJON, CA",
              "odometer_mi": 3474,
              "odometer_km": 5591,
              "source": "Запись дилера",
              "source_en": "Dealer Record",
              "details": [
                "Машина в наличии у дилера"
              ],
              "details_en": [
                "Vehicle in Dealer Inventory"
              ]
            }
          ]
        },
        {
          "title": "Владелец 2",
          "title_en": "Owner 2",
          "year": 2019,
          "owner": 2,
          "location": "CA",
          "owned_from": "2019-04",
          "usage": "Личное",
          "usage_en": "Personal",
          "prep_date": null,
          "events": [
            {
              "date": "2020-06-19",
              "location": "IL",
              "odometer_mi": 12925,
              "odometer_km": 20801,
              "source": "Страховая компания",
              "source_en": "Auto Insurance Source",
              "details": [
                "Страховой случай: машину продал страховщик",
                "Выплата страхователю"
              ],
              "details_en": [
                "Reported as Insurance Loss - Vehicle Sold by Insurer.",
                "Claim Paid to Insured"
              ]
            },
            {
              "date": "2020-06-19",
              "location": "CA",
              "odometer_mi": null,
              "odometer_km": null,
              "source": "Страховая компания",
              "source_en": "Auto Insurance Source",
              "details": [
                "Машина признана тотальной гибелью"
              ],
              "details_en": [
                "Vehicle Reported as Total Loss"
              ]
            },
            {
              "date": "2020-06-19",
              "location": null,
              "odometer_mi": null,
              "odometer_km": null,
              "source": "Страховая компания",
              "source_en": "Auto Insurance Source",
              "details": [
                "Ущерб от столкновения"
              ],
              "details_en": [
                "Vehicle Loss Caused by Collision"
              ]
            }
          ]
        }
      ],
      "extra": [],
      "report_run": "11/01/2026 17:34:06 EST",
      "translated": true
    }
  },
  "billing": {
    "charged": 389,
    "currency": "RUB",
    "billed": true,
    "balance": 1611,
    "requestId": 1234567
  }
}

Бесплатная проба без списания: https://api.avtovincod.ru/usa-score?vin=X7TEST00000000001 сразу вернёт настоящий готовый отчёт по VIN 3VWJ17AT9HM628325 (он же в поле report.sample_vin): те же файлы и report.data, что клиент получает после заказа с полем testMode: true и charged: 0; опрос ?task=TEST-TASK-0001 - тоже образец.

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

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

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

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

Нет данных

GET https://api.avtovincod.ru/usa-score?task=3f2b9c1e-7a4d-4e8b-9c21-5d6e7f8a9b0c
Authorization: Bearer ВАШ_ТОКЕН

Источник ответил, что по этому VIN данных нет: HTTP 200, status: "error", NOT_AVAILABLE. Бесплатно, блока billing нет.

{
  "success": 0,
  "status": "error",
  "taskId": "3f2b9c1e-7a4d-4e8b-9c21-5d6e7f8a9b0c",
  "query": {
    "vin": "3VWJ17AT9HM628325"
  },
  "error": "По этому VIN отчёт не сформирован: в источнике нет данных. Деньги не списаны.",
  "code": "NOT_AVAILABLE"
}

Тарификация

Заказ и опросы бесплатны. Списание одно - когда отчёт готов; повторный опрос готовой задачи не списывает. Нет данных (NOT_AVAILABLE), ошибки, отчёт не получен за 6 часов (PROVIDER_TIMEOUT) - бесплатно.

При заказе проверяется баланс с учётом отчётов, которые уже готовятся (их цена зарезервирована). Если к моменту готовности на балансе не хватает денег, опрос отвечает 402 INSUFFICIENT_BALANCE со status: "unpaid": пополните баланс и повторите опрос - отчёт будет выдан (ждёт 7 дней).

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

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

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