Skip to content

API Reference

Backend: PHP Slim 4 | Base: /api | Auth: PHP Sessions + CSRF

System Endpoints

ActionMethodEndpointDescription
Health checkGET/healthПроверка здоровья (БД + Redis)

Диагностическая панель живёт отдельно от marketplace-API под admin.partizap.ru/dev-admin.partizap.ru (/api/admin/diagnostics) за mTLS и админской сессией — фронту маркетплейса она не нужна.

Auth Endpoints

ActionMethodEndpointDescription
LoginPOST/auth/login{email, password}Авторизация (rate limited)
RegisterPOST/auth/register{email, password, display_name}Регистрация (rate limited)
Current userGET/auth/meПрофиль текущего пользователя
Verify emailPOST/auth/verify-email{code} (6 digits)Подтверждение email (rate limited)
Resend codePOST/auth/resend-verificationПовторная отправка кода (60с пауза)
Forgot passwordPOST/auth/forgot-password{email}Сброс пароля (rate limited, always 200)
Reset passwordPOST/auth/reset-password{token, password}Новый пароль по токену
LogoutPOST/auth/logoutЗавершение сессии
Logout allPOST/auth/logout-allЗавершение всех сессий кроме текущей

Store Endpoints (public)

ActionMethodEndpointDescription
ProductsGET/store/products?q&category_id&make_id&price_min&sort=date_desc|relevanceСписок товаров с фильтрами и полнотекстовым поиском
SuggestGET/store/products/suggest?q&limit=6Лёгкий автокомплит для строки поиска (id, title, price, thumbnail)
Product detailGET/store/products/{id}Карточка товара с фото, совместимостью, продавцом
Seller profileGET/store/sellers/{id}Публичный профиль продавца
Seller productsGET/store/sellers/{id}/productsТовары продавца
CategoriesGET/store/categories?type=part|condition|attributeСписок категорий (кэш 1ч)
RegionsGET/store/geo/regionsСписок регионов (кэш 1ч)
CitiesGET/store/geo/regions/{id}/citiesГорода в регионе (кэш 1ч)
DistrictsGET/store/geo/cities/{id}/districtsРайоны города (кэш 1ч)
MetroGET/store/geo/cities/{id}/metroМетро в городе (кэш 1ч)
Car makesGET/store/cars/makes?popular=trueМарки авто (кэш 1ч)
Car modelsGET/store/cars/makes/{id}/modelsМодели марки (кэш 1ч)
GenerationsGET/store/cars/models/{id}/generationsПоколения модели (кэш 1ч)
ModificationsGET/store/cars/generations/{id}/modificationsМодификации поколения

Vendor Endpoints (authenticated)

ActionMethodEndpointDescription
My profileGET/vendor/meПрофиль продавца с бизнес-данными
Update profilePUT/vendor/meОбновление профиля (+ смена пароля через current_password + password)
Upload avatarPOST/vendor/me/avatarЗагрузка аватара (макс. 5МБ)
My productsGET/vendor/products?status=draft&limit=20&cursor=...Список своих товаров
Create productPOST/vendor/productsСоздание черновика
Get productGET/vendor/products/{id}Детали товара
Update productPUT/vendor/products/{id}Обновление товара
Delete productDELETE/vendor/products/{id}Удаление товара
PublishPOST/vendor/products/{id}/publishdraft → pending
Upload imagePOST/vendor/products/{id}/imagesФото товара (макс. 10МБ)
Reorder imagesPUT/vendor/products/{id}/images/order{image_ids: []}Изменение порядка фото
Delete imageDELETE/vendor/products/{id}/images/{imgId}Удаление фото
List favoritesGET/vendor/favoritesСписок избранного
Add favoritePOST/vendor/favoritesДобавление в избранное
Remove favoriteDELETE/vendor/favorites/{product_id}Удаление из избранного
List sessionsGET/vendor/sessionsСписок активных сессий (+ is_current)
Delete sessionDELETE/vendor/sessions/{id}Завершение конкретной сессии
List phonesGET/vendor/me/phonesСписок телефонов (до 5)
Add phonePOST/vendor/me/phonesДобавить телефон
Update phonePUT/vendor/me/phones/{id}Обновить телефон/метку/primary
Delete phoneDELETE/vendor/me/phones/{id}Удалить телефон

Admin Endpoints (admin only — AuthMiddleware + AdminMiddleware)

Статистика

ActionMethodEndpointDescription
Dashboard statsGET/admin/statsОбщая статистика
Product statsGET/admin/stats/productsСтатистика товаров по статусам
User statsGET/admin/stats/usersСтатистика регистраций и активности

Пользователи

ActionMethodEndpointDescription
List usersGET/admin/usersСписок пользователей с фильтрами
Get userGET/admin/users/{id}Просмотр пользователя
Update userPUT/admin/users/{id}Редактирование пользователя
Delete userDELETE/admin/users/{id}Удаление пользователя

Товары (модерация)

ActionMethodEndpointDescription
List all productsGET/admin/products?status=pending&limit=20&cursor=...Все товары (любой статус)
List pendingGET/admin/products/pendingТовары на модерации
ApprovePUT/admin/products/{id}/approveОдобрить (pending → active)
RejectPUT/admin/products/{id}/reject{reason: string}Отклонить с причиной
Delete productDELETE/admin/products/{id}Удаление товара

Справочники: марки/модели/поколения

ActionMethodEndpointDescription
Create makePOST/admin/cars/makesСоздание марки
Update makePUT/admin/cars/makes/{id}Редактирование марки
Delete makeDELETE/admin/cars/makes/{id}Удаление марки (409 если есть модели или товары)
Create modelPOST/admin/cars/modelsСоздание модели
Update modelPUT/admin/cars/models/{id}Редактирование модели
Delete modelDELETE/admin/cars/models/{id}Удаление модели (409 если есть поколения или товары)
Create generationPOST/admin/cars/generationsСоздание поколения
Update generationPUT/admin/cars/generations/{id}Редактирование поколения
Delete generationDELETE/admin/cars/generations/{id}Удаление поколения (409 если есть модификации или товары)
Create modificationPOST/admin/cars/modificationsСоздание модификации
Update modificationPUT/admin/cars/modifications/{id}Редактирование модификации
Delete modificationDELETE/admin/cars/modifications/{id}Удаление модификации

Справочники: категории

ActionMethodEndpointDescription
Create categoryPOST/admin/categoriesСоздание категории
Update categoryPUT/admin/categories/{id}Редактирование категории
Delete categoryDELETE/admin/categories/{id}Удаление категории

Справочники: гео

ActionMethodEndpointDescription
Create regionPOST/admin/geo/regionsСоздание региона
Update regionPUT/admin/geo/regions/{id}Редактирование региона
Create cityPOST/admin/geo/citiesСоздание города
Update cityPUT/admin/geo/cities/{id}Редактирование города
Create districtPOST/admin/geo/districtsСоздание района
Update districtPUT/admin/geo/districts/{id}Редактирование района
Create metroPOST/admin/geo/metro-stationsСоздание станции метро
Update metroPUT/admin/geo/metro-stations/{id}Редактирование станции метро