Довідник 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>