> ## 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.

# Análisis de huella cloud

> Consulta toda la huella cloud de una empresa en una sola llamada, con alertas de los cambios que merece la pena atender: hosts movidos, clouds nuevos, regiones nuevas y entornos de prueba.

[Análisis de huella cloud](/es/api-reference/endpoint/companies/cloud_footprints_insights) recibe una empresa y devuelve toda su huella cloud: totales, sus principales proveedores, países y regiones, cuántos hosts nuevos aparecieron cada semana, los hosts más recientes y **alertas**: los cambios que merece la pena atender.

Usa [Búsqueda de huella cloud](/es/developer-guides/search/cloud-footprint-search) para construir una lista de empresas. Usa Análisis cuando quieras la historia completa de una de ellas.

## Antes de empezar

Necesitas el `domain_search_id` de la empresa. Todas las filas de Búsqueda de huella cloud, Búsqueda de empresas y Consulta de empresas lo incluyen.

```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 }'
```

Toma el `domain_search_id` de la primera fila.

## Solicitud

```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" }'
```

| Clave | Obligatoria | Significado |
| - | - | - |
| `domain_search_id` | Sí | La empresa. |
| `date_from` | No | Inicio de la ventana de fechas, `YYYY-MM-DD`. |
| `date_to` | No | Fin de la ventana de fechas, `YYYY-MM-DD`. |

Sin fechas, la ventana son los últimos 90 días. Tu plan puede limitar hasta cuándo puede retroceder `date_from`.

## Qué devuelve

| Clave | Qué es | ¿Sigue la ventana de fechas? |
| - | - | - |
| `totals` | Hosts, servidores, proveedores, países, países transfronterizos y regiones | Solo `new_hosts` |
| `providers` | Los 8 proveedores principales | No |
| `countries` | Los 8 países principales, cada uno con un `evidence_url` | No |
| `regions` | Las 8 regiones cloud principales | No |
| `weekly_series` | Hosts vistos por primera vez cada semana | Sí |
| `recent_hosts` | Hasta 12 hosts más recientes, una entrada por host | Sí |
| `window_days` | Días de la ventana, contando ambos extremos | — |
| `flags` | Cambios que merece la pena atender | Sí |

Un **host** es una dirección con nombre que la empresa gestiona, como `api.example.com`. Un **servidor** es una dirección IP distinta detrás de esos hosts. Las listas principales se ordenan por servidores y luego por hosts.

Las semanas de `weekly_series` empiezan el lunes en la zona horaria de tu espacio de trabajo.

## Alertas

Las alertas convierten la huella en acciones concretas. Hay cinco listas. Cada una contiene hasta 8 elementos, los más recientes primero, y cada elemento nombra hosts reales que puedes comprobar tú mismo.

| Alerta | Qué significa | Por qué importa |
| - | - | - |
| `moved_hosts` | Un host responde ahora desde otro proveedor, país o región. | La empresa está migrando o reubicándose. |
| `twin_hosts` | El mismo servicio corre en dos clouds a la vez, y uno de ellos se añadió hace poco. | Un despliegue multicloud o una migración en curso. |
| `test_hosts` | Un host nuevo de desarrollo, pruebas, staging o prueba de concepto en un cloud que no es el principal de la empresa. | La empresa está probando un cloud nuevo. Es la señal más temprana. |
| `new_providers` | Un proveedor que la empresa no había usado antes. | Una nueva relación con un proveedor. |
| `new_regions` | Una región nueva, o un país nuevo, en un proveedor que la empresa ya usaba. | Crecimiento hacia una nueva zona geográfica. |

Cada alerta se vuelve a comprobar cuando la pides. Un cambio que se ha revertido desaparece.

### Hosts movidos

```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
}
```

Este host de producción dejó AWS en Oregón y ahora corre en Oracle Cloud en Phoenix.

* `is_provider_change` es `true` cuando cambió el proveedor. Es `false` cuando solo cambió el país o la región.
* `is_live_confirmed` es `true` cuando el host responde desde `to` en este momento. Es `false` cuando el host ha dejado `from` pero no se pudo confirmar su nueva ubicación.

### Hosts gemelos

```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` es el nombre que comparten los hosts.
* `providers` lista los clouds en los que el servicio está activo, los más recientes primero. `new_provider` es el más reciente.
* `hosts` da un host activo por cloud, hasta 3.

### Hosts de prueba

```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" }
  ]
}
```

Una empresa de AWS con un host de desarrollo nuevo en Google Cloud.

* `tags` son las palabras del nombre del host que lo marcan como no productivo.
* `is_poc` es `true` cuando el nombre indica una prueba de concepto o un piloto. Estos elementos aparecen primero.
* `places` es dónde está activo el host ahora. Nunca incluye `primary_provider`.

### Proveedores nuevos

```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` es cuántos hosts tiene ahora la empresa en este proveedor.
* `hosts` da hasta 3 hosts activos como prueba.

### Regiones nuevas

```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" }
  ]
}
```

El proveedor ya se usaba antes de la ventana. Solo la región es nueva. Cuando `cloud_region` es `null`, la alerta es un país nuevo en ese proveedor.

### Cuando las alertas están vacías

* **`flags` es `null`.** Las alertas aún no están listas para esta empresa. El resto de la respuesta sigue completo.
* **Una lista es `null`.** Esa lista no se pudo generar en esta llamada. Las demás listas siguen siendo válidas. Vuelve a intentarlo más tarde.
* **`is_spam_flood` es `true`.** Los nombres de host de la empresa tienen demasiado ruido para generar alertas, así que todas las listas están vacías.
* **Una lista es `[]`.** Nada coincidió en la ventana. `twin_hosts`, `test_hosts`, `new_providers` y `new_regions` solo consideran algo nuevo cuando Pubrio lleva 90 días siguiendo a la empresa, así que una empresa seguida desde hace poco devuelve listas vacías.

## Recetas

<Tabs>
  <Tab title="Quién está dejando un cloud">
    ```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}'
    ```

    Conserva solo los movimientos entre proveedores. Muchos movimientos desde el mismo proveedor apuntan a una migración.
  </Tab>

  <Tab title="Cambios en una ventana concreta">
    ```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` y todas las alertas cubren ahora solo agosto. Los totales y las listas principales no cambian.
  </Tab>

  <Tab title="Contar todas las alertas">
    ```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'
    ```

    Una comprobación rápida para ver qué alertas tienen contenido antes de leer los detalles.
  </Tab>
</Tabs>

## Conviene saber

* Una empresa que opera en dos países cuenta en ambas entradas de país, así que las listas principales pueden sumar más que `totals`.
* `is_cross_border` es `null` cuando no se conoce la sede de la empresa. Significa desconocido, no nacional.

## Relacionado

<CardGroup cols={2}>
  <Card title="Referencia de Análisis de huella cloud" icon="code" href="/es/api-reference/endpoint/companies/cloud_footprints_insights">
    Todas las claves de la solicitud y los campos de la respuesta.
  </Card>

  <Card title="Búsqueda de huella cloud" icon="cloud" href="/es/developer-guides/search/cloud-footprint-search">
    Construye una lista de empresas por proveedor, país, región y tamaño.
  </Card>

  <Card title="Configurar webhooks" icon="webhook" href="/es/developer-guides/setting-up-webhooks">
    Envía los cambios de huella cloud a un webhook o email.
  </Card>
</CardGroup>
