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

# Performance de rede

> Obter percentis de latência de borda e origem, com detalhamento por país, colo e caminho da aplicação.

Retorna percentis de tempo de resposta na borda e na origem (`p50`, `p95`, `p99`) para a aplicação em uma janela de tempo, além de detalhamento por país, por colo (data center) e pelos caminhos mais lentos. Útil para diagnosticar regressões de latência e identificar quais rotas ou regiões estão mais lentas.

<Info>
  Disponível apenas nos planos **Pro** e **Enterprise**. Rate limit de cache miss: 10 requisições por 60 segundos por proprietário.
</Info>

<ParamField header="Authorization" type="string" placeholder="Chave da API" required>
  A chave da API para sua conta. Você pode encontrá-la nas [configurações da conta](https://squarecloud.app/pt-br/account/security).
</ParamField>

### Parâmetros

<ParamField path="app_id" type="string" placeholder="ID da Aplicação" required>
  O ID da aplicação. Você pode encontrá-lo na URL do painel da sua aplicação.
</ParamField>

<ParamField query="start" type="string" placeholder="Timestamp ISO 8601" required>
  Timestamp inicial em formato ISO 8601 para a janela de análise.
</ParamField>

<ParamField query="end" type="string" placeholder="Timestamp ISO 8601" required>
  Timestamp final em formato ISO 8601. Deve ser posterior ao `start`.
</ParamField>

### Resposta

<ResponseField name="status" type="string">
  Indica se a chamada foi bem-sucedida. `success` se bem-sucedida, `error` se não.
</ResponseField>

<ResponseField name="response" type="object">
  Percentis de latência e detalhamentos para a janela analisada.

  <Expandable title="Alternar objeto response">
    <ResponseField name="summary" type="object">
      Percentis de latência agregados para toda a janela.

      <Expandable title="Alternar objeto summary">
        <ResponseField name="edge" type="object">
          Percentis de latência na borda, em milissegundos.

          <Expandable title="Alternar objeto edge">
            <ResponseField name="p50" type="integer">Percentil 50 (mediana) da latência na borda.</ResponseField>
            <ResponseField name="p95" type="integer">Percentil 95 da latência na borda.</ResponseField>
            <ResponseField name="p99" type="integer">Percentil 99 da latência na borda.</ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="origin" type="object">
          Percentis de latência na origem, em milissegundos.

          <Expandable title="Alternar objeto origin">
            <ResponseField name="p50" type="integer">Percentil 50 (mediana) da latência na origem.</ResponseField>
            <ResponseField name="p95" type="integer">Percentil 95 da latência na origem.</ResponseField>
            <ResponseField name="p99" type="integer">Percentil 99 da latência na origem.</ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="requests" type="integer">Total de requisições analisadas na janela.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="timeseries" type="array">
      Percentis de latência distribuídos em intervalos temporais ao longo da janela.

      <Expandable title="Alternar item timeseries">
        <ResponseField name="date" type="string">Timestamp inicial do intervalo, em formato ISO 8601.</ResponseField>
        <ResponseField name="requests" type="integer">Requisições observadas no intervalo.</ResponseField>
        <ResponseField name="edge" type="object">`p50`/`p95`/`p99` na borda para este intervalo.</ResponseField>
        <ResponseField name="origin" type="object">`p50`/`p95`/`p99` na origem para este intervalo.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="countries" type="array">
      Detalhamento da latência por país do cliente.

      <Expandable title="Alternar item countries">
        <ResponseField name="type" type="string">Código ISO do país (ex. `BR`, `US`).</ResponseField>
        <ResponseField name="p50" type="integer">Latência mediana para este país, em milissegundos.</ResponseField>
        <ResponseField name="p95" type="integer">Percentil 95 de latência para este país, em milissegundos.</ResponseField>
        <ResponseField name="requests" type="integer">Requisições servidas para este país.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="colos" type="array">
      Detalhamento da latência por colo (data center) de borda.

      <Expandable title="Alternar item colos">
        <ResponseField name="type" type="string">Identificador do colo (ex. `GRU`, `IAD`).</ResponseField>
        <ResponseField name="city" type="string">Cidade onde o colo está localizado.</ResponseField>
        <ResponseField name="country" type="string">País onde o colo está localizado.</ResponseField>
        <ResponseField name="p50" type="integer">Latência mediana neste colo, em milissegundos.</ResponseField>
        <ResponseField name="p95" type="integer">Percentil 95 de latência neste colo, em milissegundos.</ResponseField>
        <ResponseField name="requests" type="integer">Requisições servidas por este colo.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="slowest_paths" type="array">
      Caminhos com maior latência na janela.

      <Expandable title="Alternar item slowest_paths">
        <ResponseField name="path" type="string">Caminho da requisição.</ResponseField>
        <ResponseField name="p95" type="integer">Percentil 95 de latência para este caminho, em milissegundos.</ResponseField>
        <ResponseField name="p99" type="integer">Percentil 99 de latência para este caminho, em milissegundos.</ResponseField>
        <ResponseField name="requests" type="integer">Requisições observadas para este caminho.</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>
