--- title: Levam OEM API — обзор description: REST API каталогов оригинальных автозапчастей — подбор по VIN, каталогам и параметрам, схемы узлов, применимость деталей. --- # Levam OEM API Levam OEM API — REST API каталогов оригинальных автозапчастей. Через API доступны: - список OEM-каталогов (брендов) и моделей; - подбор автомобиля по VIN-номеру или по параметрам (семейство, модель, год, рынок и т.д.); - группы узлов, детали, схемы (чертежи) с координатами деталей; - применимость детали к автомобилям (в каких моделях и узлах встречается артикул); - проверка заказа (подходят ли артикулы к VIN) и детали для техобслуживания. ## Базовый URL ``` https://api.levam.net ``` Все методы вызываются **GET**-запросами к путям вида `/oem/v1/{Метод}` и возвращают JSON (UTF-8). ## Быстрый старт ```bash curl "https://api.levam.net/oem/v1/CatalogsListGet?api_key=ВАШ_КЛЮЧ" ``` API-ключ выдаётся в [личном кабинете](https://levam.ru/cabinet) после регистрации. Подробнее — в разделе [Аутентификация](/docs/ru/authentication). ## Общие соглашения - `api_key` — обязательный параметр каждого метода. - `lang` — необязательный язык ответа (например `ru`, `en`, `de`). Если данные на запрошенном языке недоступны, ответ возвращается на английском. По умолчанию — `en`. - `ssd` (Server Side Data) — идентификатор сессии подбора. Возвращается методами выбора автомобиля; его нужно передавать в следующий метод цепочки. Подробнее — в описании [подбора по параметрам](/docs/ru/vehicle-selection). - Поле `error` присутствует в каждом успешном ответе; пустая строка означает отсутствие ошибки. См. [Коды ошибок](/docs/ru/errors). ## Типовая цепочка вызовов 1. [`CatalogsListGet`](/docs/ru/catalogs) — список каталогов (брендов). 2. [`ModelsListGet2`](/docs/ru/catalogs) — семейства и модели каталога, **или** [`VinFind`](/docs/ru/vin-search) — сразу по VIN. 3. [`VehicleParamsSet`](/docs/ru/vehicle-selection) → [`VehicleModificationsGet`](/docs/ru/vehicle-selection) — уточнение модификации. 4. [`PartGroupsGet`](/docs/ru/parts) — дерево групп узлов, затем [`PartsGet`](/docs/ru/parts) — детали и схема узла. 5. Дополнительно: [применимость детали](/docs/ru/applicability), [проверка заказа](/docs/ru/order-check), [детали ТО](/docs/ru/maintenance). ## Разделы документации - [Аутентификация](/docs/ru/authentication) - [Тарификация и биллинг](/docs/ru/billing) - [Каталоги и модели](/docs/ru/catalogs) - [Подбор модификации по параметрам](/docs/ru/vehicle-selection) - [Поиск по VIN](/docs/ru/vin-search) - [Группы узлов и детали](/docs/ru/parts) - [Применимость детали](/docs/ru/applicability) - [Проверка заказа](/docs/ru/order-check) - [Детали для техобслуживания](/docs/ru/maintenance) - [Коды ошибок](/docs/ru/errors) Каждая страница доступна и как чистый Markdown — добавьте `.md` к адресу (например, `/docs/ru/authentication.md`). Полный список для LLM-агентов: [/llms.txt](/llms.txt), весь текст одним файлом: [/llms-full.txt](/llms-full.txt). --- --- title: Аутентификация description: API-ключ Levam OEM API — как получить и передавать, форматы ошибок авторизации. --- # Аутентификация Все методы Levam OEM API требуют API-ключ. Ключ передаётся **query-параметром `api_key`** в каждом запросе: ```bash curl "https://api.levam.net/oem/v1/CatalogsListGet?api_key=ВАШ_КЛЮЧ" ``` Заголовки авторизации (Authorization, X-Api-Key и т.п.) не используются. ## Как получить ключ 1. Зарегистрируйтесь на [levam.ru](https://levam.ru/register) (или [levam.net](https://levam.net/register)). 2. API-ключ отображается в [личном кабинете](https://levam.ru/cabinet). 3. Для работы API нужен активный пакет юнитов — см. [Тарификация и биллинг](/docs/ru/billing). ## Ошибки авторизации | HTTP-статус | Тело ответа | Причина | |---|---|---| | 401 | `{"error": "invalid api key"}` | Ключ не передан, не найден или заблокирован | | 403 | `{"error": "Client disabled. not enough money"}` | Доступ отключён: закончились юниты или истёк срок пакета | При ошибке авторизации запрос не тарифицируется. ## Рекомендации - Не публикуйте `api_key` в клиентском коде (браузер, мобильное приложение) — вызывайте API со своего сервера. - В кабинете можно ограничить список IP-адресов, с которых принимаются запросы с вашим ключом. --- --- title: Тарификация и биллинг description: Юниты Levam OEM API — стоимость методов, бесплатные методы, дедупликация списаний по VIN и SSD. --- # Тарификация и биллинг Работа с API оплачивается **юнитами**. Юниты покупаются пакетами в [личном кабинете](https://levam.ru/cabinet); у пакета есть объём (количество юнитов) и срок действия. ## Стоимость методов | Метод | Стоимость, юнитов | |---|---| | `CatalogsListGet` | 0 (бесплатно) | | `ModelsListGet2` | 0 (бесплатно) | | `VehicleParamsSet` | 0 (бесплатно) | | `VehicleModificationsGet` | 0 (бесплатно) | | `PartGroupsGet` | 1 | | `PartsGet` | 1 | | `VinFind` | 1 | | `ApplicabilityCars` | 1 | | `ApplicabilityNodes` | 1 | | `MaintenanceParts` | 1 | | `OrderCheck` | 2 | | `OrderCheckResult` | 0 (бесплатно) | ## Правила списания - Списание происходит **только при успешном ответе** (HTTP 200). Ошибки авторизации и внутренние ошибки не тарифицируются. - **Дедупликация по VIN**: повторные запросы с тем же VIN-номером по тому же `api_key` в течение суток не списывают юниты повторно. Это касается `VinFind` и последующих методов цепочки, вызванных с тем же VIN. - **Дедупликация по SSD**: методы `PartGroupsGet` и `PartsGet` списывают 1 юнит за сессию подбора (`ssd`). Пока вы работаете в рамках одного оплаченного `ssd`, повторные вызовы этих методов не тарифицируются. Практически это означает: полная цепочка «VIN → группы → детали» стоит 1 юнит, а навигация по дереву групп и узлам внутри одного подбора дополнительных юнитов не расходует. ## Когда юниты закончились Когда баланс юнитов исчерпан или срок пакета истёк, платные методы возвращают HTTP 403 с телом `{"error": "Client disabled. not enough money"}`. Текущий баланс и статистика расходов видны в кабинете. --- --- title: Каталоги и модели description: Методы CatalogsListGet и ModelsListGet2 — список OEM-каталогов, семейства и модели производителя. --- # Каталоги и модели ## CatalogsListGet Список доступных OEM-каталогов (брендов). Метод бесплатный. ``` GET https://api.levam.net/oem/v1/CatalogsListGet ``` ### Параметры | Параметр | Обязательный | Описание | |---|---|---| | `api_key` | да | Ключ к API | | `type` | нет | Тип транспортного средства: пусто — все, `0` — легковые, `1` — коммерческие, `2` — мотоциклы, `3` — грузовые, `4` — спецтехника | ### Пример ```bash curl "https://api.levam.net/oem/v1/CatalogsListGet?api_key=КЛЮЧ&type=" ``` ```json { "catalogs": [ { "name": "Audi", "code": "3", "catalog_code": "3", "logo": "https://img.levam.net/images/logos/big/audi.png", "logo_small": "https://img.levam.net/images/logos/small/audi.png", "supportframesearch": "no", "frameexample": "", "supportvinsearch": "yes", "vinexample": "WAUBA24B3XN104537", "universal_classifier": "yes", "type_moto": "no", "type_auto": "yes", "type_transport": "no" } ], "error": "" } ``` ### Поля ответа | Поле | Описание | |---|---| | `catalogs[].name` | Название каталога | | `catalogs[].catalog_code` | Код каталога — используется в остальных методах | | `catalogs[].code` | Устаревший дубль `catalog_code` (оставлен для совместимости) | | `catalogs[].logo`, `logo_small` | Логотипы каталога 100×100 и 50×50 | | `catalogs[].supportvinsearch`, `vinexample` | Поддержка поиска по VIN и пример VIN для каталога | | `catalogs[].supportframesearch`, `frameexample` | Поддержка поиска по FRAME и пример номера | | `catalogs[].universal_classifier` | Доступен ли универсальный классификатор (yes/no) | | `catalogs[].type_moto`, `type_auto`, `type_transport` | Наличие мотоциклов / легковых / грузовых и коммерческих ТС | | `error` | Информация об ошибке; пустая строка — ошибок нет | ## ModelsListGet2 Все семейства и модели одного производителя. Метод бесплатный. ``` GET https://api.levam.net/oem/v1/ModelsListGet2 ``` ### Параметры | Параметр | Обязательный | Описание | |---|---|---| | `api_key` | да | Ключ к API | | `catalog_code` | да | Код каталога из `CatalogsListGet` | | `lang` | нет | Язык ответа | | `type` | нет | Тип ТС (см. `CatalogsListGet`) | ### Пример ```bash curl "https://api.levam.net/oem/v1/ModelsListGet2?api_key=КЛЮЧ&catalog_code=3" ``` ```json { "error": "", "catalog": { "name": "Audi", "catalog_code": "3", "logo": "https://img.levam.net/images/logos/big/audi.png" }, "families": { "Audi 100": { "family_name": "Audi 100", "family_image": "https://img.levam.net/images/oem/models/Audi_100_Mk4_C4_sedan_1991.png", "models": [ { "model": "A10", "model_picture": "https://img.levam.net/images/oem/models/Audi_100_Mk4_C4_sedan_1991.png" }, { "model": "A10C", "model_picture": "https://img.levam.net/images/oem/models/Audi_100_Mk4_C4_sedan_1991.png" } ] } } } ``` ### Поля ответа | Поле | Описание | |---|---| | `catalog` | Объект выбранного каталога (поля как в `CatalogsListGet`) | | `families` | Объект «название семейства → семейство»: `family_name`, `family_image`, `models[]` | | `families.*.models[].model` | Код модели — передаётся в `VehicleParamsSet` | | `families.*.models[].model_picture` | Изображение модели | | `error` | Информация об ошибке; пустая строка — ошибок нет | Дальше: [подбор модификации по параметрам](/docs/ru/vehicle-selection). --- --- title: Подбор модификации по параметрам description: Методы VehicleParamsSet и VehicleModificationsGet — уточнение модификации автомобиля и механизм SSD. --- # Подбор модификации по параметрам Если VIN неизвестен, модификация подбирается по параметрам: выбираете каталог и модель, затем уточняете параметры (год выпуска, рынок, кузов…), пока не получите список модификаций с кодами `link`. ## Механизм SSD `ssd` (Server Side Data) — идентификатор серверной сессии подбора. Первый вызов `VehicleParamsSet` без `ssd` создаёт новую сессию и возвращает её идентификатор в `client.ssd`; все последующие вызовы цепочки должны передавать этот `ssd`. Сессия хранит выбранный каталог, модель и накопленные параметры. ## VehicleParamsSet Уточнение модификации выбранной модели. Метод бесплатный. ``` GET https://api.levam.net/oem/v1/VehicleParamsSet ``` ### Параметры | Параметр | Обязательный | Описание | |---|---|---| | `api_key` | да | Ключ к API | | `catalog_code` | да | Код каталога | | `family` | да | Семейство (из `ModelsListGet2`) | | `model` | да | Код модели (из `ModelsListGet2`) | | `ssd` | нет | Идентификатор сессии (пусто при первом вызове) | | `param` | нет | Выбранный параметр в виде `код:значение`; несколько — через `;` | | `lang` | нет | Язык ответа | ### Пример ```bash curl "https://api.levam.net/oem/v1/VehicleParamsSet?api_key=КЛЮЧ&catalog_code=3&model=AA3&ssd=&family=Audi+A3" ``` ```json { "client": { "mark": "Audi", "catalog_code": "3", "family": "Audi A3", "model": "AA3", "ssd": "e5bae1070f765fb2ca054f112b9a74d2", "param": "", "modification": "", "vin": "", "frame": "", "universal_classifier": "yes" }, "params": { "catalog": { "name": "The market", "values": { "BRAZIL": "BRAZIL" } }, "year_prod": { "name": "Release date", "values": { "2001": "2001", "2002": "2002" } } }, "error": "" } ``` ### Поля ответа | Поле | Описание | |---|---| | `client` | Состояние сессии: каталог, семейство, модель, `ssd`, выбранные параметры, VIN/FRAME (если были) | | `client.ssd` | Идентификатор сессии — передавайте в следующие вызовы | | `params` | Объект «код параметра → { name, values }». `values` — допустимые значения параметра | | `model_image` | Изображение модели (только если существует) | | `error` | Информация об ошибке; пустая строка — ошибок нет | Вызывайте `VehicleParamsSet` повторно, добавляя `param=код:значение`, пока не сузите выбор, затем переходите к `VehicleModificationsGet`. ## VehicleModificationsGet Список модификаций, соответствующих выбранным параметрам. Метод бесплатный. ``` GET https://api.levam.net/oem/v1/VehicleModificationsGet ``` ### Параметры | Параметр | Обязательный | Описание | |---|---|---| | `api_key` | да | Ключ к API | | `ssd` | да | Идентификатор сессии из `VehicleParamsSet` | | `lang` | нет | Язык ответа | ### Пример ```bash curl "https://api.levam.net/oem/v1/VehicleModificationsGet?api_key=КЛЮЧ&ssd=770e1aee96bbf85678ab1426f66af8c6" ``` ```json { "client": { "mark": "Audi", "catalog_code": "3", "family": "Audi A3", "model": "AA3", "ssd": "e5bae1070f765fb2ca054f112b9a74d2" }, "modifications": [ { "Марка": "Audi", "The market": "BRAZIL", "Release date": "2001", "link": "VElKZGppUnBJY3pHUVRTeFgwVkNpTFFNMVhMdW9v..." } ], "error": "" } ``` ### Поля ответа | Поле | Описание | |---|---| | `client` | Состояние сессии (как в `VehicleParamsSet`) | | `modifications[]` | Модификации: названия/значения параметров + поле `link` — код модификации | | `modifications[].link` | Код модификации — передаётся в `PartGroupsGet` / `PartsGet` | | `error` | Информация об ошибке; пустая строка — ошибок нет | Дальше: [группы узлов и детали](/docs/ru/parts). --- --- title: Поиск по VIN description: Метод VinFind — идентификация автомобиля по VIN-номеру, список модификаций и SSD для дальнейшего подбора. --- # Поиск по VIN ## VinFind Поиск автомобиля по VIN-номеру. Стоимость — 1 юнит; повторные запросы с тем же VIN в течение суток не тарифицируются (см. [биллинг](/docs/ru/billing)). ``` GET https://api.levam.net/oem/v1/VinFind ``` ### Параметры | Параметр | Обязательный | Описание | |---|---|---| | `api_key` | да | Ключ к API | | `vin` | да | VIN-номер (17 символов; символы O, Q, I автоматически приводятся к 0, 0, 1) | ### Пример ```bash curl "https://api.levam.net/oem/v1/VinFind?api_key=КЛЮЧ&vin=WAUBA24B3XN104537" ``` ```json { "error": "", "client": { "mark": "audi", "catalog_code": "3", "family": "Audi A6/S6/Avant qu.", "model": "A6Q", "ssd": "f9bab10208cc832ff01849397a902988", "vin": "WAUBA24B3XN104537", "frame": "" }, "models": [ { "Model": "Audi A6/S6/Avant qu.", "Transmission": "EKX", "Release date": "1999", "The market": "MEX", "link": "bGtnNjVTSHYwcEhENC9FcmVXYUhoWHRBd3FhZUlJS3oz..." } ] } ``` ### Поля ответа | Поле | Описание | |---|---| | `client` | Состояние сессии подбора: каталог, семейство, модель, `ssd`, VIN | | `client.ssd` | Идентификатор сессии — передавайте в `PartGroupsGet` / `PartsGet` | | `models[]` | Найденные модификации: параметры + `link` — код модификации | | `error` | Информация об ошибке; пустая строка — ошибок нет | Если VIN найден в одном каталоге с единственной модификацией, массив `models` содержит один элемент — берите его `link` и переходите к [группам узлов](/docs/ru/parts). ## Поиск по FRAME Поиск по FRAME-номеру (для японских автомобилей) в текущей версии API **недоступен как отдельный метод**: эндпоинт `FrameFind` выведен из эксплуатации. Поля `supportframesearch` и `frameexample` в `CatalogsListGet` сохранены для совместимости. Если вам нужен поиск по FRAME — напишите в поддержку из [кабинета](https://levam.ru/cabinet). --- --- title: Группы узлов и детали description: Методы PartGroupsGet и PartsGet — дерево групп запчастей, детали узла, схемы и координаты. --- # Группы узлов и детали После того как модификация выбрана (есть `ssd` и `link`), запрашивается дерево групп узлов и детали конкретного узла. ## PartGroupsGet Группы запчастей выбранной модификации. Стоимость — 1 юнит за сессию `ssd` (повторные вызовы в рамках оплаченной сессии бесплатны). ``` GET https://api.levam.net/oem/v1/PartGroupsGet ``` ### Параметры | Параметр | Обязательный | Описание | |---|---|---| | `api_key` | да | Ключ к API | | `ssd` | да | Идентификатор сессии | | `link` | да | Код модификации (из `VehicleModificationsGet` / `VinFind`) | | `group` | нет | Код группы. Пусто — корневые группы; код — вложенные подгруппы этой группы | | `lang` | нет | Язык ответа | ### Пример ```bash curl "https://api.levam.net/oem/v1/PartGroupsGet?api_key=КЛЮЧ&ssd=770e1aee96bbf85678ab1426f66af8c6&link=dm5GNk8vOXNQN1pBWmZTUjU4WnhpMW4w..." ``` ```json { "groups": [ { "full_name": "engine", "group_name": "1", "image": ["https://img.levam.net/images/oem/audi/groups/1.png"] }, { "full_name": "body", "group_name": "8", "image": ["https://img.levam.net/images/oem/audi/groups/8.png"] } ], "next": 1, "link": "VElKZGppUnBJY3pHUVRTeFgwVkNpTFFNMVhMdW9v...", "model_info": { "Марка": "Audi", "The market": "BRAZIL", "Release date": "2001" }, "error": "", "client": { "mark": "audi", "catalog_code": "3", "family": "Audi A3", "model": "AA3", "ssd": "cef178ee5e5cfb1b866bb3b3fda80537" } } ``` ### Поля ответа | Поле | Описание | |---|---| | `groups[].full_name` | Название группы | | `groups[].group_name` | Код группы — передаётся в `group` следующего вызова | | `groups[].image` | Изображения группы | | `next` | `1` — у групп есть вложенные подгруппы (спускайтесь дальше по `PartGroupsGet`); `0` — вложенных нет, можно запрашивать `PartsGet` | | `model_info` | Параметры выбранной модификации | | `client` | Состояние сессии | | `error` | Информация об ошибке; пустая строка — ошибок нет | ## PartsGet Детали узла: список запчастей, схема (чертёж) и координаты деталей на ней. Стоимость — 1 юнит за сессию `ssd` (как у `PartGroupsGet`). ``` GET https://api.levam.net/oem/v1/PartsGet ``` ### Параметры | Параметр | Обязательный | Описание | |---|---|---| | `api_key` | да | Ключ к API | | `ssd` | да | Идентификатор сессии | | `link` | да | Код модификации | | `group` | да | Код узла (группа с `next=0` из `PartGroupsGet`) | | `lang` | нет | Язык ответа | ### Пример ```bash curl "https://api.levam.net/oem/v1/PartsGet?api_key=КЛЮЧ&ssd=770e1aee96bbf85678ab1426f66af8c6&link=dm5GNk8vOXNQN1pB...&group=010-10000" ``` ```json { "client": { "mark": "audi", "catalog_code": "3", "family": "Audi A3", "model": "AA3" }, "parts": { "parts": [ { "standart": { "part_number": "3", "part_code": "1H0 819 056", "part_name": "double stud with hexagon drive", "part_quantity": "1" }, "add": { "info": "AUDI A3", "model": "" } } ], "image": ["https://api.levam.net/images/audi/Bilder/194/194820100.png"], "coord": [ [ { "name": "54", "margin-top": 63.68, "margin-left": 3.27, "width": 4.79, "height": 2.7 } ] ], "part_name": "air distribution housing" }, "model_info": { "Market": "Asia", "Engine": "HR12DE" }, "error": "" } ``` ### Поля ответа | Поле | Описание | |---|---| | `parts.parts[].standart` | Основные данные детали: `part_number` (номер на чертеже), `part_code` (артикул), `part_name`, `part_quantity` | | `parts.parts[].add` | Дополнительно: `info`, `model` (период производства), `type` (`part` / `replacment` / `link` / `annotation`), `node_link` (ссылка на узел или `no`) | | `parts.image` | Чертежи узла | | `parts.coord` | Координаты номеров деталей на чертеже (проценты): `name`, `margin-top`, `margin-left`, `width`, `height` | | `parts.part_name` | Название узла | | `model_info` | Параметры модификации | | `error` | Информация об ошибке; пустая строка — ошибок нет | --- --- title: Применимость детали description: Методы ApplicabilityCars и ApplicabilityNodes — в каких автомобилях и узлах встречается артикул. --- # Применимость детали ## ApplicabilityCars Каталоги, семейства, модели и модификации, в которых встречается деталь. Стоимость — 1 юнит. ``` GET https://api.levam.net/oem/v1/ApplicabilityCars ``` ### Параметры | Параметр | Обязательный | Описание | |---|---|---| | `api_key` | да | Ключ к API | | `part_code` | да | Код (артикул) оригинальной детали | | `lang` | нет | Язык ответа | ### Пример ```bash curl "https://api.levam.net/oem/v1/ApplicabilityCars?api_key=КЛЮЧ&part_code=34351543830&lang=ru" ``` ```json { "error": "", "result": [ { "catalog_code": 3, "catalog_name": "audi", "families": [ { "family_name": "Audi A6", "models": [ { "model_name": "Audi A6 (2015 - 2018)", "model_image": "https://img.levam.net/images/oem/", "modifs": [ { "modif_link": "Vkh0eU1xN3BudXJrRUNDdjFDVEFpZz09--", "props": { "Engine": "DDVE (231ps/170kw/300ltr/6cyl)", "Market": "EUROPA", "Steering": "Left", "Transmission": "8A (SQR)" } } ] } ] } ] } ] } ``` ### Поля ответа | Поле | Описание | |---|---| | `result[].catalog_code`, `catalog_name` | Каталог | | `result[].families[].family_name` | Семейство | | `result[].families[].models[].model_name`, `model_image` | Модель | | `result[].families[].models[].modifs[].modif_link` | Код модификации — используется в `ApplicabilityNodes` и `MaintenanceParts` | | `result[].families[].models[].modifs[].props` | Параметры модификации (набор полей зависит от каталога) | | `error` | Информация об ошибке; пустая строка — ошибок нет | ## ApplicabilityNodes Узлы выбранной модификации, в которых встречается деталь. Стоимость — 1 юнит. ``` GET https://api.levam.net/oem/v1/ApplicabilityNodes ``` ### Параметры | Параметр | Обязательный | Описание | |---|---|---| | `api_key` | да | Ключ к API | | `part_code` | да | Код (артикул) оригинальной детали | | `modif_link` | да | Код модификации из `ApplicabilityCars` | | `lang` | нет | Язык ответа | ### Пример ```bash curl "https://api.levam.net/oem/v1/ApplicabilityNodes?api_key=КЛЮЧ&part_code=057130764AM&modif_link=UFNINUtxVHpxcmJNZmUrcVNoeS83UT09--" ``` ```json { "error": "", "result": { "catalog_code": 3, "catalog_name": "audi", "family_name": "Audi A6", "model_name": "Audi A6 allroad (2013 - 2018)", "model_image": "https://img.levam.net/images/oem/", "nodes": [ { "image": "https://img.levam.net/images/oem/audi3/AU/Bilder_zgd/675/675130700.png", "node_name": "fuel rail injector unit pressure pipes", "group": "675130700::130080", "parts": [ { "pnc": "4", "part_name": "pressure-relief valve" } ] } ] } } ``` ### Поля ответа | Поле | Описание | |---|---| | `result.catalog_code`, `catalog_name`, `family_name`, `model_name`, `model_image` | Автомобиль | | `result.nodes[].image` | Чертёж узла | | `result.nodes[].node_name` | Название узла | | `result.nodes[].group` | Код группы узла | | `result.nodes[].parts[].pnc` | Номер детали на схеме | | `result.nodes[].parts[].part_name` | Название детали | | `error` | Информация об ошибке; пустая строка — ошибок нет | --- --- title: Проверка заказа description: Методы OrderCheck и OrderCheckResult — асинхронная проверка применимости артикулов к VIN. --- # Проверка заказа Проверка «подходят ли артикулы к автомобилю с данным VIN» выполняется асинхронно: `OrderCheck` ставит задачу и возвращает `task_id`, `OrderCheckResult` возвращает результат по `task_id`. ## OrderCheck Постановка задачи на проверку заказа. Стоимость — **2 юнита**. ``` GET https://api.levam.net/oem/v1/OrderCheck ``` ### Параметры | Параметр | Обязательный | Описание | |---|---|---| | `api_key` | да | Ключ к API | | `vin` | да | VIN-номер автомобиля | | `parts_codes` | да | Артикулы деталей через запятую | | `order_code` | нет | Код заказа (зарезервировано, не используется) | ### Пример ```bash curl "https://api.levam.net/oem/v1/OrderCheck?api_key=КЛЮЧ&vin=WBAUB31060VH40246&parts_codes=24007572464" ``` ```json { "error": "", "result": { "task_id": "4c9caf3deb6cad4eb73a7f7f9c679e57" } } ``` ## OrderCheckResult Результат проверки. Метод бесплатный — опрашивайте, пока `ready` не станет `true`. ``` GET https://api.levam.net/oem/v1/OrderCheckResult ``` ### Параметры | Параметр | Обязательный | Описание | |---|---|---| | `api_key` | да | Ключ к API | | `task_id` | да | Идентификатор задачи из `OrderCheck` | ### Пример ```bash curl "https://api.levam.net/oem/v1/OrderCheckResult?api_key=КЛЮЧ&task_id=4c9caf3deb6cad4eb73a7f7f9c679e57" ``` ```json { "error": "", "result": { "ready": true, "result": { "24007572464": { "applicable": true, "replacements": ["24007572465"] } } } } ``` ### Поля ответа | Поле | Описание | |---|---| | `result.ready` | `true` — задача выполнена; `false` — ещё в работе, повторите запрос позже | | `result.result` | Объект «артикул → результат» | | `result.result.*.applicable` | Подходит ли деталь к автомобилю с указанным VIN | | `result.result.*.replacements` | Артикулы деталей-замен (если есть более новая деталь) | | `error` | Информация об ошибке; пустая строка — ошибок нет | --- --- title: Детали для техобслуживания description: Метод MaintenanceParts — запчасти для ТО выбранной модификации по категориям. --- # Детали для техобслуживания ## MaintenanceParts Все запчасти для технического обслуживания выбранной модификации, сгруппированные по категориям (тормоза, фильтры и т.д.). Стоимость — 1 юнит. ``` GET https://api.levam.net/oem/v1/MaintenanceParts ``` ### Параметры | Параметр | Обязательный | Описание | |---|---|---| | `api_key` | да | Ключ к API | | `modif_link` | да | Код модификации (из `VinFind`, `VehicleModificationsGet` или `ApplicabilityCars`) | | `lang` | нет | Язык ответа | ### Пример ```bash curl "https://api.levam.net/oem/v1/MaintenanceParts?api_key=КЛЮЧ&lang=en&modif_link=OTM5SElaM2orZi91OUZyNVNrTWwydz09--" ``` ```json { "error": "", "result": { "catalog_code": 3, "catalog_name": "audi", "catalog_image": "https://img.levam.net/images/logos/big/audi.png", "family_name": "Audi 80/90", "model_name": "Audi 80 (1973 - 1976)", "categories": [ { "category_name": "Brake Front", "category_code": "brake_front", "category_image": "https://img.levam.net/images/oem/maintenance_parts/brake_front.svg", "parts": [ { "part_code": "191501615b", "part_name": "brake drum", "part_number": "9", "coords": [{ "top": 128.98, "left": 63.62, "width": 3, "height": 3 }], "node_name": "rear axle beam suspension", "node_group": "016049000::49000", "node_image": "https://img.levam.net/images/oem/audi3/AU/Bilder/016/016049000.png" } ] } ] } } ``` ### Поля ответа | Поле | Описание | |---|---| | `result.catalog_*`, `family_*`, `model_*` | Каталог, семейство и модель с изображениями | | `result.categories[].category_name`, `category_code`, `category_image` | Категория деталей ТО | | `result.categories[].parts[].part_code`, `part_name` | Артикул и название детали | | `result.categories[].parts[].part_number` | Номер детали на схеме узла | | `result.categories[].parts[].coords` | Координаты отметки на схеме: `top`, `left`, `width`, `height` | | `result.categories[].parts[].node_name`, `node_group`, `node_image` | Узел, в котором находится деталь | | `error` | Информация об ошибке; пустая строка — ошибок нет | --- --- title: Коды ошибок description: HTTP-статусы и форматы ошибок Levam OEM API — авторизация, баланс, внутренние ошибки. --- # Коды ошибок ## Формат API возвращает ошибки двумя способами: 1. **HTTP-статус + JSON с полем `error`** — ошибки авторизации и системные ошибки. 2. **Поле `error` внутри ответа 200** — прикладные ошибки метода (например, VIN не найден). Пустая строка в `error` означает успех. ## HTTP-статусы | Статус | Тело | Причина | Что делать | |---|---|---|---| | 200 | `{"...": "...", "error": ""}` | Успех | — | | 200 | `{"...": "...", "error": "текст"}` | Прикладная ошибка метода (данные не найдены и т.п.) | Проверить параметры запроса | | 401 | `{"error": "invalid api key"}` | Ключ не передан, не найден или заблокирован | Проверить `api_key` в [кабинете](https://levam.ru/cabinet) | | 403 | `{"error": "Client disabled. not enough money"}` | Закончились юниты или истёк срок пакета | Пополнить баланс в кабинете | | 404 | `{"error": "error"}` | Несуществующий метод / путь | Проверить URL метода | | 5xx | — | Внутренняя ошибка сервиса | Повторить позже; если повторяется — написать в поддержку | ## Тарификация ошибочных запросов Запросы, завершившиеся ошибкой (любой статус кроме 200), **не тарифицируются** — юниты списываются только за успешные ответы. Подробнее — в разделе [Тарификация и биллинг](/docs/ru/billing).