Тема
Быстрый старт
В примерах используется тестовое окружение https://api.test.inlog.ai. SDK у платформы нет — примеры даны для curl и JavaScript (fetch, Node.js 18+).
1. Запрос без авторизации
Проверьте доступность API публичным справочником типов грузов:
bash
curl "https://api.test.inlog.ai/api/v1/public/cargo-types"js
const res = await fetch('https://api.test.inlog.ai/api/v1/public/cargo-types')
const cargoTypes = await res.json()
console.log(cargoTypes.map((t) => `${t.id}: ${t.title} (${t.type})`))2. Получите API-ключ
API-ключ компании создаёт её администратор. Коротко:
- Администратор получает токен входа:
POST /api/v1/auth/loginс email и паролем. - С этим токеном создаёт ключ:
POST /api/v1/logistic-company/api-key/createс названием ключа. - Значение ключа из поля
keyответа сохраняется в хранилище секретов вашей системы.
bash
# 1. Вход администратора
curl -X POST "https://api.test.inlog.ai/api/v1/auth/login" \
-H "Content-Type: application/json" \
-d '{"email": "admin@example.com", "password": "YOUR_PASSWORD"}'
# 2. Создание API-ключа (accessToken из ответа шага 1)
curl -X POST "https://api.test.inlog.ai/api/v1/logistic-company/api-key/create" \
-H "Authorization: Bearer YOUR_JWT" \
-H "Content-Type: application/json" \
-d '{"title": "ERP integration"}'js
const BASE = 'https://api.test.inlog.ai'
const login = await fetch(`${BASE}/api/v1/auth/login`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email: 'admin@example.com', password: 'YOUR_PASSWORD' }),
})
const { accessToken } = await login.json()
const created = await fetch(`${BASE}/api/v1/logistic-company/api-key/create`, {
method: 'POST',
headers: { Authorization: `Bearer ${accessToken}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ title: 'ERP integration' }),
})
const apiKey = await created.json()
console.log(apiKey.id, apiKey.title) // значение ключа — в apiKey.key, сохраните его в секретахПодробнее — Авторизация.
3. Вызов интеграционного API
Передайте ключ в заголовке x-api-token. Например, получите список стран и городов:
bash
curl "https://api.test.inlog.ai/api/v1/integrations/logistic-company/countries" \
-H "x-api-token: YOUR_API_KEY"js
const res = await fetch('https://api.test.inlog.ai/api/v1/integrations/logistic-company/countries', {
headers: { 'x-api-token': 'YOUR_API_KEY' },
})
if (!res.ok) {
const error = await res.json()
throw new Error(`${res.status} ${error.message}`)
}
const { total, data } = await res.json()
console.log(total, data.map((c) => c.title))Ответ:
json
{
"total": 1,
"data": [
{
"id": 1,
"title": "Кыргызстан",
"cities": [{ "id": 1, "title": "Бишкек", "countryId": 1 }]
}
]
}4. Список посылок компании
bash
curl "https://api.test.inlog.ai/api/v1/integrations/logistic-company/parcel/list?page=1&pageSize=20&statuses=SENT" \
-H "x-api-token: YOUR_API_KEY"js
const url = new URL('https://api.test.inlog.ai/api/v1/integrations/logistic-company/parcel/list')
url.searchParams.set('page', '1')
url.searchParams.set('pageSize', '20')
url.searchParams.append('statuses', 'SENT')
const res = await fetch(url, { headers: { 'x-api-token': 'YOUR_API_KEY' } })
const { total, data } = await res.json()
console.log(total, data.map((p) => p.trackCode))Фильтры списков — Логистика и маркетплейс.