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

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

CARFAX: история авто из США и Канады

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

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

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

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

Эндпоинт

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

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

Параметры

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

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

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

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

  1. Заказ: GET /usa-history?vin=VIN. Ответ сразу: status: "processing" и номер задачи taskId. Бесплатно.
  2. Опрос: GET /usa-history?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-history?vin=3VWJ17AT9HM628325"
# через 30 секунд и далее, пока status не станет done:
curl -H "Authorization: Bearer $TOKEN" "https://api.avtovincod.ru/usa-history?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-history?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-history?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_history",
    "title": "CARFAX: история авто из США и Канады",
    "vin": "3VWJ17AT9HM628325",
    "brand": "VW",
    "created_at": "2026-11-01 12:14:05",
    "files": [
      {
        "type": "pdf",
        "name": "usa_history_3VWJ17AT9HM628325.pdf",
        "size": 538112,
        "url": "https://api.avtovincod.ru/vv-file/Qm9kZXJfdGVzdF90b2tlbl8xMjM0NTY3"
      },
      {
        "type": "html",
        "name": "usa_history_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": "carfax",
      "lang": "ru",
      "vehicle": {
        "title": "2017 Volkswagen Beetle SE",
        "year": 2017,
        "make": "Volkswagen",
        "model": "Beetle SE",
        "vin": "3VWJ17AT9HM628325",
        "body": "Хэтчбек, 2 дв.",
        "body_en": "Hatchback 2 DR",
        "engine": "1.8 л, 4 цил.",
        "engine_en": "1.8L I4 F DOHC 16V",
        "fuel": "бензин",
        "fuel_en": "Gasoline",
        "drive": "Передний привод",
        "drive_en": "Front wheel drive",
        "odometer_last": {
          "mi": 12925,
          "km": 20801
        }
      },
      "summary": {
        "service_records": 5,
        "open_recalls_min": 1,
        "owners": 2,
        "usage": "Личная машина",
        "usage_en": "Personal Vehicle",
        "last_state": "Калифорния",
        "last_state_en": "California",
        "branded_title": "Salvage (после тотальной гибели)",
        "branded_title_en": "Salvage",
        "total_loss": true,
        "accidents": 4,
        "damage": "severe",
        "structural_damage": false,
        "airbag_deployed": false,
        "odometer_problem": false,
        "title_problem": true,
        "warranty": "Гарантия аннулирована",
        "lien": true
      },
      "highlights": [
        {
          "text": "Записей об обслуживании: 5",
          "text_en": "5 Service History Records"
        },
        {
          "text": "Открытых отзывов: не меньше 1",
          "text_en": "At Least 1 Open Recall"
        },
        {
          "text": "Владельцев: 2",
          "text_en": "2 Previous Owners"
        }
      ],
      "accidents": [
        {
          "date": "2020-06-19",
          "title": "ДТП: тяжёлые повреждения, столкновение с другим автомобилем",
          "title_en": "Accident reported: severe damage with another motor vehicle",
          "details": [],
          "details_en": [],
          "severity_code": "severe"
        },
        {
          "date": "2020-06-19",
          "title": "Машина признана тотальной гибелью",
          "title_en": "TOTAL LOSS VEHICLE",
          "details": [
            "Страховая компания признала машину тотальной гибелью",
            "Повреждения от столкновения"
          ],
          "details_en": [
            "Vehicle declared a total loss by an insurance company",
            "Collision damage reported"
          ],
          "severity_code": null
        }
      ],
      "checks": [
        {
          "key": "total_loss",
          "title": "Тотальная гибель",
          "title_en": "Total Loss",
          "note": "Тотальная гибель: 19.06.2020.",
          "note_en": "Total Loss Reported: 06/19/2020.",
          "values": [
            {
              "owner": 1,
              "value": "Тотальная гибель",
              "value_en": "Total Loss Reported",
              "status_code": "problem"
            },
            {
              "owner": 2,
              "value": "Новых проблем нет",
              "value_en": "No New Issues Reported",
              "status_code": "ok"
            }
          ]
        },
        {
          "key": "accident",
          "title": "ДТП и повреждения",
          "title_en": "Accident / Damage",
          "note": "В DMV есть отметки о проблемах с титулом. ДТП: 19.06.2020 и 08.07.2020. Повреждение: 16.07.2020.",
          "note_en": "DMV title problems reported. Accidents reported: 06/19/2020 and 07/08/2020. Damage reported: 07/16/2020.",
          "values": [
            {
              "owner": 1,
              "value": "ДТП",
              "value_en": "Accident Reported",
              "status_code": "warning"
            },
            {
              "owner": 2,
              "value": "Тяжёлые повреждения",
              "value_en": "Severe Damage",
              "status_code": "problem"
            }
          ]
        }
      ],
      "title_history": [
        {
          "key": "damage_brands",
          "title": "Отметки о повреждениях в титуле",
          "title_en": "Damage Brands",
          "note": "Salvage | Junk | Rebuilt | Fire | Flood | Hail | Lemon (тотальная гибель, утиль, восстановлена, пожар, затопление, град, лимон)",
          "note_en": "Salvage | Junk | Rebuilt | Fire | Flood | Hail | Lemon",
          "values": [
            {
              "owner": 1,
              "value": "Проблем нет",
              "value_en": "No Problem",
              "status_code": "ok"
            },
            {
              "owner": 2,
              "value": "Внимание! Есть проблема",
              "value_en": "Alert! Problem Found",
              "status_code": "problem"
            }
          ]
        }
      ],
      "title_alert": "В DMV штата сообщили о серьёзных проблемах. Машина не подходит под гарантию выкупа CARFAX (Buyback Guarantee).",
      "title_alert_en": "Severe problems were reported by a state Department of Motor Vehicles (DMV). This vehicle does not qualify for the CARFAX Buyback Guarantee.",
      "ownership": [
        {
          "owner": 1,
          "year_purchased": 2017,
          "type": "Личное",
          "type_en": "Personal",
          "length": "2 г. 11 мес.",
          "length_en": "2 yrs. 11 mo.",
          "states": "Калифорния",
          "states_en": "California",
          "miles_per_year": 4737,
          "km_per_year": 7623,
          "odometer_mi": 12925,
          "odometer_km": 20801
        },
        {
          "owner": 2,
          "year_purchased": 2020,
          "type": "Личное",
          "type_en": "Personal",
          "length": "6 г. 1 мес.",
          "length_en": "6 yrs. 1 mo.",
          "states": "Калифорния, Иллинойс",
          "states_en": "California, Illinois",
          "miles_per_year": null,
          "km_per_year": null,
          "odometer_mi": 12925,
          "odometer_km": 20801
        }
      ],
      "history": [
        {
          "owner": 1,
          "title": "Владелец 1",
          "purchased": 2017,
          "usage": "Личная машина",
          "usage_en": "Personal Vehicle",
          "miles_per_year": 4737,
          "km_per_year": 7623,
          "events": [
            {
              "date": "2017-05-09",
              "odometer_mi": 11,
              "odometer_km": 18,
              "source": "Kearny Mesa Volkswagen",
              "source_en": "Kearny Mesa Volkswagen",
              "location": "San Diego, CA",
              "phone": "858-300-8160",
              "web": "vwofkearnymesa.com",
              "title_no": null,
              "comments": [
                "Обслуживание",
                "Предпродажная подготовка выполнена",
                "Мойка/детейлинг"
              ],
              "comments_en": [
                "Vehicle serviced",
                "Pre-delivery inspection completed",
                "Vehicle washed/detailed"
              ]
            },
            {
              "date": "2017-09-28",
              "odometer_mi": null,
              "odometer_km": null,
              "source": "Регистрирующий орган (DMV), Калифорния",
              "source_en": "California Motor Vehicle Dept.",
              "location": "San Diego, CA",
              "phone": null,
              "web": null,
              "title_no": null,
              "comments": [
                "Выдан или обновлён титул",
                "Первый владелец",
                "Оформлена как личная машина"
              ],
              "comments_en": [
                "Title issued or updated",
                "First owner reported",
                "Titled or registered as personal vehicle"
              ]
            }
          ]
        },
        {
          "owner": 2,
          "title": "Владелец 2",
          "purchased": 2020,
          "usage": "Личная машина",
          "usage_en": "Personal Vehicle",
          "miles_per_year": null,
          "km_per_year": null,
          "events": [
            {
              "date": "2020-09-08",
              "odometer_mi": null,
              "odometer_km": null,
              "source": "Регистрирующий орган (DMV), Калифорния",
              "source_en": "California Motor Vehicle Dept.",
              "location": "Sacramento, CA",
              "phone": null,
              "web": null,
              "title_no": null,
              "comments": [
                "Новый владелец",
                "Выдан титул Salvage (после тотальной гибели)"
              ],
              "comments_en": [
                "New owner reported",
                "SALVAGE TITLE/CERTIFICATE ISSUED"
              ]
            }
          ]
        }
      ],
      "recalls": [
        {
          "date": "2024-10-30",
          "nhtsa": "24V834",
          "recall": "Отзыв № 69GQ: фронтальная подушка безопасности водителя",
          "recall_en": "69GQ DRIVER FRONTAL AIRBAG",
          "status": "Статус: есть способ устранения",
          "status_en": "Remedy Available"
        }
      ],
      "extra": [],
      "report_date": "2026-11-01 17:50:50 CST",
      "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_history_VIN.pdf. Срок хранения - 90 дней (files_until), потом ссылка отвечает 410 FILE_GONE: сохраните файлы к себе. Параметр ?dl=1 - скачать, а не открыть в браузере. PDF - оригинал источника, мы его не меняем; страница usa_history_VIN_ru.html - тот же отчёт на русском.

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

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

ПолеЗначение
schema, lang"carfax" и "ru"
vehicleмашина: title, vin, year, make, model, body, engine, fuel, drive, odometer_last (mi, km)
summaryглавное: service_records, open_recalls_min, owners, usage, last_state, branded_title (особая отметка в титуле, например Salvage), total_loss, accidents (сколько ДТП и повреждений), damage (none, minor, moderate, severe, reported), structural_damage, airbag_deployed, odometer_problem, title_problem, warranty, lien; null - сведений нет
highlights[]строки «главного» в начале отчёта: text
accidents[]ДТП и повреждения: date, title, details[], severity_code
checks[], title_history[]проверки по владельцам (тотальная гибель, силовая структура, подушки, пробег, ДТП, отзывы, гарантия; отметки в титуле): key, title, note, values[] - owner, value, status_code (ok, warning, problem, unknown); title_alert - предупреждение о титуле
ownership[]владельцы: owner, year_purchased, type, length, states, miles_per_year, km_per_year, odometer_mi, odometer_km
history[]хронология по владельцам: title, owner, purchased, usage, events[] - date (или null, если в отчёте «Not Reported»), odometer_mi, odometer_km, source, location, phone, web, title_no, comments[]
recalls[]отзывные кампании: date, nhtsa, recall, status
extra[], translatedсведения вне разделов выше; 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-history" \
  --data-urlencode "vin=X7TEST00000000001" \
  -H "Authorization: Bearer $AVC_TOKEN"
<?php
$url = 'https://api.avtovincod.ru/usa-history?' . 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-history", 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-history?" + 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-history?"+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-history?" + 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-history?" + "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-history")
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-history?" + "vin=" + КодироватьСтроку("X7TEST00000000001", СпособКодированияСтроки.КодировкаURL));
Запрос.Заголовки.Вставить("Authorization", "Bearer " + Токен);
Ответ = Соединение.Получить(Запрос);

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

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

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

import os, time, requests

URL = "https://api.avtovincod.ru/usa-history"
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-history?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_history",
    "title": "CARFAX: история авто из США и Канады",
    "vin": "3VWJ17AT9HM628325",
    "brand": "VW",
    "created_at": "2026-11-01 12:14:05",
    "files": [
      {
        "type": "pdf",
        "name": "usa_history_3VWJ17AT9HM628325.pdf",
        "size": 538112,
        "url": "https://api.avtovincod.ru/vv-file/Qm9kZXJfdGVzdF90b2tlbl8xMjM0NTY3"
      },
      {
        "type": "html",
        "name": "usa_history_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": "carfax",
      "lang": "ru",
      "vehicle": {
        "title": "2017 Volkswagen Beetle SE",
        "year": 2017,
        "make": "Volkswagen",
        "model": "Beetle SE",
        "vin": "3VWJ17AT9HM628325",
        "body": "Хэтчбек, 2 дв.",
        "body_en": "Hatchback 2 DR",
        "engine": "1.8 л, 4 цил.",
        "engine_en": "1.8L I4 F DOHC 16V",
        "fuel": "бензин",
        "fuel_en": "Gasoline",
        "drive": "Передний привод",
        "drive_en": "Front wheel drive",
        "odometer_last": {
          "mi": 12925,
          "km": 20801
        }
      },
      "summary": {
        "service_records": 5,
        "open_recalls_min": 1,
        "owners": 2,
        "usage": "Личная машина",
        "usage_en": "Personal Vehicle",
        "last_state": "Калифорния",
        "last_state_en": "California",
        "branded_title": "Salvage (после тотальной гибели)",
        "branded_title_en": "Salvage",
        "total_loss": true,
        "accidents": 4,
        "damage": "severe",
        "structural_damage": false,
        "airbag_deployed": false,
        "odometer_problem": false,
        "title_problem": true,
        "warranty": "Гарантия аннулирована",
        "lien": true
      },
      "highlights": [
        {
          "text": "Записей об обслуживании: 5",
          "text_en": "5 Service History Records"
        },
        {
          "text": "Открытых отзывов: не меньше 1",
          "text_en": "At Least 1 Open Recall"
        },
        {
          "text": "Владельцев: 2",
          "text_en": "2 Previous Owners"
        }
      ],
      "accidents": [
        {
          "date": "2020-06-19",
          "title": "ДТП: тяжёлые повреждения, столкновение с другим автомобилем",
          "title_en": "Accident reported: severe damage with another motor vehicle",
          "details": [],
          "details_en": [],
          "severity_code": "severe"
        },
        {
          "date": "2020-06-19",
          "title": "Машина признана тотальной гибелью",
          "title_en": "TOTAL LOSS VEHICLE",
          "details": [
            "Страховая компания признала машину тотальной гибелью",
            "Повреждения от столкновения"
          ],
          "details_en": [
            "Vehicle declared a total loss by an insurance company",
            "Collision damage reported"
          ],
          "severity_code": null
        }
      ],
      "checks": [
        {
          "key": "total_loss",
          "title": "Тотальная гибель",
          "title_en": "Total Loss",
          "note": "Тотальная гибель: 19.06.2020.",
          "note_en": "Total Loss Reported: 06/19/2020.",
          "values": [
            {
              "owner": 1,
              "value": "Тотальная гибель",
              "value_en": "Total Loss Reported",
              "status_code": "problem"
            },
            {
              "owner": 2,
              "value": "Новых проблем нет",
              "value_en": "No New Issues Reported",
              "status_code": "ok"
            }
          ]
        },
        {
          "key": "accident",
          "title": "ДТП и повреждения",
          "title_en": "Accident / Damage",
          "note": "В DMV есть отметки о проблемах с титулом. ДТП: 19.06.2020 и 08.07.2020. Повреждение: 16.07.2020.",
          "note_en": "DMV title problems reported. Accidents reported: 06/19/2020 and 07/08/2020. Damage reported: 07/16/2020.",
          "values": [
            {
              "owner": 1,
              "value": "ДТП",
              "value_en": "Accident Reported",
              "status_code": "warning"
            },
            {
              "owner": 2,
              "value": "Тяжёлые повреждения",
              "value_en": "Severe Damage",
              "status_code": "problem"
            }
          ]
        }
      ],
      "title_history": [
        {
          "key": "damage_brands",
          "title": "Отметки о повреждениях в титуле",
          "title_en": "Damage Brands",
          "note": "Salvage | Junk | Rebuilt | Fire | Flood | Hail | Lemon (тотальная гибель, утиль, восстановлена, пожар, затопление, град, лимон)",
          "note_en": "Salvage | Junk | Rebuilt | Fire | Flood | Hail | Lemon",
          "values": [
            {
              "owner": 1,
              "value": "Проблем нет",
              "value_en": "No Problem",
              "status_code": "ok"
            },
            {
              "owner": 2,
              "value": "Внимание! Есть проблема",
              "value_en": "Alert! Problem Found",
              "status_code": "problem"
            }
          ]
        }
      ],
      "title_alert": "В DMV штата сообщили о серьёзных проблемах. Машина не подходит под гарантию выкупа CARFAX (Buyback Guarantee).",
      "title_alert_en": "Severe problems were reported by a state Department of Motor Vehicles (DMV). This vehicle does not qualify for the CARFAX Buyback Guarantee.",
      "ownership": [
        {
          "owner": 1,
          "year_purchased": 2017,
          "type": "Личное",
          "type_en": "Personal",
          "length": "2 г. 11 мес.",
          "length_en": "2 yrs. 11 mo.",
          "states": "Калифорния",
          "states_en": "California",
          "miles_per_year": 4737,
          "km_per_year": 7623,
          "odometer_mi": 12925,
          "odometer_km": 20801
        },
        {
          "owner": 2,
          "year_purchased": 2020,
          "type": "Личное",
          "type_en": "Personal",
          "length": "6 г. 1 мес.",
          "length_en": "6 yrs. 1 mo.",
          "states": "Калифорния, Иллинойс",
          "states_en": "California, Illinois",
          "miles_per_year": null,
          "km_per_year": null,
          "odometer_mi": 12925,
          "odometer_km": 20801
        }
      ],
      "history": [
        {
          "owner": 1,
          "title": "Владелец 1",
          "purchased": 2017,
          "usage": "Личная машина",
          "usage_en": "Personal Vehicle",
          "miles_per_year": 4737,
          "km_per_year": 7623,
          "events": [
            {
              "date": "2017-05-09",
              "odometer_mi": 11,
              "odometer_km": 18,
              "source": "Kearny Mesa Volkswagen",
              "source_en": "Kearny Mesa Volkswagen",
              "location": "San Diego, CA",
              "phone": "858-300-8160",
              "web": "vwofkearnymesa.com",
              "title_no": null,
              "comments": [
                "Обслуживание",
                "Предпродажная подготовка выполнена",
                "Мойка/детейлинг"
              ],
              "comments_en": [
                "Vehicle serviced",
                "Pre-delivery inspection completed",
                "Vehicle washed/detailed"
              ]
            },
            {
              "date": "2017-09-28",
              "odometer_mi": null,
              "odometer_km": null,
              "source": "Регистрирующий орган (DMV), Калифорния",
              "source_en": "California Motor Vehicle Dept.",
              "location": "San Diego, CA",
              "phone": null,
              "web": null,
              "title_no": null,
              "comments": [
                "Выдан или обновлён титул",
                "Первый владелец",
                "Оформлена как личная машина"
              ],
              "comments_en": [
                "Title issued or updated",
                "First owner reported",
                "Titled or registered as personal vehicle"
              ]
            }
          ]
        },
        {
          "owner": 2,
          "title": "Владелец 2",
          "purchased": 2020,
          "usage": "Личная машина",
          "usage_en": "Personal Vehicle",
          "miles_per_year": null,
          "km_per_year": null,
          "events": [
            {
              "date": "2020-09-08",
              "odometer_mi": null,
              "odometer_km": null,
              "source": "Регистрирующий орган (DMV), Калифорния",
              "source_en": "California Motor Vehicle Dept.",
              "location": "Sacramento, CA",
              "phone": null,
              "web": null,
              "title_no": null,
              "comments": [
                "Новый владелец",
                "Выдан титул Salvage (после тотальной гибели)"
              ],
              "comments_en": [
                "New owner reported",
                "SALVAGE TITLE/CERTIFICATE ISSUED"
              ]
            }
          ]
        }
      ],
      "recalls": [
        {
          "date": "2024-10-30",
          "nhtsa": "24V834",
          "recall": "Отзыв № 69GQ: фронтальная подушка безопасности водителя",
          "recall_en": "69GQ DRIVER FRONTAL AIRBAG",
          "status": "Статус: есть способ устранения",
          "status_en": "Remedy Available"
        }
      ],
      "extra": [],
      "report_date": "2026-11-01 17:50:50 CST",
      "translated": true
    }
  },
  "billing": {
    "charged": 389,
    "currency": "RUB",
    "billed": true,
    "balance": 1611,
    "requestId": 1234567
  }
}

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

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

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

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

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

Нет данных

GET https://api.avtovincod.ru/usa-history?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", "есть ли штрафы по СТС". Удобно менеджерам автосалона, лизинга и страховой без программиста, а разработчику помогает быстро собрать прототип интеграции.