Vai al contenuto principale
GET
/
v2
/
apps
/
{app_id}
/
network
/
performance
Prestazioni di Rete
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
      }
    ]
  }
}
Restituisce i percentili del tempo di risposta edge e origin (p50, p95, p99) dell’applicazione su un intervallo di tempo, oltre alle suddivisioni per paese, per colo e per i path più lenti. Utile per diagnosticare regressioni di latenza e identificare quali route o regioni sono le più lente.
Disponibile solo sui piani Pro ed Enterprise. Limite di frequenza per cache miss: 10 richieste ogni 60 secondi per proprietario.
Authorization
string
obbligatorio
La chiave API del tuo account. Puoi trovarla nelle impostazioni del tuo account.

Parametri

app_id
string
obbligatorio
L’ID dell’applicazione. Puoi trovarlo nell’URL della dashboard della tua applicazione.
start
string
obbligatorio
Timestamp di inizio ISO 8601 per l’intervallo di analisi.
end
string
obbligatorio
Timestamp di fine ISO 8601. Deve essere successivo a start.

Risposta

status
string
Indica se la chiamata è andata a buon fine. success in caso di successo, error in caso contrario.
response
object
Percentili di latenza e suddivisioni per l’intervallo.
{
  "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
      }
    ]
  }
}