Переходите з UptimeRobot? Імпортуйте монітори одним кліком за ключем API лише для читання.Почати безкоштовно →
  1. Головна
  2. API
REST 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 → Новий ключ.