REST API

Управляйте отслеживаемыми доменами и получайте их статус по HTTPS. Все ответы в JSON; успешные ответы содержат данные в поле "data".

https://noexpire.ru/api/v1

Аутентификация

Создайте персональный токен на странице API-токенов и передавайте его в заголовке Authorization. Токены «только чтение» могут получать список и статус доменов; токены «чтение и запись» также добавляют и удаляют домены. Токен работает с командой, которая была текущей при его создании; при исключении участника из команды его токены этой команды отзываются.

Authorization: Bearer <token>
Accept: application/json

Ограничения

До 60 запросов в минуту на аккаунт; сверх этого API отвечает 429 с заголовком Retry-After. Добавление доменов подчиняется тем же правилам, что и в личном кабинете: действует лимит пробного периода, оплачиваемое количество обновляется автоматически.

Методы

GET /api/v1/domains
Список ваших доменов. Параметры: q (поиск по имени), per_page (1-100, по умолчанию 50), page. Постранично, с полями "links" и "meta".
GET /api/v1/domains/{name}
Статус одного домена: регистрация, SSL-сертификат, статусы в реестре, раздел, теги и поддомены (дополнительные SSL-хосты).
POST /api/v1/domains
Добавить домены: {"domains": ["example.com", "example.org"]} или {"domain": "example.com"}. Ответ 201 с добавленными доменами; в "meta" перечислены пропущенные (уже отслеживаются) и некорректные имена. Проверки запускаются сразу.
DELETE /api/v1/domains/{name}
Перестать отслеживать домен (204 No Content).

Значения статусов

status, registration.status и ssl.status принимают значения ok, warning, urgent или unknown (как светофор в личном кабинете). Даты в формате ISO 8601.

Ошибки

401 нет токена или он неверный, 403 у токена нет нужного доступа, 404 домена нет в вашем аккаунте, 422 ошибка проверки данных или лимит пробного периода ({"message": ..., "errors": {...}}), 429 слишком много запросов.

Пример

curl -H "Authorization: Bearer $TOKEN" -H "Accept: application/json" \
     https://noexpire.ru/api/v1/domains/example.com

{
  "data": {
    "name": "example.com",
    "status": "warning",
    "section": "Clients",
    "tags": ["wordpress"],
    "registration": {"status": "ok", "expires_at": "2027-03-01T00:00:00+00:00", "days_left": 136, "registrar": "Example Registrar", "registry_statuses": ["clientTransferProhibited"], ...},
    "ssl": {"status": "warning", "valid_to": "2026-11-10T12:00:00+00:00", "days_left": 25, "issuer": "Let's Encrypt", "chain_valid": true, "hostname_valid": true, ...},
    "subdomains": [{"hostname": "shop.example.com", "ssl": {...}}]
  }
}

curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
     -d '{"domains": ["example.org"]}' https://noexpire.ru/api/v1/domains