curl --request GET \
--url https://partner.peaka.studio/api/v1/data/projects/{projectId}/queries/{queryId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://partner.peaka.studio/api/v1/data/projects/{projectId}/queries/{queryId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://partner.peaka.studio/api/v1/data/projects/{projectId}/queries/{queryId}', 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://partner.peaka.studio/api/v1/data/projects/{projectId}/queries/{queryId}",
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://partner.peaka.studio/api/v1/data/projects/{projectId}/queries/{queryId}"
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://partner.peaka.studio/api/v1/data/projects/{projectId}/queries/{queryId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://partner.peaka.studio/api/v1/data/projects/{projectId}/queries/{queryId}")
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>",
"displayName": "<string>",
"name": "<string>",
"inputQuery": "<string>",
"queryType": "PLAIN",
"schedule": {
"type": "cron",
"cronExpression": "0 0 * * *",
"timezone": "UTC"
},
"path": "<string>",
"folderId": "<string>"
}Read Query
Returns a single query by its ID. Includes path and folderId if the query is placed in a folder.
curl --request GET \
--url https://partner.peaka.studio/api/v1/data/projects/{projectId}/queries/{queryId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://partner.peaka.studio/api/v1/data/projects/{projectId}/queries/{queryId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://partner.peaka.studio/api/v1/data/projects/{projectId}/queries/{queryId}', 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://partner.peaka.studio/api/v1/data/projects/{projectId}/queries/{queryId}",
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://partner.peaka.studio/api/v1/data/projects/{projectId}/queries/{queryId}"
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://partner.peaka.studio/api/v1/data/projects/{projectId}/queries/{queryId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://partner.peaka.studio/api/v1/data/projects/{projectId}/queries/{queryId}")
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>",
"displayName": "<string>",
"name": "<string>",
"inputQuery": "<string>",
"queryType": "PLAIN",
"schedule": {
"type": "cron",
"cronExpression": "0 0 * * *",
"timezone": "UTC"
},
"path": "<string>",
"folderId": "<string>"
}

Authorizations
Use the Authorization header with the value 'Bearer ' to authenticate. Partner API Keys have full access; Project API Keys are limited to their project scope. Learn more: https://docs.peaka.com/api-reference/authentication
Response
Read Query
A saved query belonging to a project.
The ID of the query.
The display name of the query.
The name of the query used in SQL, e.g. SELECT * FROM "peaka"."query"."". For a MATERIALIZED query the materialized result is queryable as "peaka"."mtquery"."".
The SQL query. For a materialized query created from an existing query (via inputQueryRefId), this holds the snapshot of the source query's SQL resolved when the query was created or last updated with the reference.
The type of the query.
PLAIN, MATERIALIZED Schedule configuration of a materialized query. Provide EITHER an interval schedule (type=interval with repeatDuration) OR a cron schedule (type=cron with cronExpression and optional timezone). Use type=none for no schedule. The fields that do not apply to the chosen type are omitted.
Show child attributes
Show child attributes
{
"type": "cron",
"cronExpression": "0 0 * * *",
"timezone": "UTC"
}
The folder path of the query (e.g. "/analytics/dashboards"). Null if not in any folder.
The ID of the folder containing this query. Null if not in any folder.