Skip to main content
GET
/
organizations
/
{organization}
/
databases
/
{database}
/
branches
/
{branch}
/
insights
/
{fingerprint}
/
summary
Retrieve a summary of query statistics
curl --request GET \
  --url https://api.planetscale.com/v1/organizations/{organization}/databases/{database}/branches/{branch}/insights/{fingerprint}/summary \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://api.planetscale.com/v1/organizations/{organization}/databases/{database}/branches/{branch}/insights/{fingerprint}/summary"

headers = {"Authorization": "Bearer <token>"}

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

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

fetch('https://api.planetscale.com/v1/organizations/{organization}/databases/{database}/branches/{branch}/insights/{fingerprint}/summary', 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.planetscale.com/v1/organizations/{organization}/databases/{database}/branches/{branch}/insights/{fingerprint}/summary",
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: Bearer <token>"
],
]);

$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.planetscale.com/v1/organizations/{organization}/databases/{database}/branches/{branch}/insights/{fingerprint}/summary"

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

req.Header.Add("Authorization", "Bearer <token>")

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.planetscale.com/v1/organizations/{organization}/databases/{database}/branches/{branch}/insights/{fingerprint}/summary")
.header("Authorization", "Bearer <token>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.planetscale.com/v1/organizations/{organization}/databases/{database}/branches/{branch}/insights/{fingerprint}/summary")

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

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

response = http.request(request)
puts response.read_body
{
  "id": "<string>",
  "fingerprint": "<string>",
  "statement_type": "<string>",
  "keyspace": "<string>",
  "normalized_sql": "<string>",
  "syntax_highlighted_sql": "<string>",
  "multishard": true,
  "query_count": 123,
  "error_count": 123,
  "tables": [
    "<string>"
  ],
  "qualified_tables": [
    "<string>"
  ],
  "table_keyspaces": [
    {}
  ],
  "index_usages": [
    {}
  ],
  "routing_index_usages": [
    {}
  ],
  "sum_shard_queries": 123,
  "max_shard_queries": 123,
  "avg_shard_queries": 123,
  "sum_rows_read": 123,
  "sum_rows_affected": 123,
  "sum_rows_returned": 123,
  "rows_read_per_returned": 123,
  "rows_read_per_query": 123,
  "rows_returned_per_query": 123,
  "rows_affected_per_query": 123,
  "sum_total_duration_millis": 123,
  "sum_total_duration_percent": 123,
  "sum_cpu_duration_millis": 123,
  "sum_cpu_duration_percent": 123,
  "sum_io_duration_millis": 123,
  "sum_io_duration_percent": 123,
  "last_run_at": "<string>",
  "time_per_query": 123,
  "p50_latency": 123,
  "p99_latency": 123,
  "max_latency": 123,
  "egress_bytes": 123,
  "egress_bytes_per_query": 123,
  "max_egress_bytes": 123,
  "ingress_bytes": 123,
  "ingress_bytes_per_query": 123,
  "max_ingress_bytes": 123,
  "blocks_read": 123,
  "blocks_hit": 123,
  "block_cache_hit_ratio": 123,
  "blocks_dirtied": 123,
  "blocks_written": 123,
  "traffic_control_warnings": 123,
  "traffic_control_throttled": 123,
  "traffic_control_checked": 123
}

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Path Parameters

organization
string
required

Organization name slug from list_organizations. Example: acme.

database
string
required

Database name slug from list_databases. Example: app-db.

branch
string
required

Branch name from list_branches. Example: main.

fingerprint
string
required

The query fingerprint

Query Parameters

keyspace
string

The keyspace to filter by

from
string

Start time for filtering query statistics (ISO 8601 timestamp)

to
string

End time for filtering query statistics (ISO 8601 timestamp)

period
string

Time period for filtering query statistics (e.g., '1h', '24h')

Response

Returns aggregated query statistics summary

id
string
required

The ID of the query summary

fingerprint
string
required

The query fingerprint

statement_type
string
required

The type of SQL statement

keyspace
string
required

The keyspace the query ran against

normalized_sql
string
required

The normalized SQL statement

syntax_highlighted_sql
string
required

Syntax highlighted SQL statement

multishard
boolean
required

Whether the query is a multishard query

query_count
integer
required

The number of times this query was executed

error_count
integer
required

The number of times this query resulted in an error

tables
string[]
required

Tables accessed by the query

qualified_tables
string[]
required

Fully qualified tables accessed by the query

table_keyspaces
object[]
required

Mapping of tables to their keyspaces

index_usages
object[]
required

Index usage information

routing_index_usages
object[]
required

Routing index usage information

sum_shard_queries
integer
required

The total number of shard queries

max_shard_queries
integer
required

The maximum number of shard queries for a single execution

avg_shard_queries
number
required

The average number of shard queries

sum_rows_read
integer
required

The total number of rows read

sum_rows_affected
integer
required

The total number of rows affected

sum_rows_returned
integer
required

The total number of rows returned

rows_read_per_returned
number
required

Average rows read per row returned

rows_read_per_query
number
required

Average rows read per query

rows_returned_per_query
number
required

Average rows returned per query

rows_affected_per_query
number
required

Average rows affected per query

sum_total_duration_millis
integer
required

Total duration in milliseconds across all executions

sum_total_duration_percent
number
required

Percentage of total query time

sum_cpu_duration_millis
integer
required

Total CPU duration in milliseconds

sum_cpu_duration_percent
number
required

Percentage of total CPU time

sum_io_duration_millis
integer
required

Total IO duration in milliseconds

sum_io_duration_percent
number
required

Percentage of total IO time

last_run_at
string | null
required

When this query was last executed

time_per_query
number
required

Average time per query execution

p50_latency
number
required

50th percentile latency

p99_latency
number
required

99th percentile latency

max_latency
number
required

Maximum latency observed

egress_bytes
integer
required

Total egress bytes

egress_bytes_per_query
number
required

Average egress bytes per query

max_egress_bytes
integer
required

Maximum egress bytes for a single execution

ingress_bytes
integer
required

Total ingress bytes

ingress_bytes_per_query
number
required

Average ingress bytes per query

max_ingress_bytes
integer
required

Maximum ingress bytes for a single execution

blocks_read
integer
required

Total blocks read from disk

blocks_hit
integer
required

Total blocks found in cache

block_cache_hit_ratio
number
required

Cache hit ratio for blocks

blocks_dirtied
integer
required

Total blocks dirtied

blocks_written
integer
required

Total blocks written

traffic_control_warnings
integer
required

The number of executions that triggered a traffic control warning

traffic_control_throttled
integer
required

The number of executions throttled by traffic control

traffic_control_checked
integer
required

The number of executions checked by traffic control rules