- Головна
- API
Невеликий і простий JSON API для ваших моніторів
Авторизація через bearer-токен, курсорна пагінація, передбачувані помилки та приклади curl для кожного запиту.
Для чого потрібен API
API існує для того, щоб моніторинг став частиною вашого процесу випуску, а не ще одним місцем, куди треба заходити й клікати. Типові сценарії: створювати монітори, коли розгортається новий сайт, ставити їх на паузу під час деплою, передавати інциденти в систему тікетів або на панель, підтверджувати отримання інциденту командою з чату й публікувати ручний інцидент на сторінці статусу клієнта, коли ви дізналися про проблему раніше за перевірки.
Усі відповіді — JSON, часові позначки — ISO 8601 в UTC, ідентифікатори — UUID. Базова адреса — https://app.tenium.app/api/v1, основна версія входить у шлях. Нові поля й ендпоінти можуть з’являтися без зміни версії; несумісна зміна вийде в новій основній версії з довгим періодом, коли працюватимуть обидві, як описано в API: автентифікація.
Автентифікація та рівні доступу
Створіть ключ у розділі Налаштування → Ключі API. Ключ показується лише один раз, а кожен ключ має рівень доступу: читання або запис. Передавайте його як bearer-токен:
curl -H "Authorization: Bearer $TENIUM_KEY" \
https://app.tenium.app/api/v1/monitors?limit=20 Ключі для читання працюють на кожному тарифі, зокрема на Free. Ключам із правом запису потрібен Pro або Agency; на нижчому тарифі запит повертає 403 із кодом plan_limit, а ключ лише для читання, використаний для запису, — 403 із кодом forbidden_scope. Ключ, створений клієнтом із доступом лише для перегляду, бачить тільки простір цього клієнта.
Ендпоінти
Шляхи вказано відносно /api/v1. «Читання» працює на кожному тарифі; «Запис» потребує ключа з правом запису на тарифі Pro або Agency.
| Метод | Шлях | Доступ | Що робить |
|---|---|---|---|
GET | /monitors | Читання | Список моніторів; фільтри за clientWorkspaceId, type, status; курсорна пагінація |
POST | /monitors | Запис | Створює монітор будь-якого типу |
GET | /monitors/{id} | Читання | Один монітор із поточним станом |
PATCH | /monitors/{id} | Запис | Змінює лише ті поля, які ви надіслали |
DELETE | /monitors/{id} | Запис | Видаляє монітор |
POST | /monitors/{id}/pause | Запис | Зупиняє перевірки, наприклад на час деплою |
POST | /monitors/{id}/resume | Запис | Знову запускає перевірки |
POST | /monitors/{id}/check | Запис | Ставить у чергу негайну перевірку |
GET | /monitors/{id}/checks | Читання | Історія перевірок із часом відповіді та регіоном |
GET | /incidents | Читання | Список інцидентів; фільтри за монітором, станом і датами |
GET | /incidents/{id} | Читання | Один інцидент із підтвердженнями по регіонах |
POST | /incidents/{id}/ack | Запис | Підтверджує отримання й зупиняє ескалацію |
POST | /incidents/{id}/notes | Запис | Додає нотатку, яка з’являється в хронології та у звітах |
POST | /status-pages/{id}/incidents | Запис | Публікує ручний інцидент на сторінці статусу |
Опис кожного поля: монітори, інциденти, heartbeat-монітори, дані webhook.
Приклади
Створення HTTP-монітора з правилом для ключового слова всередині простору клієнта:
curl -X POST https://app.tenium.app/api/v1/monitors \
-H "Authorization: Bearer $TENIUM_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Client A shop",
"type": "http",
"url": "https://shop.clienta.com",
"intervalSec": 60,
"expectedStatus": "200-299",
"keyword": { "mode": "contains", "value": "Add to cart" },
"clientWorkspaceId": "9a8b7c6d-0000-4000-8000-000000000000",
"tags": ["woocommerce", "client-a"]
}' Поставити монітор на паузу на час деплою, потім відновити його й запросити негайну перевірку:
curl -X POST -H "Authorization: Bearer $TENIUM_KEY" \
https://app.tenium.app/api/v1/monitors/$ID/pause
# ... deploy ...
curl -X POST -H "Authorization: Bearer $TENIUM_KEY" \
https://app.tenium.app/api/v1/monitors/$ID/resume
curl -X POST -H "Authorization: Bearer $TENIUM_KEY" \
https://app.tenium.app/api/v1/monitors/$ID/check Список відкритих інцидентів і підтвердження отримання одного з них:
curl -H "Authorization: Bearer $TENIUM_KEY" \
"https://app.tenium.app/api/v1/incidents?status=open"
curl -X POST -H "Authorization: Bearer $TENIUM_KEY" \
https://app.tenium.app/api/v1/incidents/$INCIDENT/ack Пагінація, помилки та ліміти
- Пагінація. Ендпоінти зі списками приймають
limit(за замовчуванням 50, максимум 200) іcursor; якщо результатів більше, у відповіді сказано, звідки продовжувати. - Помилки. JSON-об’єкт із ключем
error, у якому є статус, машинозчитуваний код (наприклад,validation,plan_limit,not_foundабоrate_limited), повідомлення й, для помилок валідації, поле. Див. помилки та ліміти. - Ліміти запитів. 600 запитів на читання і 120 запитів на запис за хвилину на один ключ. Негайну перевірку можна запросити не частіше за один раз на десять секунд для кожного монітора. У відповідях є заголовки
X-RateLimit-*, а у відповіді 429 —Retry-After. - Діють ліміти тарифу. Спроба створити монітор понад ваш ліміт кількості, мінімальний інтервал або дозволені типи моніторів повертає 422 із кодом
plan_limit, так само як і в застосунку.
Heartbeat і webhook працюють без ключа API
Ще два способи інтеграції не використовують ключ API. У heartbeat-монітора є власна ping-адреса, яку викликає cron-завдання або крок CI; секретом є ідентифікатор в адресі. А контакти типу webhook отримують підписані JSON-події, коли інцидент відкривається, підтверджується або закривається. Обидва способи описано в документації, і їх варто прочитати разом із цією сторінкою, якщо ви налаштовуєте конвеєр: heartbeat-монітори, webhook.
Чого API поки не вміє
Немає ендпоінтів для вікон обслуговування, контактів для сповіщень і звітів; ними керують у застосунку. Немає файла OpenAPI та SDK. Багатокрокових моніторів не існує, тож API не може описати транзакцію з кількох запитів. А MCP-шар для асистентів поверх API ще не створено; на сторінці MCP сказано, як стоять справи. Розробникам, яким потрібен практичний огляд, варто перейти на сторінку для розробників.
Запитання про API
На яких тарифах доступний API?
Читання за ключем API доступне на кожному тарифі, зокрема на Free. Запис — створення, зміна й видалення моніторів та підтвердження отримання інцидентів — потребує ключа з правом запису на тарифі Pro ($29) або Agency ($59).
Що буде, якщо я перевищу ліміт запитів?
Ви отримаєте відповідь 429 із заголовком Retry-After. Кожна відповідь також містить X-RateLimit-Limit, X-RateLimit-Remaining і X-RateLimit-Reset, щоб скрипт міг пригальмувати, не доходячи до ліміту.
Чи відкриває ключ доступ до всіх моїх клієнтів?
Ключ, створений власником або учасником команди, бачить увесь акаунт. Ключ, створений клієнтом із доступом лише для перегляду, обмежений його простором, тож ви можете дати клієнтові програмний доступ для читання тільки до його власних даних.
Чи є офіційний SDK або файл OpenAPI?
Наразі ні. API невеликий, це простий JSON поверх HTTPS, а в документації для кожного прикладу використано curl. Інтеграцію з асистентами заплановано, її описано на сторінці MCP.
Чи можна створювати вікна обслуговування через API?
Поки що ні. Вікна обслуговування створюють у застосунку. Для розгортань зі скриптами натомість можна ставити монітори на паузу й відновлювати їх через API.
Створіть ключ для читання за хвилину
Тариф Free, без картки. Налаштування → Ключі API → Новий ключ.