# InSales API Documentation для Context7.com ## Общая информация InSales - это российская платформа электронной коммерции, предоставляющая REST API для управления интернет-магазинами. **Базовый URL:** `https://api.insales.ru/` **Версия API:** v1 **Формат:** JSON **Аутентификация:** Basic HTTP Authentication ## Базовая структура запросов Все запросы к API InSales имеют следующую структуру: ``` https://api.insales.ru/admin/{resource}.json ``` ### Заголовки ``` Content-Type: application/json Authorization: Basic {base64_encoded_credentials} ``` ## Основные ресурсы и эндпоинты ### 1. Account (Аккаунт) ``` GET /admin/account.json - Получить информацию об аккаунте PUT /admin/account.json - Обновить аккаунт ``` ### 2. Products (Товары) ``` GET /admin/products.json - Список товаров GET /admin/products/{id}.json - Получить товар POST /admin/products.json - Создать товар PUT /admin/products/{id}.json - Обновить товар DELETE /admin/products/{id}.json - Удалить товар GET /admin/products/count.json - Количество товаров ``` Параметры для создания товара: - `product[title]` (required) - название товара - `product[category_id]` - ID категории - `product[permalink]` - permalink товара - `product[available]` - доступность товара - `product[price]` - цена - `product[old_price]` - старая цена - `product[description]` - описание ### 3. Categories (Категории) ``` GET /admin/categories.json - Список категорий GET /admin/categories/{id}.json - Получить категорию POST /admin/categories.json - Создать категорию PUT /admin/categories/{id}.json - Обновить категорию DELETE /admin/categories/{id}.json - Удалить категорию ``` ### 4. Orders (Заказы) ``` GET /admin/orders.json - Список заказов GET /admin/orders/{id}.json - Получить заказ POST /admin/orders.json - Создать заказ PUT /admin/orders/{id}.json - Обновить заказ GET /admin/orders/count.json - Количество заказов ``` ### 5. Clients (Клиенты) ``` GET /admin/clients.json - Список клиентов GET /admin/clients/{id}.json - Получить клиента POST /admin/clients.json - Создать клиента PUT /admin/clients/{id}.json - Обновить клиента DELETE /admin/clients/{id}.json - Удалить клиента ``` ### 6. Collections (Коллекции) ``` GET /admin/collections.json - Список коллекций GET /admin/collections/{id}.json - Получить коллекцию POST /admin/collections.json - Создать коллекцию PUT /admin/collections/{id}.json - Обновить коллекцию DELETE /admin/collections/{id}.json - Удалить коллекцию ``` ### 7. Variants (Варианты товара) ``` GET /admin/products/{product_id}/variants.json - Список вариантов товара GET /admin/products/{product_id}/variants/{id}.json - Получить вариант POST /admin/products/{product_id}/variants.json - Создать вариант PUT /admin/products/{product_id}/variants/{id}.json - Обновить вариант DELETE /admin/products/{product_id}/variants/{id}.json - Удалить вариант ``` ### 8. Images (Изображения) ``` GET /admin/products/{product_id}/images.json - Список изображений товара GET /admin/products/{product_id}/images/{id}.json - Получить изображение POST /admin/products/{product_id}/images.json - Создать изображение PUT /admin/products/{product_id}/images/{id}.json - Обновить изображение DELETE /admin/products/{product_id}/images/{id}.json - Удалить изображение ``` ### 9. Accessories (Опции) ``` GET /admin/accessories.json - Список опций GET /admin/accessories/{id}.json - Получить опцию POST /admin/accessories.json - Создать опцию PUT /admin/accessories/{id}.json - Обновить опцию DELETE /admin/accessories/{id}.json - Удалить опцию ``` ### 10. Webhooks (Веб-хуки) ``` GET /admin/webhooks.json - Список веб-хуков GET /admin/webhooks/{id}.json - Получить веб-хук POST /admin/webhooks.json - Создать веб-хук PUT /admin/webhooks/{id}.json - Обновить веб-хук DELETE /admin/webhooks/{id}.json - Удалить веб-хук ``` ### 11. Files (Файлы) ``` GET /admin/files.json - Список файлов GET /admin/files/{id}.json - Получить файл POST /admin/files.json - Создать файл DELETE /admin/files/{id}.json - Удалить файл ``` ### 12. Blogs (Блоги) ``` GET /admin/blogs.json - Список блогов GET /admin/blogs/{id}.json - Получить блог POST /admin/blogs.json - Создать блог PUT /admin/blogs/{id}.json - Обновить блог DELETE /admin/blogs/{id}.json - Удалить блог ``` ### 13. Articles (Статьи) ``` GET /admin/blogs/{blog_id}/articles.json - Список статей блога GET /admin/blogs/{blog_id}/articles/{id}.json - Получить статью POST /admin/blogs/{blog_id}/articles.json - Создать статью PUT /admin/blogs/{blog_id}/articles/{id}.json - Обновить статью DELETE /admin/blogs/{blog_id}/articles/{id}.json - Удалить статью ``` ### 14. Properties (Свойства) ``` GET /admin/properties.json - Список свойств GET /admin/properties/{id}.json - Получить свойство POST /admin/properties.json - Создать свойство PUT /admin/properties/{id}.json - Обновить свойство DELETE /admin/properties/{id}.json - Удалить свойство ``` ### 15. Delivery Variants (Варианты доставки) ``` GET /admin/delivery_variants.json - Список вариантов доставки GET /admin/delivery_variants/{id}.json - Получить вариант доставки POST /admin/delivery_variants.json - Создать вариант доставки PUT /admin/delivery_variants/{id}.json - Обновить вариант доставки DELETE /admin/delivery_variants/{id}.json - Удалить вариант доставки ``` ## Примеры запросов ### Получение списка товаров ```bash curl -X GET \ https://api.insales.ru/admin/products.json \ -H 'Authorization: Basic {credentials}' \ -H 'Content-Type: application/json' ``` ### Создание товара ```bash curl -X POST \ https://api.insales.ru/admin/products.json \ -H 'Authorization: Basic {credentials}' \ -H 'Content-Type: application/json' \ -d '{ "product": { "title": "Новый товар", "category_id": 1, "available": true, "price": "1000.00" } }' ``` ### Получение заказа ```bash curl -X GET \ https://api.insales.ru/admin/orders/{order_id}.json \ -H 'Authorization: Basic {credentials}' \ -H 'Content-Type: application/json' ``` ## Параметры пагинации Большинство списочных эндпоинтов поддерживают пагинацию: - `page` - номер страницы (по умолчанию 1) - `per_page` - количество элементов на странице (по умолчанию 25, максимум 250) - `updated_since` - фильтр по дате обновления - `from_id` - начальный ID для выборки ## Ограничения API - Лимит запросов: 500 запросов в течение 5 минут на один аккаунт - Заголовок ответа `API-Usage-Limit` показывает текущее использование лимита - При превышении лимита возвращается HTTP статус 429 ## Коды ответов - `200 OK` - успешный запрос - `201 Created` - успешное создание ресурса - `400 Bad Request` - некорректный запрос - `401 Unauthorized` - ошибка аутентификации - `404 Not Found` - ресурс не найден - `422 Unprocessable Entity` - ошибка валидации - `429 Too Many Requests` - превышен лимит запросов - `500 Internal Server Error` - внутренняя ошибка сервера ## Форматы данных ### Дата и время Все даты в API возвращаются в формате ISO 8601: `2025-01-18T00:57:38.479+03:00` ### Денежные суммы Денежные суммы передаются как строки с десятичной точкой: `"100.50"` ### Булевые значения Булевые значения передаются как `true` или `false` ## Webhook события InSales поддерживает следующие события веб-хуков: - `order/create` - создание заказа - `order/update` - обновление заказа - `product/create` - создание товара - `product/update` - обновление товара - `client/create` - создание клиента - `client/update` - обновление клиента ## Важные замечания 1. Всегда используйте HTTPS для всех запросов к API 2. Обрабатывайте ошибки и лимиты запросов в вашем коде 3. Используйте параметр `updated_since` для синхронизации данных 4. Храните учетные данные API в безопасном месте 5. Тестируйте интеграцию на тестовом аккаунте перед запуском в продакшн ## Полезные ссылки - Официальная документация: https://api.insales.ru/ - Примеры на GitHub: https://github.com/youlooknicetoday/insales - Node.js модуль: https://github.com/pomeo/node-insales - Python модуль: https://github.com/youlooknicetoday/insales --- Этот файл содержит основную информацию о InSales API для использования с Context7.com. Всегда проверяйте актуальную документацию на официальном сайте для получения последних изменений.