Справочник API
Основные соглашения работы с API Configo — версионирование, аутентификация, формат запросов и обработка ошибок.
Базовый URL
Все запросы к API отправляются на:
https://configo.org/api
Версионирование API
API Configo версионируется через путь URL. Текущая и единственная доступная версия — v1:
https://configo.org/api/v1/...
Аутентификация
API Configo использует OAuth 2.0. Аутентифицируйте свои запросы, включая токен доступа в заголовок Authorization как
Bearer-токен:
Authorization: Bearer <access_token>
Запросы без валидного токена, либо с истёкшим или отозванным токеном, получат ответ 401 Unauthorized.
Области доступа (scopes)
Токены доступа выдаются с одной или несколькими областями доступа, которые определяют, к каким частям API токен имеет доступ. Каждый запрос проверяется на соответствие областям, требуемым эндпоинтом, — на токене должны присутствовать все требуемые области, а не только одна из них.
| Область | Даёт доступ к |
|---|---|
identify |
Профилю аутентифицированного пользователя, подключённым аккаунтам, рефералам и локали |
billing |
Подписке, истории платежей и информации о тарифе |
projects |
Деталям проекта и настройкам уровня проекта (роли, участники, статусы) |
orders |
Заказам внутри проекта |
contacts |
Контактам внутри проекта, включая поля контактов и журналы активности |
materials |
Материалам внутри проекта |
configurators |
Калькуляторам внутри проекта и публичным калькуляторам в витрине |
products |
Продуктам внутри проекта |
reports |
Аналитическим и отчётным данным внутри проекта |
files |
Загрузке, получению и удалению файлов |
Большинство эндпоинтов в рамках проекта (заказы, контакты, материалы, калькуляторы, продукты, отчёты) требуют
одновременно область projects и специфическую область ресурса, поскольку доступ оценивается в контексте
проекта.
Публичные клиенты (PKCE)
Если у вашей интеграции нет собственного бэкенда — CLI-утилита, браузерное расширение, одностраничное приложение —
зарегистрируйте её как публичный клиент, а не как обычный (конфиденциальный). У публичного клиента нет
client_secret: секрет, зашитый в каждую установку нативного или браузерного приложения, на самом деле не секрет,
поэтому он не выдаётся вовсе. Вместо него обмен кода авторизации защищён только
PKCE (code_challenge / code_verifier, метод S256).
Для публичного клиента PKCE обязателен, а не опционален: запрос к /oauth/authorize должен содержать
code_challenge (с code_challenge_method=S256), а обмен токена на /api/auth/token — соответствующий
code_verifier. Отсутствие любого из них отклоняется с 400 invalid_request. Параметр client_secret в запросе
токена не передаётся вообще — его не существует.
Публичный клиент создаётся на странице OAuth-приложений включением опции Публичный клиент при создании приложения — пошагово это описано в разделе OAuth-приложения.
Доверенные приложения
Некоторые эндпоинты — такие как управление сессиями, зарегистрированными приложениями, тикетами поддержки и удалением аккаунта — ограничены доверенными приложениями, а не конкретной областью доступа. Доверенное приложение — это приложение, которому Configo явно предоставила расширенный доступ, отдельно от стандартного OAuth-флоу согласия. Если вашей интеграции нужен доступ к этим эндпоинтам, свяжитесь с поддержкой Configo.
Формат запроса
User-Agent
Все запросы должны включать заголовок User-Agent, идентифицирующий клиентскую библиотеку и её версию:
User-Agent: ConfigoClient (library, version)
Content-Type
Запросы, включающие тело, должны указывать валидный заголовок Content-Type:
application/jsonapplication/x-www-form-urlencodedmultipart/form-data
HTTP-методы
API использует стандартные HTTP-методы для обозначения выполняемого действия:
| Метод | Действие |
|---|---|
GET |
Получить один или несколько ресурсов |
POST |
Создать новый ресурс |
PUT |
Полностью заменить ресурс |
PATCH |
Частично обновить ресурс |
DELETE |
Удалить ресурс |
Коды ответов
| Код | Значение |
|---|---|
200 OK |
Запрос успешно выполнен. |
201 CREATED |
Ресурс успешно создан. |
204 NO CONTENT |
Запрос успешно выполнен, но без содержимого в ответе. |
304 NOT MODIFIED |
Ресурс не был изменён; действие не выполнялось. |
400 BAD REQUEST |
Запрос неверно сформирован или не может быть понят. |
401 UNAUTHORIZED |
Заголовок Authorization отсутствует или невалиден. |
403 FORBIDDEN |
У токена нет прав на доступ к этому ресурсу. |
404 NOT FOUND |
Запрошенный ресурс не существует. |
405 METHOD NOT ALLOWED |
HTTP-метод не поддерживается для этого эндпоинта. |
409 CONFLICT |
Ресурс уже существует. |
429 TOO MANY REQUESTS |
Вы ограничены по частоте запросов. |
502 GATEWAY UNAVAILABLE |
Не найдено доступного шлюза для обработки запроса. Подождите и повторите. |
5xx SERVER ERROR |
Ошибка на стороне Configo. Случается редко. |
Аутентификация виджета
Эндпоинты под /widget используют отдельную схему аутентификации, предназначенную для встраивания Configo на
публичном сайте, а не для интеграций на основе OAuth. Эти запросы аутентифицируются токеном виджета, привязанным к
конкретному проекту, передаваемым через заголовок x-widget-token:
x-widget-token: <jwt>