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

# Rendimiento de red

> Obtén los percentiles de latencia del edge y del origen con desgloses por país, colo y ruta para la aplicación.

Devuelve los percentiles de tiempo de respuesta del edge y del origen (`p50`, `p95`, `p99`) de la aplicación durante una ventana de tiempo, además de desgloses por país, por colo y por las rutas más lentas. Útil para diagnosticar regresiones de latencia e identificar qué rutas o regiones son las más lentas.

<Info>
  Disponible únicamente en los planes **Pro** y **Enterprise**. Límite de tasa en caso de cache miss: 10 solicitudes por cada 60 segundos por propietario.
</Info>

<ParamField header="Authorization" type="string" placeholder="API Key" required>
  La clave de API de tu cuenta. Puedes encontrarla en la [configuración de tu cuenta](https://squarecloud.app/es/account/security).
</ParamField>

### Parámetros

<ParamField path="app_id" type="string" placeholder="Application ID" required>
  El ID de la aplicación. Puedes encontrarlo en la URL del panel de tu aplicación.
</ParamField>

<ParamField query="start" type="string" placeholder="ISO 8601 timestamp" required>
  Timestamp de inicio en formato ISO 8601 para la ventana de análisis.
</ParamField>

<ParamField query="end" type="string" placeholder="ISO 8601 timestamp" required>
  Timestamp de fin en formato ISO 8601. Debe ser posterior a `start`.
</ParamField>

### Respuesta

<ResponseField name="status" type="string">
  Indica si la llamada fue exitosa. `success` si fue exitosa, `error` si no.
</ResponseField>

<ResponseField name="response" type="object">
  Percentiles de latencia y desgloses de la ventana.

  <Expandable title="Alternar objeto de respuesta">
    <ResponseField name="summary" type="object">
      Percentiles de latencia agregados de toda la ventana.

      <Expandable title="Alternar objeto summary">
        <ResponseField name="edge" type="object">
          Percentiles de latencia del lado del edge en milisegundos.

          <Expandable title="Alternar objeto edge">
            <ResponseField name="p50" type="integer">Latencia del edge en el percentil 50 (mediana).</ResponseField>
            <ResponseField name="p95" type="integer">Latencia del edge en el percentil 95.</ResponseField>
            <ResponseField name="p99" type="integer">Latencia del edge en el percentil 99.</ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="origin" type="object">
          Percentiles de latencia del lado del origen en milisegundos.

          <Expandable title="Alternar objeto origin">
            <ResponseField name="p50" type="integer">Latencia del origen en el percentil 50 (mediana).</ResponseField>
            <ResponseField name="p95" type="integer">Latencia del origen en el percentil 95.</ResponseField>
            <ResponseField name="p99" type="integer">Latencia del origen en el percentil 99.</ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="requests" type="integer">Número total de solicitudes analizadas en la ventana.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="timeseries" type="array">
      Percentiles de latencia agrupados en buckets a lo largo de la ventana de análisis.

      <Expandable title="Alternar elemento de timeseries">
        <ResponseField name="date" type="string">Timestamp de inicio del bucket en formato ISO 8601.</ResponseField>
        <ResponseField name="requests" type="integer">Solicitudes observadas en el bucket.</ResponseField>
        <ResponseField name="edge" type="object">`p50`/`p95`/`p99` del edge para este bucket.</ResponseField>
        <ResponseField name="origin" type="object">`p50`/`p95`/`p99` del origen para este bucket.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="countries" type="array">
      Desglose de latencia por país del cliente.

      <Expandable title="Alternar elemento de countries">
        <ResponseField name="type" type="string">Código de país ISO (p. ej. `BR`, `US`).</ResponseField>
        <ResponseField name="p50" type="integer">Latencia mediana para este país en milisegundos.</ResponseField>
        <ResponseField name="p95" type="integer">Latencia en el percentil 95 para este país en milisegundos.</ResponseField>
        <ResponseField name="requests" type="integer">Solicitudes atendidas a este país.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="colos" type="array">
      Desglose de latencia por colo del edge (centro de datos).

      <Expandable title="Alternar elemento de colos">
        <ResponseField name="type" type="string">Identificador del colo (p. ej. `GRU`, `IAD`).</ResponseField>
        <ResponseField name="city" type="string">Ciudad donde se ubica el colo.</ResponseField>
        <ResponseField name="country" type="string">País donde se ubica el colo.</ResponseField>
        <ResponseField name="p50" type="integer">Latencia mediana en este colo en milisegundos.</ResponseField>
        <ResponseField name="p95" type="integer">Latencia en el percentil 95 en este colo en milisegundos.</ResponseField>
        <ResponseField name="requests" type="integer">Solicitudes atendidas a través de este colo.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="slowest_paths" type="array">
      Rutas con mayor latencia en la ventana.

      <Expandable title="Alternar elemento de slowest_paths">
        <ResponseField name="path" type="string">Ruta de la solicitud.</ResponseField>
        <ResponseField name="p95" type="integer">Latencia en el percentil 95 para esta ruta en milisegundos.</ResponseField>
        <ResponseField name="p99" type="integer">Latencia en el percentil 99 para esta ruta en milisegundos.</ResponseField>
        <ResponseField name="requests" type="integer">Solicitudes observadas para esta ruta.</ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json theme={null}
  {
    "status": "success",
    "response": {
      "summary": {
        "edge": { "p50": 42, "p95": 180, "p99": 320 },
        "origin": { "p50": 28, "p95": 150, "p99": 280 },
        "requests": 12450
      },
      "timeseries": [
        {
          "date": "2025-12-01T12:00:00.000Z",
          "requests": 540,
          "edge": { "p50": 41, "p95": 175, "p99": 310 },
          "origin": { "p50": 27, "p95": 148, "p99": 270 }
        }
      ],
      "countries": [
        { "type": "BR", "p50": 35, "p95": 160, "requests": 8200 },
        { "type": "US", "p50": 55, "p95": 210, "requests": 3100 }
      ],
      "colos": [
        {
          "type": "GRU",
          "city": "São Paulo",
          "country": "BR",
          "p50": 34,
          "p95": 158,
          "requests": 8100
        }
      ],
      "slowest_paths": [
        {
          "path": "/api/reports/generate",
          "p95": 820,
          "p99": 1500,
          "requests": 230
        }
      ]
    }
  }
  ```
</ResponseExample>
