PartX API
•
для пользователей и разработчиков
API PartX: импорт прайса, обновления и справочники
API предназначен для автоматизации: синхронизация цен/остатков из 1С/ERP, регулярные обновления, отчёты по импорту, справочники брендов и городов.
Примечание: спецификация ниже — «боевой» шаблон. Если какие-то эндпоинты/поля у вас называются иначе, просто переименуйте в реализации.
Для пользователей (без разработки)
Если вы поставщик и хотите автоматически обновлять цены/остатки из 1С/ERP — API решает это без ручной загрузки файлов.
Сценарий
Обновления по расписанию
Раз в час/день отправляете изменения — покупатели видят актуальные данные.
Сценарий
Большие каталоги
API лучше для 100k+ строк: инкремент, отчёты, контроль качества.
Сценарий
Несколько складов
Передаёте склад/город в каждой позиции — фильтры и сроки работают точно.
Как подключиться
- Зарегистрируйте компанию и заполните профиль (ИНН, контакты, города).
- Включите «API-доступ» в кабинете (или запросите у поддержки).
- Получите API-ключ и передайте разработчику/интегратору.
- Настройте импорт: полный или инкрементальный режим.
Доступ и авторизация
Базовый вариант: API-ключ в заголовке. Альтернатива: Bearer токен. Ниже — рекомендуемый стандарт.
API Key (рекомендовано)
X-Api-Key: YOUR_KEYX-Company-Id: 123 (если ключ мульти-компанийный — опционально)
Bearer (альтернатива)
Authorization: Bearer YOUR_TOKENДля токенов чаще нужна выдача/ротация/истечение срока.
Проверка доступа
Эндпоинт
GET https://www.partx.online/api/v1/meВозвращает компанию, права и лимиты.
curl -s "https://www.partx.online/api/v1/me" \
-H "X-Api-Key: YOUR_KEY"
Конвенции API
Формат ответов
Все ответы — JSON. Ошибки — единый формат
{ "error": { ... } }.
Idempotency
Для импорта используйте
Idempotency-Key, чтобы повторный запрос не создавал дубль.
Пагинация
?limit=50&cursor=... (cursor-based). В ответе: next_cursor.
Версионирование
В URL:
/api/v1. Несовместимые изменения — только в v2.
Эндпоинты (основные)
| Метод | URL | Назначение |
|---|---|---|
| GET | https://www.partx.online/api/v1/me |
Профиль компании и права |
| GET | https://www.partx.online/api/v1/dict/brands |
Справочник брендов (поиск/автокомплит) |
| GET | https://www.partx.online/api/v1/dict/cities |
Справочник городов/складов |
| POST | https://www.partx.online/api/v1/supplier/pricelists |
Создать прайс-лист (контейнер) |
| POST | https://www.partx.online/api/v1/supplier/pricelists/{id}/import |
Импорт файла (XLSX/CSV) или URL |
| POST | https://www.partx.online/api/v1/supplier/pricelists/{id}/sync |
Инкрементальная синхронизация (upsert/delete) |
| GET | https://www.partx.online/api/v1/supplier/imports/{import_id} |
Статус импорта + отчёт по ошибкам |
Совет по интеграции
Для больших каталогов используйте sync (инкремент), чтобы не гонять весь прайс при каждом изменении.
Импорт прайса: 2 режима
Режим A: полный импорт (XLSX/CSV)
Когда проще “перезаливать” весь прайс: 1–50k строк или редкие обновления.
Multipart загрузка
curl -X POST "https://www.partx.online/api/v1/supplier/pricelists/123/import" \
-H "X-Api-Key: YOUR_KEY" \
-H "Idempotency-Key: 2b6f8f0e-..." \
-F "file=@prices.xlsx" \
-F "mode=full" \
-F "delimiter=;"
Режим B: инкремент (upsert/delete)
Для больших каталогов и частых обновлений: отправляете только изменения.
JSON sync
curl -X POST "https://www.partx.online/api/v1/supplier/pricelists/123/sync" \
-H "X-Api-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"mode": "incremental",
"upsert": [
{
"sku": "06A109479",
"brand": "VAG",
"price": 1790,
"stock": 12,
"delivery_days": "1-2",
"city": "Москва"
}
],
"delete": [
{ "sku": "90915-YZZE1", "brand": "TOYOTA", "city": "Москва" }
]
}'
Статус импорта
Импорт асинхронный: API возвращает
import_id. Статус проверяйте по эндпоинту импорта.
GET https://www.partx.online/api/v1/supplier/imports/{import_id}
Headers: X-Api-Key: YOUR_KEY
{
"import_id": "imp_20260108_001",
"status": "finished",
"stats": {
"rows_total": 100000,
"rows_ok": 99820,
"rows_failed": 180
},
"errors": [
{ "row": 15, "field": "price", "code": "INVALID_NUMBER", "message": "Цена должна быть числом" }
]
}
Схемы данных (позиция прайса)
Рекомендуемый набор полей. Минимум: sku, brand, price.
Поле → тип
sku— string (артикул)brand— stringprice— numbercurrency— string (RUB/EUR/USD), опциональноstock— integer (остаток), опциональноdelivery_days— string (2или3-5), опциональноcity— string, опциональноwarehouse— string, опциональноname— string, опциональноmin_qty— integer, опциональноmultiplicity— integer, опционально
Пример объекта
{
"sku": "0 986 479 123",
"brand": "BOSCH",
"price": 1790,
"currency": "RUB",
"stock": 12,
"delivery_days": "1-2",
"city": "Москва",
"warehouse": "Склад-1",
"name": "Фильтр масляный",
"min_qty": 1,
"multiplicity": 1
}
Внутри PartX артикул может быть нормализован (пробелы/дефисы/регистр).
Ошибки и коды ответов
HTTP коды
- 200/201 — успех
- 400 — некорректные данные
- 401 — нет авторизации
- 403 — нет прав
- 404 — не найдено
- 409 — конфликт / дубль (Idempotency)
- 429 — лимит запросов
- 500 — ошибка сервера
Единый формат ошибки
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Некорректные данные",
"details": [
{ "field": "price", "code": "INVALID_NUMBER", "message": "Цена должна быть числом" }
],
"request_id": "req_abc123"
}
}
Лимиты и рекомендации
Rate limit
например, 60 req/min
Укажите ваши реальные значения. При 429 используйте retry/backoff.
Размер файла
например, до 50–200 МБ
Для очень больших прайсов лучше CSV + инкремент.
Надёжность
Idempotency-Key
Всегда ставьте ключ на импорт/синк — это защита от дублей.
FAQ
Кому нужен API PartX? +
Поставщикам и интеграторам: чтобы автоматически обновлять цены/остатки и сроки поставки из 1С/ERP/WMS без ручной загрузки файлов.
Можно ли работать только через Excel/CSV без API? +
Да. Используйте шаблон XLSX и требования формата. API нужен, когда вы хотите обновлять данные по расписанию или очень часто.
Какой режим обновления лучше — полный или инкрементальный? +
Для небольших прайсов — полный импорт. Для больших каталогов и частых обновлений — инкрементальный режим (upsert/delete).
Как обрабатываются ошибки в позициях? +
Импорт создаёт отчёт: сколько строк принято, сколько отклонено и почему. Ошибки возвращаются в формате JSON с кодами и подсказками.
Нужна интеграция под 1С/ERP?
Дайте разработчику API-ключ и используйте инкрементальные обновления — это самый быстрый путь к актуальным ценам и остаткам.
Написать в поддержку
Также доступны: формат прайса и шаблон XLSX.