Загальна інформація про роботу з API
У Pricer24 є API, який можна використовувати для інтеграції з вашими обліковими системами. Звертаємо вашу увагу на те, що API є не у всіх тарифних планах.
End-point для роботи з API – https://api.pricer24.com/
API використовує REST-архитектуру
Усі запити і відповіді API використовують формат JSON
Для роботи з API вам потрібен ключ
Опис існуючих методів та їх параметрів можна побачити у Swagger: ви можете надіслати готові запити та подивитися на відповідь сервера
Не більше ніж 10 запитів у секунду
Час виконання запиту – 60 секунд
При отриманні трьох помилок протягом 60 секунд ключ буде заблокований на 30 секунд
Для авторизації необхідно до запиту додавати query-параметр ApiKey зі значенням вашого ключа. В загальному вигляді ваш запит буде виглядати так:
https://api.pricer24.com/v1/{назва_ресурсу}?ApiKey={key}&Param1={value1}&Param2={value2}
Для роботи з API ми рекомендуємо створювати окремого користувача, який використовуватиметься виключно для обміну даними
У системі переходимо у Налаштування → Компанія → Користувачі
Натискаємо кнопку «Створити» на верхній панелі і створюємо нового користувача
Відкриваємо створеного користувача
У вкладці «Ролі» додаємо користувачу необхідні права
У вкладці «API-ключі» натискаємо на кнопку «Створити»
Створений ключ автоматично копіюється в буфер обміну. Тепер можна використовувати його для інтеграції.
Більшість GET-методів в API підтримують пагінацію (посторінкову видачу). Для роботи з пагінацією вам необхідно використовувати query-параметри:
MaxResultCount – скільки записів необхідно повернути
SkipCount – скільки записів необхідно пропустити
Максимально можливе значення для MaxResultCount = 1000, якщо передати більше значення, ви отримаєте помилку
За замовчуванням MaxResultCount = 10, якщо параметр не передавати, сервер поверне лише 10 записів
За замовчуванням SkipCount = 0
Загальна кількість записів міститься у властивості totalCount об'єкта result:
У загальному вигляді ваш запит буде виглядати GET https://api.pricer24.com/v1/{method}?SkipCount={PageSize}*{PageNumber-1}&MaxResultCount={PageSize}&ApiKey={key}, де:
PageSize – розмір сторінки
PageNumber – номер сторінки
Кількість сторінок можна обчислити за простою формулою Ceil(TotalCount / PageSize), де Ceil – округлення вгору до цілого.
Якщо загальна кількість записів = 2700, і ми будемо отримувати відповідь по 1000 записам, для отримання усіх записів необхідно буде відправити 3 запити:
https://api.pricer24.com/v1/{имя_ресурса}?SkipCount=0&MaxResultCount=1000&ApiKey={key} – отримуємо першу 1000 записів
https://api.pricer24.com/v1/{имя_ресурса}?SkipCount=1000&MaxResultCount=1000&ApiKey={key} – отримуємо наступну 1000 записів
https://api.pricer24.com/v1/{имя_ресурса}?SkipCount=2000&MaxResultCount=1000&ApiKey={key} – отримуємо останні 700 записів
Для того, щоб відповідь була мінімальною за розміром, за замовчуванням повертається мінімальна інформація про об'єкти. Для отримання розширеної інформації необхідно передавати query-параметр Include, де через знак коми необхідно перерахувати, за якими об'єктами потрібна розширена інформація.
При надсиланні запиту GET https://api.pricer24.com/v1/contractors?ApiKey={key} без Include сервер поверне таку відповідь:
Масиви об'єктів contractorPriceTypes та contractorWarehouses мають значення null, так як не повертаються сервером.
Однак, якщо надіслати запит GET https://api.pricer24.com/v1/contractors?ApiKey={key}&Include=PriceTypes,Warehouses, то відповідь вже буде містити ціни і склади контрагента:
Сервер повертає стандартні коди відповідей:
200 – запит успішно виконано
401 – помилка авторизації
403 – не вистачає прав
404 – метод не знайдено
501 – внутрішня помилка серверу, скоріше за все запит складено некоректно
У випадку помилки інформація про неї буде повернена в об’єкті error:
Також для визначення, чи успішний запит, чи ні, можна обробляти властивість success, де true – запит виконано успішно, false – під час виконання виникла помилка.
Загальна інформація
End-point для роботи з API – https://api.pricer24.com/
API використовує REST-архитектуру
Усі запити і відповіді API використовують формат JSON
Для роботи з API вам потрібен ключ
Опис існуючих методів та їх параметрів можна побачити у Swagger: ви можете надіслати готові запити та подивитися на відповідь сервера
Обмеження
Не більше ніж 10 запитів у секунду
Час виконання запиту – 60 секунд
При отриманні трьох помилок протягом 60 секунд ключ буде заблокований на 30 секунд
Авторизація
Для авторизації необхідно до запиту додавати query-параметр ApiKey зі значенням вашого ключа. В загальному вигляді ваш запит буде виглядати так:
https://api.pricer24.com/v1/{назва_ресурсу}?ApiKey={key}&Param1={value1}&Param2={value2}
Отримання API-ключа
Для роботи з API ми рекомендуємо створювати окремого користувача, який використовуватиметься виключно для обміну даними
У системі переходимо у Налаштування → Компанія → Користувачі
Натискаємо кнопку «Створити» на верхній панелі і створюємо нового користувача
Відкриваємо створеного користувача
У вкладці «Ролі» додаємо користувачу необхідні права
У вкладці «API-ключі» натискаємо на кнопку «Створити»
Створений ключ автоматично копіюється в буфер обміну. Тепер можна використовувати його для інтеграції.
«Пагінація»
Більшість GET-методів в API підтримують пагінацію (посторінкову видачу). Для роботи з пагінацією вам необхідно використовувати query-параметри:
MaxResultCount – скільки записів необхідно повернути
SkipCount – скільки записів необхідно пропустити
Особливості
Максимально можливе значення для MaxResultCount = 1000, якщо передати більше значення, ви отримаєте помилку
За замовчуванням MaxResultCount = 10, якщо параметр не передавати, сервер поверне лише 10 записів
За замовчуванням SkipCount = 0
Загальна кількість записів міститься у властивості totalCount об'єкта result:
У загальному вигляді ваш запит буде виглядати GET https://api.pricer24.com/v1/{method}?SkipCount={PageSize}*{PageNumber-1}&MaxResultCount={PageSize}&ApiKey={key}, де:
PageSize – розмір сторінки
PageNumber – номер сторінки
Кількість сторінок можна обчислити за простою формулою Ceil(TotalCount / PageSize), де Ceil – округлення вгору до цілого.
Приклад
Якщо загальна кількість записів = 2700, і ми будемо отримувати відповідь по 1000 записам, для отримання усіх записів необхідно буде відправити 3 запити:
https://api.pricer24.com/v1/{имя_ресурса}?SkipCount=0&MaxResultCount=1000&ApiKey={key} – отримуємо першу 1000 записів
https://api.pricer24.com/v1/{имя_ресурса}?SkipCount=1000&MaxResultCount=1000&ApiKey={key} – отримуємо наступну 1000 записів
https://api.pricer24.com/v1/{имя_ресурса}?SkipCount=2000&MaxResultCount=1000&ApiKey={key} – отримуємо останні 700 записів
Query-параметр Include
Для того, щоб відповідь була мінімальною за розміром, за замовчуванням повертається мінімальна інформація про об'єкти. Для отримання розширеної інформації необхідно передавати query-параметр Include, де через знак коми необхідно перерахувати, за якими об'єктами потрібна розширена інформація.
Приклад
При надсиланні запиту GET https://api.pricer24.com/v1/contractors?ApiKey={key} без Include сервер поверне таку відповідь:
Масиви об'єктів contractorPriceTypes та contractorWarehouses мають значення null, так як не повертаються сервером.
Однак, якщо надіслати запит GET https://api.pricer24.com/v1/contractors?ApiKey={key}&Include=PriceTypes,Warehouses, то відповідь вже буде містити ціни і склади контрагента:
Обробка помилок
Сервер повертає стандартні коди відповідей:
200 – запит успішно виконано
401 – помилка авторизації
403 – не вистачає прав
404 – метод не знайдено
501 – внутрішня помилка серверу, скоріше за все запит складено некоректно
У випадку помилки інформація про неї буде повернена в об’єкті error:
Також для визначення, чи успішний запит, чи ні, можна обробляти властивість success, де true – запит виконано успішно, false – під час виконання виникла помилка.
Оновлено: 28/08/2024
Дякуємо!