> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pubrio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Аналитика облачного следа

> Получите весь облачный след компании за один вызов, а также флаги изменений, на которые стоит реагировать: перемещённые хосты, новые облака, новые регионы и тестовые среды.

[Аналитика облачного следа](/ru/api-reference/endpoint/companies/cloud_footprints_insights) принимает одну компанию и возвращает весь её облачный след: итоги, ведущие провайдеры, страны и регионы, число новых хостов по неделям, последние хосты и **флаги** — изменения, на которые стоит реагировать.

Используйте [поиск облачного следа](/ru/developer-guides/search/cloud-footprint-search), чтобы построить список компаний. Используйте аналитику, когда нужна полная картина по одной из них.

## Перед началом

Вам нужен `domain_search_id` компании. Он есть в каждой записи поиска облачного следа, поиска компаний и просмотра компании.

```bash cURL theme={null}
curl -X POST https://api.pubrio.com/companies/cloud_footprints/search \
  -H "pubrio-api-key: $PUBRIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "domains": ["platform9.com"], "per_page": 1 }'
```

Возьмите `domain_search_id` из первой записи.

## Запрос

```bash cURL theme={null}
curl -X POST https://api.pubrio.com/companies/cloud_footprints/insights \
  -H "pubrio-api-key: $PUBRIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "domain_search_id": "a8064391-03c6-4ed2-91b0-217a9f89d418" }'
```

| Ключ | Обязателен | Значение |
| - | - | - |
| `domain_search_id` | Да | Компания. |
| `date_from` | Нет | Начало диапазона дат, `YYYY-MM-DD`. |
| `date_to` | Нет | Конец диапазона дат, `YYYY-MM-DD`. |

Без дат диапазон — последние 90 дней. Ваш тариф может ограничивать, насколько далеко в прошлое может уходить `date_from`.

## Что возвращается

| Ключ | Что это | Зависит от диапазона дат? |
| - | - | - |
| `totals` | Хосты, серверы, провайдеры, страны, зарубежные страны и регионы | Только `new_hosts` |
| `providers` | Топ-8 провайдеров | Нет |
| `countries` | Топ-8 стран, у каждой `evidence_url` | Нет |
| `regions` | Топ-8 облачных регионов | Нет |
| `weekly_series` | Хосты, впервые обнаруженные за каждую неделю | Да |
| `recent_hosts` | До 12 новейших хостов, одна запись на хост | Да |
| `window_days` | Число дней в диапазоне, включая обе границы | — |
| `flags` | Изменения, на которые стоит реагировать | Да |

**Хост** — именованный адрес, который использует компания, например `api.example.com`. **Сервер** — уникальный IP-адрес за этими хостами. Топ-списки отсортированы по серверам, затем по хостам.

Недели в `weekly_series` начинаются с понедельника в часовом поясе вашей рабочей области.

## Флаги

Флаги превращают облачный след в то, с чем можно работать. Списков пять. В каждом до 8 элементов, новые первыми, и каждый элемент называет реальные хосты, которые вы можете проверить сами.

| Флаг | Что означает | Почему это важно |
| - | - | - |
| `moved_hosts` | Хост теперь отвечает у другого провайдера, в другой стране или регионе. | Компания мигрирует или переезжает. |
| `twin_hosts` | Один и тот же сервис работает сразу в двух облаках, и одно из них добавлено недавно. | Мультиоблачное развёртывание или миграция в процессе. |
| `test_hosts` | Новый хост разработки, тестирования, staging или proof of concept в облаке, которое не является основным для компании. | Компания пробует новое облако. Это самый ранний сигнал. |
| `new_providers` | Провайдер, которого компания раньше не использовала. | Новые отношения с поставщиком. |
| `new_regions` | Новый регион или новая страна у провайдера, которого компания уже использовала. | Выход в новую географию. |

Каждый флаг проверяется заново при каждом запросе. Изменение, которое уже отменено, из списка выпадает.

### Перемещённые хосты

```json theme={null}
{
  "host": "onemindservices-new-jersey-prod.app.pcd.platform9.com",
  "is_provider_change": true,
  "from": { "provider": "AWS", "country_code": "US", "cloud_region": "us-west-2", "city": "Portland", "region_name": "Oregon", "first_seen_at": "2026-07-22T12:07:12.918787", "last_seen_at": "2026-07-22T12:19:41.499986" },
  "to": { "provider": "OCI", "country_code": "US", "cloud_region": "us-phoenix-1", "city": "Phoenix", "region_name": "Phoenix", "first_seen_at": "2026-09-13T16:07:26.248556", "last_seen_at": "2026-09-14T09:41:19.500363" },
  "is_live_confirmed": true
}
```

Этот продакшн-хост ушёл из AWS в Орегоне и теперь работает в Oracle Cloud в Финиксе.

* `is_provider_change` равен `true`, если сменился провайдер, и `false`, если сменилась только страна или регион.
* `is_live_confirmed` равен `true`, если хост прямо сейчас отвечает из `to`, и `false`, если хост ушёл из `from`, но его новое место подтвердить не удалось.

### Хосты-двойники

```json theme={null}
{
  "service": "du.testbed.only.app.pcd",
  "providers": ["AWS", "OCI"],
  "new_provider": "AWS",
  "first_seen_at": "2026-07-21T11:59:25.286744",
  "new_provider_first_seen_at": "2026-09-10T09:23:35.767165",
  "hosts": [
    { "host": "test-du-testbed-only-5113915.app.qa-pcd.platform9.com", "provider": "AWS", "country_code": "US", "cloud_region": "us-west-2", "city": "Portland", "region_name": "Oregon", "first_seen_at": "2026-09-10T09:23:35.767165" },
    { "host": "test-du-testbed-only-5114083.app.qa-pcd.platform9.com", "provider": "OCI", "country_code": "US", "cloud_region": "us-phoenix-1", "city": "Phoenix", "region_name": "Phoenix", "first_seen_at": "2026-09-10T11:53:10.757998" }
  ]
}
```

* `service` — имя, общее для хостов.
* `providers` перечисляет облака, в которых работает сервис, новые первыми. `new_provider` — самое новое из них.
* `hosts` даёт по одному работающему хосту на облако, до 3.

### Тестовые хосты

```json theme={null}
{
  "host": "iam-dev.platform.ea.com",
  "tags": ["dev"],
  "is_poc": false,
  "primary_provider": "AWS",
  "first_seen_at": "2026-09-06T08:13:54.048967",
  "places": [
    { "provider": "GCP", "country_code": "US", "cloud_region": "us-central1", "city": "Council Bluffs", "region_name": "Iowa" }
  ]
}
```

Компания на AWS с новым хостом разработки в Google Cloud.

* `tags` — слова в имени хоста, которые указывают, что это не продакшн.
* `is_poc` равен `true`, если имя помечает proof of concept или пилот. Такие элементы идут первыми.
* `places` — где хост работает сейчас. `primary_provider` сюда никогда не входит.

### Новые провайдеры

```json theme={null}
{
  "provider": "Equinix Metal",
  "first_seen_at": "2026-09-14T02:08:27.707494",
  "host_count": 1,
  "hosts": [
    { "host": "hnjobs.cncf.io", "provider": "Equinix Metal", "country_code": "US", "cloud_region": null, "city": "Parsippany", "region_name": null, "first_seen_at": "2026-09-14T02:08:27.707494" }
  ]
}
```

* `host_count` — сколько хостов у компании у этого провайдера сейчас.
* `hosts` даёт до 3 работающих хостов как подтверждение.

### Новые регионы

```json theme={null}
{
  "provider": "AWS",
  "country_code": "US",
  "cloud_region": "us-west-1",
  "city": "San Jose",
  "region_name": "N. California",
  "first_seen_at": "2026-09-09T22:44:04.868704",
  "host_count": 1,
  "hosts": [
    { "host": "mx.experience.zoom.us", "provider": "AWS", "country_code": "US", "cloud_region": "us-west-1", "city": "San Jose", "region_name": "N. California", "first_seen_at": "2026-09-09T22:44:04.868704" }
  ]
}
```

Провайдер использовался ещё до начала диапазона. Новый только регион. Если `cloud_region` равен `null`, флаг означает новую страну у этого провайдера.

### Когда флаги пусты

* **`flags` равен `null`.** Флаги для этой компании ещё не готовы. Остальной ответ всё равно полный.
* **Один список равен `null`.** Этот список не удалось построить в этом вызове. Остальные списки действительны. Повторите запрос позже.
* **`is_spam_flood` равен `true`.** Имена хостов компании слишком зашумлены для флагов, поэтому все списки пусты.
* **Список равен `[]`.** В диапазоне ничего не найдено. `twin_hosts`, `test_hosts`, `new_providers` и `new_regions` считают что-то новым, только когда Pubrio отслеживает компанию 90 дней, поэтому для недавно отслеживаемой компании списки пусты.

## Рецепты

<Tabs>
  <Tab title="Кто уходит из облака">
    ```bash cURL theme={null}
    curl -s -X POST https://api.pubrio.com/companies/cloud_footprints/insights \
      -H "pubrio-api-key: $PUBRIO_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{ "domain_search_id": "a8064391-03c6-4ed2-91b0-217a9f89d418" }' \
    | jq '.data.flags.moved_hosts[] | select(.is_provider_change) | {host, from: .from.provider, to: .to.provider}'
    ```

    Оставляет только переезды между провайдерами. Много переездов от одного провайдера указывают на миграцию.
  </Tab>

  <Tab title="Изменения за заданный период">
    ```bash cURL theme={null}
    curl -s -X POST https://api.pubrio.com/companies/cloud_footprints/insights \
      -H "pubrio-api-key: $PUBRIO_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "domain_search_id": "a8064391-03c6-4ed2-91b0-217a9f89d418",
        "date_from": "2026-08-01",
        "date_to": "2026-08-31"
      }'
    ```

    `new_hosts`, `weekly_series`, `recent_hosts` и все флаги теперь охватывают только август. Итоги и топ-списки не меняются.
  </Tab>

  <Tab title="Посчитать все флаги">
    ```bash cURL theme={null}
    curl -s -X POST https://api.pubrio.com/companies/cloud_footprints/insights \
      -H "pubrio-api-key: $PUBRIO_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{ "domain_search_id": "a8064391-03c6-4ed2-91b0-217a9f89d418" }' \
    | jq '.data.flags | if . == null then "not ready" else with_entries(select(.value | type == "array") | .value |= length) end'
    ```

    Быстрая проверка, в каких флагах что-то есть, прежде чем читать подробности.
  </Tab>
</Tabs>

## Что стоит знать

* Компания, работающая в двух странах, учитывается в записях обеих стран, поэтому сумма топ-списков может превышать `totals`.
* `is_cross_border` равен `null`, если штаб-квартира компании неизвестна. Это «неизвестно», а не «внутренний рынок».

## Связанное

<CardGroup cols={2}>
  <Card title="Справочник аналитики облачного следа" icon="code" href="/ru/api-reference/endpoint/companies/cloud_footprints_insights">
    Все ключи запроса и поля ответа.
  </Card>

  <Card title="Поиск облачного следа" icon="cloud" href="/ru/developer-guides/search/cloud-footprint-search">
    Постройте список компаний по провайдеру, стране, региону и масштабу.
  </Card>

  <Card title="Настройка webhooks" icon="webhook" href="/ru/developer-guides/setting-up-webhooks">
    Отправлять изменения облачного следа в webhook или почту.
  </Card>
</CardGroup>
