Инструменты

Togle API

REST-интерфейс к сетевым данным Togle: информация об IP, DNS-записи, RDAP, ping, проверка портов, мониторинг и белые списки ТСПУ. Ответы в JSON, авторизация по ключу.

БАЗОВЫЙ АДРЕСhttps://api.togle.ru/v1
АВТОРИЗАЦИЯBearer tgl_live_…
ФОРМАТJSON · UTF-8 · UTC / ISO 8601

Быстрый старт

Создайте ключ в личном кабинете и передавайте его в заголовке Authorization. Первый запрос — за минуту.

JSON
curl https://api.togle.ru/v1/ip/8.8.8.8 \
  -H "Authorization: Bearer tgl_live_••••••••"

Ключ показывается один раз при создании. Не размещайте его в клиентском коде и публичных репозиториях — используйте серверный прокси.

Группы методов

Все эндпоинты сгруппированы по задачам. Нажмите на группу, чтобы перейти к её методам.

IP и сети

Основная группа: паспорт IP, пакетная проверка, работа с подсетями и классификация адресов.

GET/v1/ip/{ip}Полная информация об IP-адресе1 запрос

Параметры

ПараметрТипОписание
ipобязательноstringIPv4 или IPv6 адрес
fieldsstringСписок полей через запятую: geo,asn,risk,tags

Пример запроса

BASH
curl -X GET https://api.togle.ru/v1/ip/8.8.8.8 \
  -H "Authorization: Bearer tgl_live_••••••••"

Ответ · 200 OK

JSON
{
  "ip": "8.8.8.8",
  "version": 4,
  "geo": {"country":"US","city":"Mountain View","lat":37.42,"lon":-122.08},
  "asn": {"number":15169,"name":"GOOGLE","org":"Google LLC"},
  "tags": {"vpn":false,"proxy":false,"tor":false,"hosting":true},
  "risk": {"level":"low","sources_checked":12},
  "checked_at": "2026-08-02T09:14:22Z"
}
GET/v1/ip/meIP-адрес клиента, выполнившего запрос1 запрос

Параметры

Метод не принимает параметров.

Пример запроса

BASH
curl -X GET https://api.togle.ru/v1/ip/me \
  -H "Authorization: Bearer tgl_live_••••••••"

Ответ · 200 OK

JSON
{
  "ip": "89.23.104.17",
  "geo": {"country":"RU"}
}
POST/v1/ip/bulkПакетная проверка до 100 адресов1 запрос за адрес

Параметры

ПараметрТипОписание
ipsобязательноstring[]Массив IP, максимум 100
fieldsstringОграничить набор полей

Пример запроса

BASH
curl -X POST https://api.togle.ru/v1/ip/bulk \
  -H "Authorization: Bearer tgl_live_••••••••"

Ответ · 200 OK

JSON
{
  "results": [
      {"ip":"8.8.8.8","country":"US","asn":15169,"risk":"low"},
      {"ip":"185.220.101.34","country":"DE","asn":205100,"risk":"high"}
    ],
  "failed": []
}
GET/v1/subnet/{cidr}Расчёт подсети: маска, диапазон, broadcast1 запрос

Параметры

ПараметрТипОписание
cidrобязательноstringПодсеть, например 192.168.1.0/24

Пример запроса

BASH
curl -X GET https://api.togle.ru/v1/subnet/192.168.1.0%2F24 \
  -H "Authorization: Bearer tgl_live_••••••••"

Ответ · 200 OK

JSON
{
  "cidr": "192.168.1.0/24",
  "netmask": "255.255.255.0",
  "network": "192.168.1.0",
  "broadcast": "192.168.1.255",
  "hosts": {"first":"192.168.1.1","last":"192.168.1.254","total":254}
}

DNS и домены

Резолвинг записей, reverse lookup и данные регистратора домена или сети.

GET/v1/dns/{domain}DNS-записи домена1 запрос

Параметры

ПараметрТипОписание
domainобязательноstringДоменное имя
typestringA, AAAA, MX, TXT, NS, CNAME, SOA, CAA. По умолчанию — все

Пример запроса

BASH
curl -X GET https://api.togle.ru/v1/dns/example.com \
  -H "Authorization: Bearer tgl_live_••••••••"

Ответ · 200 OK

JSON
{
  "domain": "example.com",
  "records": [
      {"type":"A","value":"93.184.216.34","ttl":3600},
      {"type":"MX","value":"10 mail.example.com","ttl":3600}
    ],
  "resolver": "ru-mow-1"
}
GET/v1/dns/reverse/{ip}Обратная запись PTR1 запрос

Параметры

ПараметрТипОписание
ipобязательноstringIPv4 или IPv6 адрес

Пример запроса

BASH
curl -X GET https://api.togle.ru/v1/dns/reverse/8.8.8.8 \
  -H "Authorization: Bearer tgl_live_••••••••"

Ответ · 200 OK

JSON
{"ip":"8.8.8.8","ptr":"dns.google"}
GET/v1/rdap/{query}Регистрационные данные IP, домена или ASN1 запрос

Параметры

ПараметрТипОписание
queryобязательноstringIP, домен или ASN в формате AS15169

Пример запроса

BASH
curl -X GET https://api.togle.ru/v1/rdap/example.com \
  -H "Authorization: Bearer tgl_live_••••••••"

Ответ · 200 OK

JSON
{
  "handle": "GOGL",
  "name": "GOOGLE",
  "registry": "ARIN",
  "range": "8.8.8.0 - 8.8.8.255",
  "registered_at": "2014-03-14T00:00:00Z",
  "abuse_contact": "network-abuse@google.com"
}
GET/v1/domain/{domain}/expiryСрок регистрации домена1 запрос

Параметры

ПараметрТипОписание
domainобязательноstringДоменное имя

Пример запроса

BASH
curl -X GET https://api.togle.ru/v1/domain/example.com/expiry \
  -H "Authorization: Bearer tgl_live_••••••••"

Ответ · 200 OK

JSON
{
  "domain": "example.com",
  "registrar": "RU-CENTER",
  "expires_at": "2027-03-14T00:00:00Z",
  "days_left": 224
}

Диагностика сети

Активные проверки доступности выполняются воркерами Togle из выбранных стран.

POST/v1/pingICMP/TCP ping из выбранных локаций1 запрос за локацию

Параметры

ПараметрТипОписание
targetобязательноstringIP-адрес или домен
locationsstring[]Коды локаций: ru-mow-1, de-fra-1. По умолчанию — ближайшая
countintegerЧисло пакетов, 1–10. По умолчанию 4

Пример запроса

BASH
curl -X POST https://api.togle.ru/v1/ping \
  -H "Authorization: Bearer tgl_live_••••••••"

Ответ · 200 OK

JSON
{
  "target": "example.com",
  "resolved_ip": "93.184.216.34",
  "results": [
      {"location":"ru-mow-1","min":42.1,"avg":45.8,"max":51.3,"loss":0},
      {"location":"de-fra-1","min":12.4,"avg":13.1,"max":14.9,"loss":0}
    ]
}
POST/v1/ports/scanПроверка доступности TCP-портов2 запроса

Параметры

ПараметрТипОписание
targetобязательноstringПубличный IP или домен
portsобязательноinteger[]Порты из разрешённого списка, максимум 20

Пример запроса

BASH
curl -X POST https://api.togle.ru/v1/ports/scan \
  -H "Authorization: Bearer tgl_live_••••••••"

Ответ · 200 OK

JSON
{
  "target": "203.0.113.10",
  "ports": [
      {"port":443,"state":"open","service":"https","rtt_ms":38},
      {"port":22,"state":"filtered","service":"ssh"}
    ]
}
GET/v1/locationsСписок доступных локаций проверкибесплатно

Параметры

Метод не принимает параметров.

Пример запроса

BASH
curl -X GET https://api.togle.ru/v1/locations \
  -H "Authorization: Bearer tgl_live_••••••••"

Ответ · 200 OK

JSON
{
  "locations": [
      {"code":"ru-mow-1","country":"RU","city":"Москва","status":"online"},
      {"code":"de-fra-1","country":"DE","city":"Франкфурт","status":"online"}
    ]
}

SSL и безопасность

Проверка сертификата и статуса ресурса в реестрах фильтрации.

GET/v1/ssl/{domain}Информация о TLS-сертификате1 запрос

Параметры

ПараметрТипОписание
domainобязательноstringДоменное имя
portintegerTLS-порт, по умолчанию 443

Пример запроса

BASH
curl -X GET https://api.togle.ru/v1/ssl/example.com \
  -H "Authorization: Bearer tgl_live_••••••••"

Ответ · 200 OK

JSON
{
  "domain": "example.com",
  "valid": true,
  "issuer": "Let's Encrypt R3",
  "expires_at": "2026-09-28T12:00:00Z",
  "days_left": 57,
  "hostname_match": true,
  "chain_valid": true
}
GET/v1/whitelist/{query}Проверка IP или домена в белых списках ТСПУ1 запрос

Параметры

ПараметрТипОписание
queryобязательноstringIP-адрес или домен

Пример запроса

BASH
curl -X GET https://api.togle.ru/v1/whitelist/example.com \
  -H "Authorization: Bearer tgl_live_••••••••"

Ответ · 200 OK

JSON
{
  "query": "example.com",
  "status": "listed",
  "lists": ["gov_services"],
  "checked_at": "2026-08-02T09:14:22Z"
}

Мониторинг

Создание и настройка проверок доступности, чтение метрик и истории инцидентов.

GET/v1/monitorsСписок мониторов проекта1 запрос

Параметры

ПараметрТипОписание
statusstringup, down, paused
limitintegerРазмер страницы, по умолчанию 50

Пример запроса

BASH
curl -X GET https://api.togle.ru/v1/monitors \
  -H "Authorization: Bearer tgl_live_••••••••"

Ответ · 200 OK

JSON
{
  "monitors": [
      {
            "id": "mon_9f2c",
            "name": "example.com",
            "status": "up",
            "uptime_24h": 99.98,
            "response_ms": 184
          }
    ],
  "total": 4
}
POST/v1/monitorsСоздать монитор1 запрос

Параметры

ПараметрТипОписание
targetобязательноstringURL или IP
intervalобязательноinteger10, 30, 60 или 300
locationsобязательноstring[]Коды локаций
namestringНазвание монитора

Пример запроса

BASH
curl -X POST https://api.togle.ru/v1/monitors \
  -H "Authorization: Bearer tgl_live_••••••••"

Ответ · 200 OK

JSON
{"id":"mon_9f2c","status":"pending_first_check"}
GET/v1/monitors/{id}/uptimeUptime за период1 запрос

Параметры

ПараметрТипОписание
idобязательноstringИдентификатор монитора
periodstring24h, 7d, 30d

Пример запроса

BASH
curl -X GET https://api.togle.ru/v1/monitors/mon_9f2c/uptime \
  -H "Authorization: Bearer tgl_live_••••••••"

Ответ · 200 OK

JSON
{
  "monitor_id": "mon_9f2c",
  "period": "30d",
  "uptime": 99.94,
  "downtime_minutes": 26,
  "incidents": 2
}
GET/v1/incidentsИстория инцидентов1 запрос

Параметры

ПараметрТипОписание
monitor_idstringФильтр по монитору
fromstringНачало периода ISO 8601

Пример запроса

BASH
curl -X GET https://api.togle.ru/v1/incidents \
  -H "Authorization: Bearer tgl_live_••••••••"

Ответ · 200 OK

JSON
{
  "incidents": [
      {
            "id": "inc_4821",
            "monitor_id": "mon_9f2c",
            "severity": "SEV2",
            "type": "partial_outage",
            "started_at": "2026-07-18T19:38:04Z",
            "resolved_at": "2026-07-18T19:42:16Z",
            "affected_locations": ["de-fra-1"]
          }
    ]
}
DELETE/v1/monitors/{id}Удалить мониторбесплатно

Параметры

ПараметрТипОписание
idобязательноstringИдентификатор монитора

Пример запроса

BASH
curl -X DELETE https://api.togle.ru/v1/monitors/mon_9f2c \
  -H "Authorization: Bearer tgl_live_••••••••"

Ответ · 200 OK

JSON
{"deleted":true,"id":"mon_9f2c"}

Аккаунт и квоты

Служебные методы для контроля расхода лимитов. Не расходуют квоту.

GET/v1/account/usageРасход квоты в текущем периодебесплатно

Параметры

Метод не принимает параметров.

Пример запроса

BASH
curl -X GET https://api.togle.ru/v1/account/usage \
  -H "Authorization: Bearer tgl_live_••••••••"

Ответ · 200 OK

JSON
{
  "plan": "solo",
  "limit": 10000,
  "used": 347,
  "remaining": 9653,
  "resets_at": "2026-09-01T00:00:00Z"
}
GET/v1/account/keysСписок API-ключей (без секретов)бесплатно

Параметры

Метод не принимает параметров.

Пример запроса

BASH
curl -X GET https://api.togle.ru/v1/account/keys \
  -H "Authorization: Bearer tgl_live_••••••••"

Ответ · 200 OK

JSON
{
  "keys": [
      {
            "id": "key_3f7a",
            "name": "Production",
            "prefix": "tgl_live_••••3f7a",
            "last_used_at": "2026-08-02T09:10:00Z"
          }
    ]
}

Лимиты и стоимость запросов

Каждый вызов расходует квоту тарифа. Тяжёлые операции стоят дороже одного запроса.

ТарифЗапросов / мес.Rate limitAPI-ключей
Free10060 / мин.1
Solo10 000120 / мин.5
Team500 000600 / мин.20

Заголовки ответа: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. При исчерпании — 429 с Retry-After.

Ошибки

Единый формат ошибки для всех методов.

JSON
{
  "type": "about:blank",
  "title": "Публичные и зарезервированные адреса проверять нельзя",
  "status": 422,
  "code": "unsafe_target",
  "detail": "Используйте публичный IPv4, IPv6 или домен",
  "request_id": "8f3c…"
}
HTTPКодЧто делать
400invalid_requestПроверьте параметры запроса
401unauthorizedПроверьте API-ключ
403forbiddenПроверьте права и тариф
404not_foundПроверьте адрес ресурса
422unsafe_targetИспользуйте публичную цель
429rate_limitДождитесь сброса лимита
500internal_errorПовторите запрос позже