> ## 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 réseau

> Obtenez les percentiles de latence edge et origin avec des répartitions par pays, colo et chemin pour l'application.

Renvoie les percentiles de temps de réponse edge et origin (`p50`, `p95`, `p99`) pour l'application sur une fenêtre temporelle, ainsi que des répartitions par pays, par colo et par chemins les plus lents. Utile pour diagnostiquer les régressions de latence et identifier quelles routes ou régions sont les plus lentes.

<Info>
  Disponible uniquement sur les plans **Pro** et **Enterprise**. Limite de débit en cas de cache miss : 10 requêtes par 60 secondes par propriétaire.
</Info>

<ParamField header="Authorization" type="string" placeholder="API Key" required>
  La clé d'API de votre compte. Vous pouvez la trouver dans les [paramètres de votre compte](https://squarecloud.app/fr/account/security).
</ParamField>

### Paramètres

<ParamField path="app_id" type="string" placeholder="Application ID" required>
  L'ID de l'application. Vous le trouverez dans l'URL du tableau de bord de votre application.
</ParamField>

<ParamField query="start" type="string" placeholder="ISO 8601 timestamp" required>
  Horodatage de début au format ISO 8601 pour la fenêtre d'analyse.
</ParamField>

<ParamField query="end" type="string" placeholder="ISO 8601 timestamp" required>
  Horodatage de fin au format ISO 8601. Doit être postérieur à `start`.
</ParamField>

### Réponse

<ResponseField name="status" type="string">
  Indique si l'appel a réussi. `success` en cas de succès, `error` sinon.
</ResponseField>

<ResponseField name="response" type="object">
  Percentiles de latence et répartitions pour la fenêtre.

  <Expandable title="Afficher l'objet de réponse">
    <ResponseField name="summary" type="object">
      Percentiles de latence agrégés sur l'ensemble de la fenêtre.

      <Expandable title="Afficher l'objet summary">
        <ResponseField name="edge" type="object">
          Percentiles de latence côté edge en millisecondes.

          <Expandable title="Afficher l'objet edge">
            <ResponseField name="p50" type="integer">Latence edge du 50e percentile (médiane).</ResponseField>
            <ResponseField name="p95" type="integer">Latence edge du 95e percentile.</ResponseField>
            <ResponseField name="p99" type="integer">Latence edge du 99e percentile.</ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="origin" type="object">
          Percentiles de latence côté origin en millisecondes.

          <Expandable title="Afficher l'objet origin">
            <ResponseField name="p50" type="integer">Latence origin du 50e percentile (médiane).</ResponseField>
            <ResponseField name="p95" type="integer">Latence origin du 95e percentile.</ResponseField>
            <ResponseField name="p99" type="integer">Latence origin du 99e percentile.</ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="requests" type="integer">Nombre total de requêtes analysées dans la fenêtre.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="timeseries" type="array">
      Percentiles de latence regroupés en intervalles sur la fenêtre d'analyse.

      <Expandable title="Afficher l'élément timeseries">
        <ResponseField name="date" type="string">Horodatage de début de l'intervalle au format ISO 8601.</ResponseField>
        <ResponseField name="requests" type="integer">Requêtes observées dans l'intervalle.</ResponseField>
        <ResponseField name="edge" type="object">`p50`/`p95`/`p99` edge pour cet intervalle.</ResponseField>
        <ResponseField name="origin" type="object">`p50`/`p95`/`p99` origin pour cet intervalle.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="countries" type="array">
      Répartition de la latence par pays du client.

      <Expandable title="Afficher l'élément countries">
        <ResponseField name="type" type="string">Code pays ISO (par ex. `BR`, `US`).</ResponseField>
        <ResponseField name="p50" type="integer">Latence médiane pour ce pays en millisecondes.</ResponseField>
        <ResponseField name="p95" type="integer">Latence du 95e percentile pour ce pays en millisecondes.</ResponseField>
        <ResponseField name="requests" type="integer">Requêtes servies vers ce pays.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="colos" type="array">
      Répartition de la latence par colo edge (centre de données).

      <Expandable title="Afficher l'élément colos">
        <ResponseField name="type" type="string">Identifiant du colo (par ex. `GRU`, `IAD`).</ResponseField>
        <ResponseField name="city" type="string">Ville où se situe le colo.</ResponseField>
        <ResponseField name="country" type="string">Pays où se situe le colo.</ResponseField>
        <ResponseField name="p50" type="integer">Latence médiane à ce colo en millisecondes.</ResponseField>
        <ResponseField name="p95" type="integer">Latence du 95e percentile à ce colo en millisecondes.</ResponseField>
        <ResponseField name="requests" type="integer">Requêtes servies via ce colo.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="slowest_paths" type="array">
      Chemins présentant la latence la plus élevée dans la fenêtre.

      <Expandable title="Afficher l'élément slowest_paths">
        <ResponseField name="path" type="string">Chemin de la requête.</ResponseField>
        <ResponseField name="p95" type="integer">Latence du 95e percentile pour ce chemin en millisecondes.</ResponseField>
        <ResponseField name="p99" type="integer">Latence du 99e percentile pour ce chemin en millisecondes.</ResponseField>
        <ResponseField name="requests" type="integer">Requêtes observées pour ce chemin.</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>
