Passer au contenu principal
GET
/
v2
/
apps
/
{app_id}
/
network
/
performance
Performance réseau
curl --request GET \
  --url https://api.squarecloud.app/v2/apps/{app_id}/network/performance \
  --header 'Authorization: <authorization>'
import requests

url = "https://api.squarecloud.app/v2/apps/{app_id}/network/performance"

headers = {"Authorization": "<authorization>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {Authorization: '<authorization>'}};

fetch('https://api.squarecloud.app/v2/apps/{app_id}/network/performance', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.squarecloud.app/v2/apps/{app_id}/network/performance",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://api.squarecloud.app/v2/apps/{app_id}/network/performance"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Authorization", "<authorization>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.squarecloud.app/v2/apps/{app_id}/network/performance")
.header("Authorization", "<authorization>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.squarecloud.app/v2/apps/{app_id}/network/performance")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'

response = http.request(request)
puts response.read_body
{
  "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
      }
    ]
  }
}
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.
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.
Authorization
string
requis
La clé d’API de votre compte. Vous pouvez la trouver dans les paramètres de votre compte.

Paramètres

app_id
string
requis
L’ID de l’application. Vous le trouverez dans l’URL du tableau de bord de votre application.
start
string
requis
Horodatage de début au format ISO 8601 pour la fenêtre d’analyse.
end
string
requis
Horodatage de fin au format ISO 8601. Doit être postérieur à start.

Réponse

status
string
Indique si l’appel a réussi. success en cas de succès, error sinon.
response
object
Percentiles de latence et répartitions pour la fenêtre.
{
  "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
      }
    ]
  }
}