Швидкий старт: API-ключ, REST і MCP
Від API-ключа до першого запиту GET /v1/landed-cost і виклику calculate_landed_cost із Claude Desktop.
За 10 хвилин ви створите ключ, порахуєте вартість авто «під ключ» через REST і викличете той самий розрахунок з Claude Desktop через MCP.
Що потрібно
- Обліковий запис власника компанії в Desk (створювати ключі може лише власник).
- Для кроку 3: Claude Desktop і Node.js (для
npx). - Базова адреса API. Продакшен:
https://api.importos.appЧекає на власника (домен-заглушка до рішення власника). Локально:http://127.0.0.1:4114.
Створіть API-ключ
- Увійдіть у Desk і відкрийте Налаштування → API-ключі.
- Назва:
quickstart. Права:read:pricingіmcp(для пошуку оголошень і VIN додайтеread:listings). - Натисніть «Створити ключ» і скопіюйте його одразу: ключ виглядає як
rv_live_…і показується один раз.

Збережіть ключ у змінній середовища, а не в коді:
export IMPORTOS_API_KEY="rv_live_..."
export IMPORTOS_API="https://api.importos.app" # локально: http://127.0.0.1:4114$env:IMPORTOS_API_KEY = "rv_live_..."
$env:IMPORTOS_API = "https://api.importos.app"Локальна розробка без Desk
Якщо ви піднімаєте API самі (pnpm --filter @importos/api start), ключ можна створити скриптом від власника
схеми: pnpm --filter @importos/api key:create --tenant vezemo --name local --scopes read:pricing,read:listings,mcp. Ключ друкується один раз.
Перший запит: POST /v1/landed-cost
Метод — POST
Розрахунок приймає складне тіло JSON, тому ендпоінт працює тільки через POST. GET /v1/landed-cost не
існує. GET використовують прості ендпоінти: market-price, vin, listings/search, rules, fx.
Порахуємо Toyota Camry 2018 (2.5 л, бензин) з Copart, майданчик Trenton (NJ), ставка $8000, доставка в Київ, наша комісія $700:
curl -s "$IMPORTOS_API/v1/landed-cost" \
-H "Authorization: Bearer $IMPORTOS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"lot_price": 8000,
"auction": "copart",
"vehicle": { "vin": "4T1B11HK5JU000001", "year": 2018, "fuel": "petrol", "engine_cc": 2487, "damage": "FRONT END" },
"from": { "auction_yard": "NJ - TRENTON" },
"to": { "country": "UA", "city": "Київ" },
"fee_model": { "model": "fixed", "amount": 700, "currency": "USD" },
"date": "2026-10-17"
}'Відповідь містить items[] (кожна стаття має kind, amount, currency, explanation, formula, source, verified), total, total_range, warnings[], assumptions[], rulesVersion, fx[] і confidence. Не забудьте показувати warnings користувачам: ставки з verified: false орієнтовні.
Звертайте увагу на заголовки відповіді X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset і X-Request-Id. Усі поля запиту: POST /v1/landed-cost.
Якщо ви отримали помилку, подивіться поле code у відповіді application/problem+json: unauthorized (немає або неправильний ключ), insufficient_scope (ключу бракує read:pricing), validation_error (тіло запиту), rate_limited (зачекайте Retry-After секунд). Таблиця кодів: Автентифікація та ліміти.
Підключіть MCP до Claude Desktop
- У Claude Desktop відкрийте Settings → Developer → Edit Config. Файл:
%APPDATA%\Claude\claude_desktop_config.json(Windows) або~/Library/Application Support/Claude/claude_desktop_config.json(macOS). - Додайте сервер (підставте свій ключ):
{
"mcpServers": {
"importos": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.importos.app/mcp",
"--header",
"Authorization:${IMPORTOS_AUTH}"
],
"env": { "IMPORTOS_AUTH": "Bearer rv_live_YOUR_KEY" }
}
}
}Форма Authorization:${...} (без пробілу після двокрапки, значення в env) обходить відому помилку лапок Windows з пробілами в args.
- Повністю закрийте Claude Desktop (через трей, а не лише вікно) і запустіть знову.
- Запитайте: «Скільки коштуватиме в Україні Toyota Camry 2018 2.5 з Copart NJ, ставка $8000?» Claude викличе інструмент
calculate_landed_costі поверне розбивку.

Інструмент приймає інші назви полів, ніж REST: lot_price_usd, destination_country, our_fee_usd, us_state. Приклад входу:
{
"lot_price_usd": 8000,
"auction": "copart",
"vehicle": {
"year": 2018,
"fuel": "petrol",
"engine_cc": 2487,
"vin": "4T1B11HK5JU000001",
"damage": "FRONT END"
},
"us_state": "NJ",
"destination_country": "UA",
"destination_city": "Kyiv",
"our_fee_usd": 700,
"target_currency": "USD"
}Усі інструменти, інші клієнти (Cursor, Claude Code, ChatGPT) та перевірка через curl: MCP.
Windows з антивірусом Norton
Фільтр мережі Norton (nllMon) на деяких машинах псує відповіді loopback-запитів до /mcp. Клієнт
скаржиться на «Invalid character in chunk size». Це не помилка сервера: додайте виняток у Web Protection або
перевіряйте на сервері. На Linux цього немає.
Що далі
- Автентифікація та ліміти: scopes, rate limit і формат помилок.
- SDK: ті самі виклики з типізованим клієнтом.
- Довідник API: решта ендпоінтів.
