{"openapi":"3.0.3","info":{"title":"API IP-разведки CHA.LA","description":"## Быстрый старт\n\nЕдиный API для IP-аналитики, владения сетью, маршрутизации и доказательств угроз. Включите доступ к аккаунту и начните с одного запроса.\n\n1. Создать аккаунт: Зарегистрируйтесь, войдите в консоль API и запросите доступ. Аккаунты email в настоящее время требуют ручного одобрения; одобрение не является подтверждением email.\n2. Получите ключ API: После одобрения создайте ключ или получите ключ, привязанный к аккаунту, от администратора. Полный секрет отображается только один раз; храните его безопасно.\n3. Вызывайте из вашего бэкенда: Используйте X-API-Key или Authorization: Bearer. Никогда не помещайте ключи в URL, публичные репозитории или код фронтенда.\n\n[Консоль API](https://www.cha.la/ru/console)\n\n## Бесплатный лимит и платные периоды\n\nБесплатные аккаунты получают 1000 единиц в день, сбрасываются в полночь UTC. Все ключи и пакеты на сайте используют общий баланс; замена или отзыв ключа не сбрасывает использование.\n\n|План|Дневной лимит безопасности|Запросов/мин/ключ|Активные ключи|Целей/пакет|\n|---|---:|---:|---:|---:|\n|Free|1,000|30|2|100|\n|Developer|10,000|120|5|500|\n|Pro|100,000|600|20|2,000|\n|Enterprise|1,000,000|3,000|100|5,000|\n\nПлатные периоды предоставляются вручную с тарифным планом, явным общим объёмом и сроком действия. Объём периода не равен дневному лимиту, умноженному на количество дней. Онлайн-оплата и автоматическое продление не включены. По истечении срока аккаунт возвращается на уровень Free; существующие области действия ключей никогда не расширяются автоматически. Также применяются устаревшие организационные контракты и более низкие лимиты на ключ.\n\n## Как учитывается использование\n\nУспешные синхронные запросы стоят одну единицу; чтение статуса/результатов пакета, сбои, отказы и отклонённые из-за ограничения частоты запросы стоят ноль.\n\nПакеты: принятые дедуплицированные цели тарифицируются один раз; последующие сбои целей не возвращаются. Требуется Idempotency-Key; повторная отправка того же запроса с тем же идентификатором не тарифицируется повторно.\n\nПрогресс пакета на сайте и загрузки не требуют дополнительных единиц. При кодах 429 / 503 соблюдайте Retry-After, если он присутствует, и используйте экспоненциальную задержку.\n\n## Доступность\n\nИспользуйте /api/public/v1 для клиентских интеграций. /api/v1 — внутренний интерфейс сайта, не являющийся клиентским контрактом. Внешний браузерный CORS не включён; вызывайте API со своего бэкенда.\n\nИсточник обратного IP: не настроен; недоступен.\n\nРаспространение C2: не включено.\n\nRPKI использует снимки. Проверяйте observedAt, expiresAt, stale и riskStatus. Неизвестные или отсутствующие данные не означают безопасность. /api/capabilities — источник актуального статуса возможностей.","version":"0.6.0"},"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"X-API-Key"},"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{}},"paths":{"/api/public/v1/batch/ip":{"post":{"operationId":"_batch_ip","summary":"Создать идемпотентный пакет запросов IP","tags":["Public API","Batch Intelligence"],"description":"Требуется Idempotency-Key. Тот же ключ и нормализованный список целей возвращают исходную задачу без повторного списания; измененный ввод или просроченная задача возвращают 409. Принятые дедуплицированные цели оплачиваются один раз, включая цели, которые впоследствии завершаются ошибкой. Задачи хранятся 7 дней.\n\nМинимальный план: free. Требуемые области: batch:write, ip:read. Аутентификация через X-API-Key или Authorization: Bearer.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"targets":{"type":"array","items":{"type":"string"},"description":"Массив IP или имён хостов; лимит целей зависит от вашего плана."}},"required":["targets"]}}}},"parameters":[{"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[A-Za-z0-9._:-]+$"},"in":"header","name":"Idempotency-Key","required":true,"description":"Уникальный идентификатор пакета, сохраняемый на время жизни задания; повторно используйте его при повторной попытке того же запроса."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["batch:write","ip:read"],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["queued","running","completed","completed_with_errors","failed"]},"inputCount":{"type":"integer"},"completedCount":{"type":"integer"},"successCount":{"type":"integer"},"errorCount":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"items":{"type":"array","items":{"type":"object","properties":{"position":{"type":"integer"},"target":{"type":"string"},"status":{"type":"string"},"result":{"type":"object","properties":{"ip":{"type":"string"},"input":{"type":"string"},"countryCode":{"type":"string"},"location":{"type":"string"},"asn":{"type":"integer","nullable":true},"asnName":{"type":"string"},"organization":{"type":"string"},"network":{"type":"string"},"ipType":{"type":"string","description":"Отображаемая метка; ISP-hosted IP — это подтип хостинга, принадлежащий интернет-провайдеру, а не гарантия резидентного/статического адреса."},"ipUsage":{"type":"object","properties":{"code":{"type":"string","description":"Стабильный код использования, например isp_hosted, hosting, residential_access, mobile, business, cdn, proxy, unknown."},"label":{"type":"string"},"baseType":{"type":"string"},"asnOwnerCategory":{"type":"string"}},"additionalProperties":true},"ipTypeAssessments":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"confidence":{"type":"number"},"scope":{"type":"string","enum":["ip","prefix","asn"]},"evidence":{"type":"array","items":{"type":"string"}},"sourceKeys":{"type":"array","items":{"type":"string"}}},"additionalProperties":true}},"native":{"type":"string"},"risk":{"type":"number"},"riskStatus":{"type":"string","description":"Проверяйте это перед интерпретацией риска. not_observed/unknown не является свидетельством чистоты."},"riskConfidence":{"type":"number"},"riskComponents":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"contribution":{"type":"number"},"detail":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}},"observedAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":true,"description":"IP-аналитика; дополнительные поля доказательств могут добавляться совместимым образом.","nullable":true},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"additionalProperties":true,"nullable":true}},"additionalProperties":true}}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"202":{"description":"Пакет принят; цели списываются атомарно.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["queued","running","completed","completed_with_errors","failed"]},"inputCount":{"type":"integer"},"completedCount":{"type":"integer"},"successCount":{"type":"integer"},"errorCount":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"items":{"type":"array","items":{"type":"object","properties":{"position":{"type":"integer"},"target":{"type":"string"},"status":{"type":"string"},"result":{"type":"object","properties":{"ip":{"type":"string"},"input":{"type":"string"},"countryCode":{"type":"string"},"location":{"type":"string"},"asn":{"type":"integer","nullable":true},"asnName":{"type":"string"},"organization":{"type":"string"},"network":{"type":"string"},"ipType":{"type":"string","description":"Отображаемая метка; ISP-hosted IP — это подтип хостинга, принадлежащий интернет-провайдеру, а не гарантия резидентного/статического адреса."},"ipUsage":{"type":"object","properties":{"code":{"type":"string","description":"Стабильный код использования, например isp_hosted, hosting, residential_access, mobile, business, cdn, proxy, unknown."},"label":{"type":"string"},"baseType":{"type":"string"},"asnOwnerCategory":{"type":"string"}},"additionalProperties":true},"ipTypeAssessments":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"confidence":{"type":"number"},"scope":{"type":"string","enum":["ip","prefix","asn"]},"evidence":{"type":"array","items":{"type":"string"}},"sourceKeys":{"type":"array","items":{"type":"string"}}},"additionalProperties":true}},"native":{"type":"string"},"risk":{"type":"number"},"riskStatus":{"type":"string","description":"Проверяйте это перед интерпретацией риска. not_observed/unknown не является свидетельством чистоты."},"riskConfidence":{"type":"number"},"riskComponents":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"contribution":{"type":"number"},"detail":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}},"observedAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":true,"description":"IP-аналитика; дополнительные поля доказательств могут добавляться совместимым образом.","nullable":true},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"additionalProperties":true,"nullable":true}},"additionalProperties":true}}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Batch accepted; targets charged atomically."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"free","x-docs-group":"batch"}},"/api/public/v1/batch/jobs/{id}":{"get":{"operationId":"_batch_jobs__id","summary":"Состояние пакетной задачи","tags":["Public API","Batch Intelligence"],"description":"Только тот же API-клиент может читать эту задачу. Чтение статуса не расходует единицы запросов; избегайте частого опроса.\n\nМинимальный план: free. Требуемые области: batch:read. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["batch:read"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"id","required":true,"description":"Идентификатор пакетного задания, доступный только тому же клиенту API."}],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["queued","running","completed","completed_with_errors","failed"]},"inputCount":{"type":"integer"},"completedCount":{"type":"integer"},"successCount":{"type":"integer"},"errorCount":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"items":{"type":"array","items":{"type":"object","properties":{"position":{"type":"integer"},"target":{"type":"string"},"status":{"type":"string"},"result":{"type":"object","properties":{"ip":{"type":"string"},"input":{"type":"string"},"countryCode":{"type":"string"},"location":{"type":"string"},"asn":{"type":"integer","nullable":true},"asnName":{"type":"string"},"organization":{"type":"string"},"network":{"type":"string"},"ipType":{"type":"string","description":"Отображаемая метка; ISP-hosted IP — это подтип хостинга, принадлежащий интернет-провайдеру, а не гарантия резидентного/статического адреса."},"ipUsage":{"type":"object","properties":{"code":{"type":"string","description":"Стабильный код использования, например isp_hosted, hosting, residential_access, mobile, business, cdn, proxy, unknown."},"label":{"type":"string"},"baseType":{"type":"string"},"asnOwnerCategory":{"type":"string"}},"additionalProperties":true},"ipTypeAssessments":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"confidence":{"type":"number"},"scope":{"type":"string","enum":["ip","prefix","asn"]},"evidence":{"type":"array","items":{"type":"string"}},"sourceKeys":{"type":"array","items":{"type":"string"}}},"additionalProperties":true}},"native":{"type":"string"},"risk":{"type":"number"},"riskStatus":{"type":"string","description":"Проверяйте это перед интерпретацией риска. not_observed/unknown не является свидетельством чистоты."},"riskConfidence":{"type":"number"},"riskComponents":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"contribution":{"type":"number"},"detail":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}},"observedAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":true,"description":"IP-аналитика; дополнительные поля доказательств могут добавляться совместимым образом.","nullable":true},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"additionalProperties":true,"nullable":true}},"additionalProperties":true}}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"free","x-docs-group":"batch"}},"/api/public/v1/batch/jobs/{id}/results":{"get":{"operationId":"_batch_jobs__id_results","summary":"Экспорт результатов пакета","tags":["Public API","Batch Intelligence"],"description":"Только тот же API-клиент может экспортировать эту задачу. Чтение результатов не расходует единицы запросов; поддерживаются JSON и CSV.\n\nМинимальный план: free. Требуемые области: batch:read. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","parameters":[{"schema":{"type":"string","enum":["json","csv"],"default":"json"},"in":"query","name":"format","required":false,"description":"Формат экспорта."},{"schema":{"type":"string"},"in":"path","name":"id","required":true,"description":"Идентификатор пакетного задания, доступный только тому же клиенту API."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["batch:read"],"responses":{"200":{"description":"Отчёт JSON или экспорт CSV.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["queued","running","completed","completed_with_errors","failed"]},"inputCount":{"type":"integer"},"completedCount":{"type":"integer"},"successCount":{"type":"integer"},"errorCount":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"items":{"type":"array","items":{"type":"object","properties":{"position":{"type":"integer"},"target":{"type":"string"},"status":{"type":"string"},"result":{"type":"object","properties":{"ip":{"type":"string"},"input":{"type":"string"},"countryCode":{"type":"string"},"location":{"type":"string"},"asn":{"type":"integer","nullable":true},"asnName":{"type":"string"},"organization":{"type":"string"},"network":{"type":"string"},"ipType":{"type":"string","description":"Отображаемая метка; ISP-hosted IP — это подтип хостинга, принадлежащий интернет-провайдеру, а не гарантия резидентного/статического адреса."},"ipUsage":{"type":"object","properties":{"code":{"type":"string","description":"Стабильный код использования, например isp_hosted, hosting, residential_access, mobile, business, cdn, proxy, unknown."},"label":{"type":"string"},"baseType":{"type":"string"},"asnOwnerCategory":{"type":"string"}},"additionalProperties":true},"ipTypeAssessments":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"confidence":{"type":"number"},"scope":{"type":"string","enum":["ip","prefix","asn"]},"evidence":{"type":"array","items":{"type":"string"}},"sourceKeys":{"type":"array","items":{"type":"string"}}},"additionalProperties":true}},"native":{"type":"string"},"risk":{"type":"number"},"riskStatus":{"type":"string","description":"Проверяйте это перед интерпретацией риска. not_observed/unknown не является свидетельством чистоты."},"riskConfidence":{"type":"number"},"riskComponents":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"contribution":{"type":"number"},"detail":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}},"observedAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":true,"description":"IP-аналитика; дополнительные поля доказательств могут добавляться совместимым образом.","nullable":true},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"additionalProperties":true,"nullable":true}},"additionalProperties":true}}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true}},"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"free","x-docs-group":"batch"}},"/api/public/v1/asn/{asn}":{"get":{"operationId":"_asn__asn","summary":"Сведения об ASN","tags":["Public API"],"description":"Для крупных сетей могут возвращаться большие снимки. Кэшируйте ответы и проверяйте метаданные устаревания и истечения срока.\n\nМинимальный план: free. Требуемые области: asn:read. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["asn:read"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"asn","required":true,"description":"Номер автономной системы, например AS13335."}],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"asn":{"type":"integer"},"name":{"type":"string"},"organization":{"type":"string"},"prefixes":{"type":"array","items":{"type":"object","properties":{"prefix":{"type":"string"},"ipVersion":{"type":"integer"}},"additionalProperties":true}},"observedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"stale":{"type":"boolean"},"cacheHit":{"type":"boolean"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"free","x-docs-group":"bgp"}},"/api/public/v1/bgp/prefix":{"get":{"operationId":"_bgp_prefix","summary":"Префикс BGP","tags":["Public API"],"description":"Возвращает статистику BGP-префиксов и их видимость за период времени.\n\nМинимальный план: developer. Требуемые области: bgp:read. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"prefix","required":true,"description":"IPv4 / IPv6 CIDR, например 1.1.1.0/24."},{"schema":{"type":"integer","minimum":1,"maximum":744,"default":168},"in":"query","name":"hours","required":false,"description":"Окно ретроспективы в часах."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["bgp:read"],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"prefix":{"type":"string"},"points":{"type":"array","items":{"type":"object","properties":{"windowStart":{"type":"string","format":"date-time","nullable":true},"prefix":{"type":"string"},"announcementCount":{"type":"integer"},"withdrawalCount":{"type":"integer"},"visibleCollectors":{"type":"integer"},"visiblePeers":{"type":"integer"},"originAsns":{"type":"array","items":{"type":"integer"}},"lastObserved":{"type":"string","format":"date-time","nullable":true}},"additionalProperties":true}}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"developer","x-docs-group":"bgp"}},"/api/public/v1/bgp/history":{"get":{"operationId":"_bgp_history","summary":"История BGP","tags":["Public API","BGP Intelligence"],"description":"Возвращает наблюдаемые события маршрутов. Отсутствие наблюдений не доказывает, что изменений не было.\n\nМинимальный план: developer. Требуемые области: bgp:read. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"prefix","required":true,"description":"IPv4 / IPv6 CIDR, например 1.1.1.0/24."},{"schema":{"type":"integer","minimum":1,"maximum":744,"default":744},"in":"query","name":"hours","required":false,"description":"Окно ретроспективы в часах."},{"schema":{"type":"integer","minimum":1,"maximum":500,"default":200},"in":"query","name":"limit","required":false,"description":"Размер страницы или максимальное количество возвращаемых записей."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["bgp:read"],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"prefix":{"type":"string"},"observed":{"type":"boolean"},"windowHours":{"type":"integer"},"events":{"type":"array","items":{"type":"object","properties":{"eventType":{"type":"string"},"prefix":{"type":"string"},"originAsn":{"type":"integer"},"observedAt":{"type":"string","format":"date-time"}},"additionalProperties":true}}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"developer","x-docs-group":"bgp"}},"/api/public/v1/bgp/asn/{asn}/edges":{"get":{"operationId":"_bgp_asn__asn_edges","summary":"Соседние ASN","tags":["Public API"],"description":"Возвращает наблюдаемые соседние ASN и их отношения.\n\nМинимальный план: developer. Требуемые области: bgp:read. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":365,"default":31},"in":"query","name":"days","required":false,"description":"Окно ретроспективы в днях."},{"schema":{"type":"string"},"in":"path","name":"asn","required":true,"description":"Номер автономной системы, например AS13335."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["bgp:read"],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"asn":{"type":"integer"},"edges":{"type":"array","items":{"type":"object","properties":{"neighbourAsn":{"type":"integer"},"relationship":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"developer","x-docs-group":"bgp"}},"/api/public/v1/ip/{target}":{"get":{"operationId":"_ip__target","summary":"Сведения об IP","tags":["Public API"],"description":"Возвращает информацию о владельце IP, классификацию использования и доказательства риска. Проверяйте riskStatus и временные метки доказательств; неизвестность не означает безопасность.\n\nМинимальный план: free. Требуемые области: ip:read. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","parameters":[{"schema":{"type":"string"},"in":"path","name":"target","required":true,"description":"IPv4, IPv6 или имя хоста."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["ip:read"],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"ip":{"type":"string"},"input":{"type":"string"},"countryCode":{"type":"string"},"location":{"type":"string"},"asn":{"type":"integer","nullable":true},"asnName":{"type":"string"},"organization":{"type":"string"},"network":{"type":"string"},"ipType":{"type":"string","description":"Отображаемая метка; ISP-hosted IP — это подтип хостинга, принадлежащий интернет-провайдеру, а не гарантия резидентного/статического адреса."},"ipUsage":{"type":"object","properties":{"code":{"type":"string","description":"Стабильный код использования, например isp_hosted, hosting, residential_access, mobile, business, cdn, proxy, unknown."},"label":{"type":"string"},"baseType":{"type":"string"},"asnOwnerCategory":{"type":"string"}},"additionalProperties":true},"ipTypeAssessments":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"confidence":{"type":"number"},"scope":{"type":"string","enum":["ip","prefix","asn"]},"evidence":{"type":"array","items":{"type":"string"}},"sourceKeys":{"type":"array","items":{"type":"string"}}},"additionalProperties":true}},"native":{"type":"string"},"risk":{"type":"number"},"riskStatus":{"type":"string","description":"Проверяйте это перед интерпретацией риска. not_observed/unknown не является свидетельством чистоты."},"riskConfidence":{"type":"number"},"riskComponents":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"contribution":{"type":"number"},"detail":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}},"observedAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":true,"description":"IP-аналитика; дополнительные поля доказательств могут добавляться совместимым образом."},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"free","x-docs-group":"ip"}},"/api/public/v1/ip/{target}/segment":{"get":{"operationId":"_ip__target_segment","summary":"Сегмент IP","tags":["Public API"],"description":"Выполняет поиск профиля IP-сегмента. Данные на уровне префикса не являются прямым наблюдением за конкретным IP.\n\nМинимальный план: developer. Требуемые области: history:read. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","parameters":[{"schema":{"type":"string"},"in":"path","name":"target","required":true,"description":"IPv4, IPv6 или имя хоста."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["history:read"],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"profile":{"type":"object","properties":{"prefix":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"developer","x-docs-group":"ip"}},"/api/public/v1/ip/{target}/history":{"get":{"operationId":"_ip__target_history","summary":"История IP","tags":["Public API"],"description":"Возвращает собранные изменения ASN, организации, местоположения и регистрации, а не исчерпывающую историю.\n\nМинимальный план: developer. Требуемые области: history:read. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","parameters":[{"schema":{"type":"string"},"in":"path","name":"target","required":true,"description":"IPv4, IPv6 или имя хоста."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["history:read"],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"asn":{"type":"array","items":{"type":"object","properties":{"asn":{"type":"integer"}},"additionalProperties":true}},"organization":{"type":"array","items":{"type":"object","properties":{"organization":{"type":"string"}},"additionalProperties":true}},"location":{"type":"array","items":{"type":"object","properties":{"location":{"type":"string"}},"additionalProperties":true}},"registration":{"type":"array","items":{"type":"object","properties":{"cidr":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"developer","x-docs-group":"ip"}},"/api/public/v1/privacy-network":{"get":{"operationId":"_privacy_network","summary":"Сети для защиты конфиденциальности","tags":["Public API","IP Intelligence"],"description":"Возвращает данные о конфиденциальных сетях и атрибутах сети, включая признаки прокси, VPN и Tor. Проверяйте статус, уверенность и свежесть вместе.\n\nМинимальный план: developer. Требуемые области: privacy:read. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"IPv4, IPv6 или имя хоста."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["privacy:read"],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"normalizedTarget":{"type":"string"},"ipType":{"type":"string"},"privacy":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"status":{"type":"string"},"confidence":{"type":"number","nullable":true},"evidence":{"type":"array","items":{"type":"string"}},"sourceKeys":{"type":"array","items":{"type":"string"}}},"additionalProperties":true}},"network":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"status":{"type":"string"},"confidence":{"type":"number","nullable":true}},"additionalProperties":true}},"observedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"stale":{"type":"boolean"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"developer","x-docs-group":"ip"}},"/api/public/v1/threat/ip":{"get":{"operationId":"_threat_ip","summary":"Свидетельства угроз для IP","tags":["Public API","Threat Intelligence"],"description":"not_observed означает отсутствие совпадающих данных в покрытых источниках, а не гарантию безопасности IP.\n\nМинимальный план: developer. Требуемые области: threat:read. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"Адрес IPv4 или IPv6."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["threat:read"],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"status":{"type":"string"},"riskScore":{"type":"number","nullable":true},"confidence":{"type":"number","nullable":true},"publicMatches":{"type":"array","items":{"type":"object","properties":{"sourceKey":{"type":"string"}},"additionalProperties":true}},"sources":{"type":"array","items":{"type":"object","properties":{"sourceKey":{"type":"string"},"fresh":{"type":"boolean"},"matched":{"type":"boolean"},"observedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"}},"additionalProperties":true}}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"developer","x-docs-group":"threat"}},"/api/public/v1/threat/c2":{"get":{"operationId":"_threat_c2","summary":"Поток данных C2","tags":["Public API","Threat Intelligence"],"description":"Требуется доступ Pro+ и включенное разрешение на производственное распространение. Отключенные развертывания возвращают 503 без списания средств.\n\nМинимальный план: pro. Требуемые области: c2:read. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","parameters":[{"schema":{"type":"string","enum":["all","online","offline","unknown"],"default":"all"},"in":"query","name":"status","required":false,"description":"Фильтр статуса C2 онлайн."},{"schema":{"type":"string","maxLength":80},"in":"query","name":"malware","required":false,"description":"Фильтр по семейству вредоносного ПО."},{"schema":{"type":"string","pattern":"^[A-Za-z]{2}$"},"in":"query","name":"country","required":false,"description":"Двухбуквенный код страны, например US."},{"schema":{"type":"string","maxLength":120},"in":"query","name":"q","required":false,"description":"Поиск по IP, ASN, названию сети или семейству вредоносного ПО."},{"schema":{"type":"integer","minimum":1,"maximum":10000,"default":1},"in":"query","name":"page","required":false,"description":"Номер страницы, начиная с 1."},{"schema":{"type":"integer","minimum":10,"maximum":100,"default":50},"in":"query","name":"limit","required":false,"description":"Размер страницы или максимальное количество возвращаемых записей."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["c2:read"],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"ip":{"type":"string"},"port":{"type":"integer"},"malware":{"type":"string"}},"additionalProperties":true}},"page":{"type":"integer"},"limit":{"type":"integer"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"pro","x-docs-group":"threat"}},"/api/public/v1/threat/activity":{"get":{"operationId":"_threat_activity","summary":"Активность угроз","tags":["Public API","Threat Intelligence"],"description":"Возвращает наблюдаемую статистику угроз по категориям активности и временным окнам.\n\nМинимальный план: pro. Требуемые области: threat:analytics. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","parameters":[{"schema":{"type":"string","enum":["scanner","brute_force","web_attack"]},"in":"query","name":"category","required":true,"description":"Категория угрозы: сканирование, подбор пароля или веб-атаки."},{"schema":{"type":"string","enum":["1d","7d","30d","90d"],"default":"90d"},"in":"query","name":"window","required":false,"description":"Окно ретроспективы."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["threat:analytics"],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"category":{"type":"string"},"windowDays":{"type":"integer"},"status":{"type":"string"},"eventCount":{"type":"integer"},"topSources":{"type":"array","items":{"type":"object","properties":{"ip":{"type":"string"},"eventCount":{"type":"integer"}},"additionalProperties":true}},"timeline":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"eventCount":{"type":"integer"},"sourceCount":{"type":"integer"}},"additionalProperties":true}},"generatedAt":{"type":"string","format":"date-time"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"pro","x-docs-group":"threat"}},"/api/public/v1/threat/trends":{"get":{"operationId":"_threat_trends","summary":"Тенденции угроз","tags":["Public API","Threat Intelligence"],"description":"Возвращает наблюдаемые тенденции угроз в выбранном временном окне.\n\nМинимальный план: pro. Требуемые области: threat:analytics. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","parameters":[{"schema":{"type":"string","enum":["1d","7d","30d","90d"],"default":"90d"},"in":"query","name":"window","required":false,"description":"Окно ретроспективы."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["threat:analytics"],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"windowDays":{"type":"integer"},"status":{"type":"string"},"eventCount":{"type":"integer"},"timeline":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","format":"date"},"eventCount":{"type":"integer"},"sourceCount":{"type":"integer"}},"additionalProperties":true}},"categories":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"eventCount":{"type":"integer"}},"additionalProperties":true}}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"pro","x-docs-group":"threat"}},"/api/public/v1/tools/dns":{"get":{"operationId":"_tools_dns","summary":"Запрос DNS","tags":["Public API","Network Tools"],"description":"Запрашивает DNS-записи выбранного типа, отражая ответ серверной части запроса.\n\nМинимальный план: free. Требуемые области: dns:read. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"Имя запроса DNS; для записей PTR используйте имя обратного поиска."},{"schema":{"type":"string","enum":["A","AAAA","CNAME","MX","NS","TXT","CAA","SOA","SRV","PTR"],"default":"A"},"in":"query","name":"type","required":false,"description":"Тип записи DNS."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["dns:read"],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"queryType":{"type":"string"},"status":{"type":"string"},"records":{"type":"array","items":{}},"queriedAt":{"type":"string","format":"date-time"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"free","x-docs-group":"tools"}},"/api/public/v1/tools/reverse-ip":{"get":{"operationId":"_tools_reverse_ip","summary":"Обратный поиск по IP","tags":["Public API","Network Tools"],"description":"Требуется настроенный оператором источник пассивного DNS. Отсутствующий или недоступный источник возвращает 503, а не сфабрикованный пустой успех.\n\nМинимальный план: free. Требуемые области: dns:read. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"Адрес IPv4 или IPv6."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["dns:read"],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"status":{"type":"string","enum":["resolved","no_records"]},"domains":{"type":"array","items":{"type":"string"}},"queriedAt":{"type":"string","format":"date-time"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"free","x-docs-group":"tools"}},"/api/public/v1/tools/cname-chain":{"get":{"operationId":"_tools_cname_chain","summary":"Цепочка CNAME","tags":["Public API","Network Tools"],"description":"Выполняет поиск цепочки CNAME-резолвинга для домена.\n\nМинимальный план: free. Требуемые области: dns:read. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"Доменное имя, например example.com."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["dns:read"],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"queryType":{"type":"string"},"status":{"type":"string"},"records":{"type":"array","items":{}},"queriedAt":{"type":"string","format":"date-time"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"free","x-docs-group":"tools"}},"/api/public/v1/tools/network-probe":{"post":{"operationId":"_tools_network_probe","summary":"Распределённый ping / MTR","tags":["Public API","Network Tools"],"description":"Измерения исходят от распределенных узлов-зондов, а не от IP вызывающего. Пропускная способность провайдера может быть общей.\n\nМинимальный план: pro. Требуемые области: probes:run. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string","description":"Публичный IP или имя хоста."},"mode":{"type":"string","enum":["ping","mtr"],"description":"Режим зондирования: ping или mtr."}},"required":["target","mode"]}}}},"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["probes:run"],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"mode":{"type":"string"},"status":{"type":"string"},"results":{"type":"array","items":{"type":"object","properties":{"node":{"type":"object","properties":{"country":{"type":"string"},"city":{"type":"string"}},"additionalProperties":true},"status":{"type":"string"},"stats":{"type":"object","properties":{"avgMs":{"type":"number","nullable":true},"lossPercent":{"type":"number"}},"additionalProperties":true,"nullable":true}},"additionalProperties":true}},"cached":{"type":"boolean"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"pro","x-docs-group":"tools"}},"/api/public/v1/tools/tcp":{"post":{"operationId":"_tools_tcp","summary":"Доступность TCP","tags":["Public API","Network Tools"],"description":"Только публичные цели. Измерения выполняются с сервера CHA.LA, а не из сети вызывающего.\n\nМинимальный план: pro. Требуемые области: probes:run. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string","description":"Публичный IP или имя хоста."},"port":{"type":"integer","minimum":1,"maximum":65535,"description":"Целевой TCP-порт."}},"required":["target","port"]}}}},"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["probes:run"],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"port":{"type":"integer"},"results":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string"},"status":{"type":"string"},"latencyMs":{"type":"number"}},"additionalProperties":true}},"cached":{"type":"boolean"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"pro","x-docs-group":"tools"}},"/api/public/v1/tools/http-tls":{"post":{"operationId":"_tools_http_tls","summary":"HTTP и TLS","tags":["Public API","Network Tools"],"description":"Только публичные HTTP(S)-цели; частные адресаты и небезопасные перенаправления отклоняются.\n\nМинимальный план: pro. Требуемые области: probes:run. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string","format":"uri","description":"Публичный URL HTTP(S)."}},"required":["target"]}}}},"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["probes:run"],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"redirectCount":{"type":"integer"},"steps":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"statusCode":{"type":"integer","nullable":true},"errorCode":{"type":"string","nullable":true}},"additionalProperties":true}},"tls":{"type":"object","properties":{"authorized":{"type":"boolean"}},"additionalProperties":true,"nullable":true},"cached":{"type":"boolean"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"pro","x-docs-group":"tools"}},"/api/public/v1/bgp/routes":{"get":{"operationId":"_bgp_routes","summary":"Маршруты BGP","tags":["Public API","BGP Intelligence"],"description":"Выполняет поиск собранных маршрутов и AS-путей с постраничной навигацией.\n\nМинимальный план: developer. Требуемые области: bgp:read. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"IP-адрес, префикс CIDR или ASN."},{"schema":{"type":"integer","minimum":1,"default":1},"in":"query","name":"page","required":false,"description":"Номер страницы, начиная с 1."},{"schema":{"type":"integer","minimum":10,"maximum":100,"default":50},"in":"query","name":"limit","required":false,"description":"Размер страницы или максимальное количество возвращаемых записей."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["bgp:read"],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"normalizedTarget":{"type":"string"},"observed":{"type":"boolean"},"match":{"type":"object","properties":{"prefix":{"type":"string"},"originAsns":{"type":"array","items":{"type":"integer"}},"lastObserved":{"type":"string","format":"date-time"}},"additionalProperties":true,"nullable":true},"routes":{"type":"array","items":{"type":"object","properties":{"prefix":{"type":"string"},"originAsn":{"type":"integer"},"asPath":{"type":"string"},"observedAt":{"type":"string","format":"date-time"}},"additionalProperties":true}},"page":{"type":"integer"},"limit":{"type":"integer"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"developer","x-docs-group":"bgp"}},"/api/public/v1/rpki/validate":{"get":{"operationId":"_rpki_validate","summary":"Проверка RPKI","tags":["Public API","BGP Intelligence"],"description":"Проверка использует снимки. Проверяйте флаги истечения срока и устаревания для каждой проверки; отсутствие данных нельзя интерпретировать как достоверность.\n\nМинимальный план: free. Требуемые области: registration:read. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"IP-адрес или префикс CIDR."},{"schema":{"type":"string"},"in":"query","name":"asn","required":false,"description":"Номер автономной системы, например AS13335."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["registration:read"],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"prefix":{"type":"string","nullable":true},"requestedOrigin":{"type":"integer","nullable":true},"overallStatus":{"type":"string","enum":["valid","invalid","mixed","unknown","no_origin"]},"routeLookupAvailable":{"type":"boolean"},"validations":{"type":"array","items":{"type":"object","properties":{"prefix":{"type":"string"},"originAsn":{"type":"integer"},"status":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"stale":{"type":"boolean"},"cacheHit":{"type":"boolean"}},"additionalProperties":true}}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"free","x-docs-group":"bgp"}},"/api/public/v1/rdap/lookup":{"get":{"operationId":"_rdap_lookup","summary":"Регистрационные данные RDAP","tags":["Public API","Network Intelligence"],"description":"Выполняет поиск регистрационной информации для IP, CIDR или ASN. Проверяйте временные метки кэша и снимков.\n\nМинимальный план: free. Требуемые области: registration:read. Аутентификация через X-API-Key или Authorization: Bearer. Успешные запросы стоят одну единицу; неудачные/отклонённые запросы стоят ноль. Сброс квоты по UTC.","parameters":[{"schema":{"type":"string"},"in":"query","name":"target","required":true,"description":"IP-адрес, префикс CIDR или ASN."}],"security":[{"apiKey":[]},{"bearerAuth":[]}],"x-required-scopes":["registration:read"],"responses":{"200":{"description":"Успешный ответ.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"target":{"type":"string"},"normalizedTarget":{"type":"string"},"targetKind":{"type":"string"},"found":{"type":"boolean"},"rir":{"type":"string"},"name":{"type":"string","nullable":true},"cidrs":{"type":"array","items":{"type":"string"}},"nameservers":{"type":"array","items":{"type":"string"}},"entities":{"type":"array","items":{"type":"object","properties":{"handle":{"type":"string","nullable":true},"roles":{"type":"array","items":{"type":"string"}}},"additionalProperties":true}},"observedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"stale":{"type":"boolean"},"cacheHit":{"type":"boolean"}},"additionalProperties":true},"meta":{"type":"object","properties":{"provider":{"type":"string"},"plan":{"type":"string"},"chargedUnits":{"type":"integer"},"replayed":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true,"description":"Successful response."}}}},"400":{"description":"Неверные параметры.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Invalid parameters."}}}},"401":{"description":"Отсутствует, недействителен, истёк, отозван или заблокирован ключ API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Missing, expired, revoked or invalid API key."}}}},"403":{"description":"Недостаточно области действия или плана.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Insufficient scope or plan."}}}},"404":{"description":"Не найден или не принадлежит этому клиенту API.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Not found or not owned by this client."}}}},"409":{"description":"Конфликт идемпотентности, истёкшее задание или превышен лимит активных заданий.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Idempotency conflict or active job limit."}}}},"422":{"description":"Цель не может быть разрешена или измерена.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Target cannot be resolved or measured."}}}},"429":{"description":"Достигнут предел скорости или квоты; отклонённые запросы не расходуют единицы. Ожидайте согласно Retry-After.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Rate or quota limit; rejected requests consume no usage units."}}}},"500":{"description":"Внутренняя ошибка обработки.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"502":{"description":"Ошибка ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}},"503":{"description":"Сервис или источник данных недоступен; единицы не списываются. При наличии Retry-After соблюдайте задержку.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Service/data source unavailable; no usage units charged."}}}},"504":{"description":"Тайм-аут ответа вышестоящего сервиса.","headers":{"X-Account-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Ежедневные единицы общего аккаунта после допуска; одновременные вызовы могут изменить этот снимок."},"X-Period-Quota-Remaining":{"schema":{"type":"integer"},"description":"Оставшиеся единицы в активном оплаченном периоде, если применимо."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Запросы по каждому ключу за минуту UTC."},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-Daily-Quota":{"schema":{"type":"integer"}},"X-Daily-Quota-Remaining":{"schema":{"type":"integer"},"description":"Единицы, оставшиеся после допуска; неудачные запросы освобождаются."},"Retry-After":{"schema":{"type":"integer"},"description":"Секунды до повторной попытки ограниченного запроса."}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Стабильный машиночитаемый код ошибки."},"message":{"type":"string"}},"additionalProperties":true,"description":"Request could not complete."}}}}},"x-minimum-plan":"free","x-docs-group":"tools"}}},"servers":[{"url":"https://www.cha.la"}],"x-documentation":{"locale":"ru","ui":{"explore":"Изучите возможности IP-аналитики","noScript":"JavaScript отключен. Используйте документацию OpenAPI.","pageTitle":"Документация API IP-аналитики · CHA.LA","metaDescription":"Документация API CHA.LA для IP-аналитики, ASN, BGP, сведений об угрозах и сетевых инструментов. Узнайте об аутентификации, бесплатных лимитах, параметрах и живых запросах.","docs":"Документация API","home":"Сайт","console":"Консоль API","skip":"Перейти к содержанию","menu":"Навигация","close":"Закрыть навигацию","language":"Выбрать язык","search":"Поиск конечных точек или путей…","navigation":"Навигация по документации","overview":"Быстрый старт","reference":"Справочник API","noResults":"Совпадающих конечных точек не найдено","loading":"Загрузка документации…","loadError":"Не удалось загрузить документацию. Перезагрузите страницу и повторите попытку.","retry":"Перезагрузить","notFound":"Конечная точка не найдена. Выберите конечную точку в навигации.","plan":"Минимальный план","scopes":"Требуемые разрешения","parameters":"Параметры","noParameters":"У этой конечной точки нет параметров запроса.","field":"Поле","type":"Тип","description":"Описание","required":"Обязательный","optional":"Необязательный","path":"Путь","query":"Запрос","header":"Заголовок","default":"По умолчанию","minimum":"Минимум","maximum":"Максимум","minLength":"Мин. длина","maxLength":"Макс. длина","pattern":"Шаблон","requestBody":"Тело запроса","responses":"Схема ответа","headers":"Заголовки ответа","errors":"Ошибки и повторные попытки","test":"Попробовать эту конечную точку","testNote":"Реальный запрос отправляется только при выборе «Отправить» и учитывается в вашей квоте. Ключ хранится только в памяти страницы; перезагрузка очищает его.","key":"Ключ API","keyPlaceholder":"Вставьте ваш ключ API","clearKey":"Очистить","auth":"Аутентификация","send":"Отправить запрос","sending":"Отправка…","cancel":"Остановить ожидание","response":"Живой ответ","keyRequired":"Сначала введите ваш ключ API.","invalidJson":"Тело запроса должно быть корректным JSON-объектом.","invalidBody":"Отсутствует обязательное поле тела, или тип/значение поля не соответствует схеме.","invalidPath":"Значения пути не могут содержать косую или обратную косую черту, или быть равными . или ..","failed":"Не удалось прочитать ответ. Проверьте подключение. Повторите неопределенный пакет с тем же Idempotency-Key.","cancelled":"Ожидание остановлено. Сервер может продолжать обработку и списать средства за принятую работу. Используйте тот же Idempotency-Key при повторном запросе пакета.","timeout":"Время ожидания истекло; результат на сервере неизвестен. Используйте тот же Idempotency-Key при повторном запросе пакета.","tooLarge":"Ответ превышает 2 МБ. Отображение остановлено; сузьте запрос или используйте свой бэкенд.","example":"Пример запроса","exampleNote":"YOUR_API_KEY — это заполнитель. В примерах никогда не используется введенный вами ключ.","copy":"Копировать","copied":"Скопировано","copyError":"Не удалось скопировать. Выделите и скопируйте текст вручную.","download":"Скачать OpenAPI","json":"Спецификация JSON","yaml":"Спецификация YAML","raw":"Полная схема","empty":"Пустой ответ","newId":"Новый идентификатор пакета","idemNote":"Сохраняйте это значение при повторе того же пакета. Изменяйте его только для новой, отдельно оплачиваемой задачи.","localError":"Локальная проверка не удалась; запрос не был отправлен.","unavailable":"Доступность","responseNote":"Это определения полей, а не живые результаты. Сервер может добавлять совместимые поля.","responseHint":"Запрос еще не отправлен.","apiVersion":"Версия API"},"groups":{"ip":"IP и конфиденциальность","bgp":"ASN и маршрутизация","threat":"Аналитика угроз","tools":"Сетевые инструменты","batch":"Пакетные запросы"},"guide":{"title":"IP-аналитика для вашего приложения","intro":"Единый API для IP-аналитики, владения сетью, маршрутизации и доказательств угроз. Включите доступ к аккаунту и начните с одного запроса.","steps":[{"title":"Создать аккаунт","text":"Зарегистрируйтесь, войдите в консоль API и запросите доступ. Аккаунты email в настоящее время требуют ручного одобрения; одобрение не является подтверждением email."},{"title":"Получите ключ API","text":"После одобрения создайте ключ или получите ключ, привязанный к аккаунту, от администратора. Полный секрет отображается только один раз; храните его безопасно."},{"title":"Вызывайте из вашего бэкенда","text":"Используйте X-API-Key или Authorization: Bearer. Никогда не помещайте ключи в URL, публичные репозитории или код фронтенда."}],"allowanceTitle":"Бесплатный лимит и платные периоды","allowance":"Бесплатные аккаунты получают 1000 единиц в день, сбрасываются в полночь UTC. Все ключи и пакеты на сайте используют общий баланс; замена или отзыв ключа не сбрасывает использование.","planColumns":["План","Дневной лимит безопасности","Запросов/мин/ключ","Активные ключи","Целей/пакет"],"plans":[["Free","1,000","30","2","100"],["Developer","10,000","120","5","500"],["Pro","100,000","600","20","2,000"],["Enterprise","1,000,000","3,000","100","5,000"]],"billing":"Платные периоды предоставляются вручную с тарифным планом, явным общим объёмом и сроком действия. Объём периода не равен дневному лимиту, умноженному на количество дней. Онлайн-оплата и автоматическое продление не включены. По истечении срока аккаунт возвращается на уровень Free; существующие области действия ключей никогда не расширяются автоматически. Также применяются устаревшие организационные контракты и более низкие лимиты на ключ.","usageTitle":"Как учитывается использование","usage":["Успешные синхронные запросы стоят одну единицу; чтение статуса/результатов пакета, сбои, отказы и отклонённые из-за ограничения частоты запросы стоят ноль.","Пакеты: принятые дедуплицированные цели тарифицируются один раз; последующие сбои целей не возвращаются. Требуется Idempotency-Key; повторная отправка того же запроса с тем же идентификатором не тарифицируется повторно.","Прогресс пакета на сайте и загрузки не требуют дополнительных единиц. При кодах 429 / 503 соблюдайте Retry-After, если он присутствует, и используйте экспоненциальную задержку."],"boundaries":["Используйте /api/public/v1 для клиентских интеграций. /api/v1 — внутренний интерфейс сайта, не являющийся клиентским контрактом. Внешний браузерный CORS не включён; вызывайте API со своего бэкенда.","Источник обратного IP: не настроен; недоступен.","Распространение C2: не включено.","RPKI использует снимки. Проверяйте observedAt, expiresAt, stale и riskStatus. Неизвестные или отсутствующие данные не означают безопасность. /api/capabilities — источник актуального статуса возможностей."]}}}