ESG SaveEcoBot API надає доступ до ESG-профілю підприємства через Bearer API-ключ. Основний ідентифікатор підприємства в API — registry_id (ЄДРПОУ або РНОКПП).
Ця сторінка допомагає швидко зрозуміти логіку API, формат авторизації та базові принципи роботи з відповідями. Усі відповіді ESG SaveEcoBot API повертаються у форматі JSON, окрім запитів завантаження файлів.
Документація розбита на окремі сторінки за сутностями та розділами даних. Зліва є навігація, через яку можна перейти до потрібної секції: від деталей підприємства до конкретних типів даних, файлів і довідників.
Окремо доступна сторінка Історія змін, де коротко фіксуються важливі оновлення документації й структури.
Інтерактивна документація API
Інтерактивна Swagger UI документація дає візуальний інтерфейс для перегляду всіх доступних endpoint’ів, схем запитів і відповідей. Вона також дозволяє тестувати API-запити прямо в браузері з вашим Bearer API-ключем.
Наш OpenAPI файл
Ви можете завантажити наш файл специфікації OpenAPI, щоб використовувати його у ваших API-інструментах та генераторах SDK.
Авторизація
Усі запити до ESG SaveEcoBot API виконуються через Bearer API-ключ. Щоб отримати його, необхідно зв'язатися з командою за адресою [email protected].
Приклад запиту
$ ESG_API_TOKEN="your_api_token"
$ curl "https://esg.saveecobot.com/api/v1/me" \
-H "Authorization: Bearer $ESG_API_TOKEN" \
-H "X-Request-Id: crm-sync-2026-05-14-001" \
-H 'Accept: application/json'
Ідентифікатор запиту
За потреби клієнт може передати власний ідентифікатор запиту в заголовку X-Request-Id. Це корисно для дебагу та звірки логів між вашою системою і ESG SaveEcoBot API:
- якщо
X-Request-Idбув переданий, API використає саме його; - якщо
X-Request-Idне передано, API сформує його автоматично; - це значення повертається і в заголовку відповіді
X-Request-Id, і вstats.request_id.
Заголовки відповіді
У кожній відповіді API повертає службові заголовки:
X-Request-Id: ідентифікатор запиту. Якщо ви передали його самостійно, API поверне це саме значення. Якщо не передали, API згенерує його автоматично.X-Response-Time-Ms: час формування відповіді в мілісекундах.
Формат успішної відповіді
{
"results": {},
"stats": {
"request_id": "uuid",
"response_time_ms": 21
}
}
Поля відповіді
results: основний блок даних, який залежить від конкретного запиту.stats.request_id: ідентифікатор конкретного HTTP-запиту.stats.response_time_ms: час обробки запиту в мілісекундах.
Формат помилки
{
"error": {
"code": "not_found",
"message": "Resource not found.",
"details": null
},
"stats": {
"request_id": "uuid",
"response_time_ms": 12
}
}
Поля відповіді
error.code: машинозчитуваний код помилки.error.message: короткий текстовий опис помилки.error.details: додаткові подробиці, якщо вони передаються.stats.request_id: ідентифікатор запиту, який зручно передавати в підтримку.stats.response_time_ms: час обробки запиту в мілісекундах.
Блок про підприємство у відповідях
У всіх запитах по підприємству в results автоматично додається короткий блок enterprise, щоб у відповіді завжди було видно, для якого саме підприємства повернуті дані.
Виняток — запит деталей підприємства, де enterprise уже містить повний набір основних полів.
Короткий блок має такий вигляд:
"enterprise": {
"type": "company",
"registry_id": "00178353"
}
Поля
enterprise.type: тип підприємства. Можливі значення:companyабоfop.enterprise.registry_id: ідентифікатор підприємства. Дляcompanyце ЄДРПОУ, дляfop— РНОКПП.
Пагінація
Усі запити зі списками використовують однаковий блок пагінації:
"pagination": {
"current_page": 1,
"per_page": 20,
"total": 57,
"last_page": 6
}
Поля пагінації
pagination.current_page: номер поточної сторінки.pagination.per_page: кількість записів на сторінці. Використовується фіксоване значення20.pagination.total: загальна кількість записів у вибірці.pagination.last_page: номер останньої доступної сторінки.
Параметри пагінації
page: номер сторінки.
Фільтрація
Усі фільтри в ESG SaveEcoBot API передаються через query-параметри в URL.
Наприклад:
?domain=air?report_type_id=9
Якщо запит підтримує кілька фільтрів одночасно, їх можна поєднувати в одному URL, наприклад:
$ ESG_API_TOKEN="your_api_token"
$ curl "https://esg.saveecobot.com/api/v1/enterprises/00178353/reports/air?report_type_id=9&page=2" \
-H "Authorization: Bearer $ESG_API_TOKEN" \
-H 'Accept: application/json'
Інформація про поточний API-ключ
GET /api/v1/me
У відповіді ви отримаєте інформацію про поточний API-ключ, а також назву облікового запису, період дії доступу, ліміти й поточне використання.
Приклад запиту
$ ESG_API_TOKEN="your_api_token"
$ curl "https://esg.saveecobot.com/api/v1/me" \
-H "Authorization: Bearer $ESG_API_TOKEN" \
-H "X-Request-Id: crm-sync-2026-05-14-001" \
-H 'Accept: application/json'
Приклад відповіді
Поля відповіді
results.api_account
name: назва облікового запису.all_registry_ids_allowed: чи має API-обліковий запис доступ до всіх підприємств.allowed_registry_ids: перелік дозволених ідентифікаторів підприємств. Якщоall_registry_ids_allowed=true, повертається порожній масив.billing_cycle.starts_at: початок поточного розрахункового періоду у форматі ISO 8601 в київському часовому поясі.billing_cycle.ends_at: кінець поточного розрахункового періоду у форматі ISO 8601 в київському часовому поясі.limits.daily.enterprises: денний ліміт унікальних підприємств.limits.daily.pages: денний ліміт унікальних сторінок або секцій.limits.daily.downloads: денний ліміт завантажень.limits.monthly.enterprises: місячний ліміт унікальних підприємств.limits.monthly.pages: місячний ліміт унікальних сторінок або секцій.limits.monthly.downloads: місячний ліміт завантажень.limits.yearly.enterprises: річний ліміт унікальних підприємств.limits.yearly.pages: річний ліміт унікальних сторінок або секцій.limits.yearly.downloads: річний ліміт завантажень.
results.current_key
name: назва поточного ключа.last_used_at: дата й час останнього використання цього ключа у форматі ISO 8601 в київському часовому поясі.
results.usage
account.daily: денна статистика використання по всьому API-обліковому запису.account.monthly: місячна статистика використання по всьому API-обліковому запису.account.yearly: річна статистика використання по всьому API-обліковому запису.current_key.daily: денна статистика використання саме по поточному ключу.current_key.monthly: місячна статистика використання саме по поточному ключу.current_key.yearly: річна статистика використання саме по поточному ключу.*.enterprises: кількість унікальних підприємств.*.pages: кількість унікальних сторінок або секцій.*.downloads: кількість унікальних завантажень.