Общая информация о работе с API
В Pricer24 есть API, которое вы можете использовать для интеграции с вашими учетными системами. Обращаем ваше внимание на то, что API доступно не во всех тарифных планах.
End-point для работы с API - https://api.pricer24.com/
API использует REST-архитектуру
Все запросы и ответы API используют формат JSON
Для работы с API вам необходим ключ
Описание существующих методов и их параметров можно увидеть в Swagger, где можно отправить готовые запросы и посмотреть на ответ сервера
Не более 10 запросов в секунду
Время на выполнение запроса - 60 секунд
При получении 3х ошибок в течении 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 секунд
При получении 3х ошибок в течении 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
Спасибо!