До вмісту
Видавництво Уроборос — головна Видавництво Уроборос

API v1

Опис API

Цей опис для CRM або іншої системи, яка читає каталог. Ключ видає адміністратор магазину. Ціни передаються цілими копійками.

Той самий контракт для моделі: Markdown, OpenAPI, /api/llms.txt.

Авторизація

Ключ передається в кожному запиті.

Authorization: Bearer {key}
Accept: application/json

Базова адреса: https://ouroborosbooks.com.ua/api/v1/integrations

Список товарів

GET https://ouroborosbooks.com.ua/api/v1/integrations/products

Параметр Значення
pageНомер сторінки, від 1.
limitРозмір сторінки. Типово 15, максимум 50.
filter[name]Частина назви товару.
filter[sku]Точний артикул.
include=offersДодати варіанти в offers.
curl -H "Authorization: Bearer {key}" \
  -H "Accept: application/json" \
  "https://ouroborosbooks.com.ua/api/v1/integrations/products?limit=15&filter[sku]=SKU-1&include=offers"
{
  "current_page": 1,
  "data": [
    {
      "id": 12,
      "name": "Product",
      "sku": "SKU-1",
      "quantity": 5,
      "currency_code": "UAH",
      "min_price": 49000,
      "max_price": 49000,
      "has_offers": false,
      "is_archived": false,
      "category_id": 3
    }
  ],
  "per_page": 15,
  "total": 1,
  "from": 1,
  "to": 1,
  "last_page": 1
}

Один товар

GET https://ouroborosbooks.com.ua/api/v1/integrations/products/{id}

Товар повертається в data. include=offers додає варіанти і тут. Невідомий id повертає 404.

Поля

Поле Значення
idІдентифікатор товару в цьому магазині.
name, description, skuНазва, текстовий опис і артикул першого варіанта.
quantityСума залишків варіантів.
currency_codeВалюта магазину.
min_price, max_priceНайменша і найбільша ціна варіанта, у копійках. 49000 означає 490.00.
weight, length, height, widthГабарити першого варіанта або null.
has_offersТак, якщо у товару більше одного варіанта.
is_archivedТак, якщо товар не опублікований.
category_idІдентифікатор першої категорії або null.
offersЛише з include=offers. У варіанта є id, sku, price, quantity, properties.

Права ключа

Ключ може оновлювати товари і при цьому не бачити замовлення. MCP отримає ті самі права.

catalog:readGET /products
catalog:writePUT/PATCH /catalog/products/{external_id}, PUT /catalog/categories/{external_id}, PUT /catalog/tags/{external_id}
orders:readGET /orders?updated_since=&cursor=
orders:write-statusPOST /orders/{reference}/status
content:readGET /content/pages
content:writePUT /content/pages/{external_id}, POST .../publish, POST .../unpublish

Кожен ключ має власні 60 запитів за хвилину. Відповідь 429 містить Retry-After. Помилка завжди має code, message і field. Запис товару приймає image_url. Список сторінок іде курсором cursor і limit.

Помилки

  • 401 — ключа немає, він невідомий або відкликаний.
  • 403 — у ключа немає права catalog:read.
  • 404 — товару з таким id немає.