Execute a SbQL query
curl --request POST \
--url https://public-api.sessionboard.com/v1/insights/execute \
--header 'Content-Type: application/json' \
--header 'x-access-token: <api-key>' \
--data '
{
"query": "SELECT sessions.title, sessions.status FROM sessions",
"eventId": 123,
"eventIds": [
123
],
"obfuscatePii": true,
"format": "<string>",
"page": 123,
"limit": 123,
"search": "<string>",
"sortBy": "<string>",
"groupBy": "<string>",
"pivot": "<string>"
}
'import requests
url = "https://public-api.sessionboard.com/v1/insights/execute"
payload = {
"query": "SELECT sessions.title, sessions.status FROM sessions",
"eventId": 123,
"eventIds": [123],
"obfuscatePii": True,
"format": "<string>",
"page": 123,
"limit": 123,
"search": "<string>",
"sortBy": "<string>",
"groupBy": "<string>",
"pivot": "<string>"
}
headers = {
"x-access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
query: 'SELECT sessions.title, sessions.status FROM sessions',
eventId: 123,
eventIds: [123],
obfuscatePii: true,
format: '<string>',
page: 123,
limit: 123,
search: '<string>',
sortBy: '<string>',
groupBy: '<string>',
pivot: '<string>'
})
};
fetch('https://public-api.sessionboard.com/v1/insights/execute', 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://public-api.sessionboard.com/v1/insights/execute",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'query' => 'SELECT sessions.title, sessions.status FROM sessions',
'eventId' => 123,
'eventIds' => [
123
],
'obfuscatePii' => true,
'format' => '<string>',
'page' => 123,
'limit' => 123,
'search' => '<string>',
'sortBy' => '<string>',
'groupBy' => '<string>',
'pivot' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://public-api.sessionboard.com/v1/insights/execute"
payload := strings.NewReader("{\n \"query\": \"SELECT sessions.title, sessions.status FROM sessions\",\n \"eventId\": 123,\n \"eventIds\": [\n 123\n ],\n \"obfuscatePii\": true,\n \"format\": \"<string>\",\n \"page\": 123,\n \"limit\": 123,\n \"search\": \"<string>\",\n \"sortBy\": \"<string>\",\n \"groupBy\": \"<string>\",\n \"pivot\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-access-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://public-api.sessionboard.com/v1/insights/execute")
.header("x-access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"SELECT sessions.title, sessions.status FROM sessions\",\n \"eventId\": 123,\n \"eventIds\": [\n 123\n ],\n \"obfuscatePii\": true,\n \"format\": \"<string>\",\n \"page\": 123,\n \"limit\": 123,\n \"search\": \"<string>\",\n \"sortBy\": \"<string>\",\n \"groupBy\": \"<string>\",\n \"pivot\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.sessionboard.com/v1/insights/execute")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"SELECT sessions.title, sessions.status FROM sessions\",\n \"eventId\": 123,\n \"eventIds\": [\n 123\n ],\n \"obfuscatePii\": true,\n \"format\": \"<string>\",\n \"page\": 123,\n \"limit\": 123,\n \"search\": \"<string>\",\n \"sortBy\": \"<string>\",\n \"groupBy\": \"<string>\",\n \"pivot\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"results": [
{}
],
"pagination": {
"currentPage": 1,
"pageSize": 25,
"totalPages": 4,
"totalResults": 97
}
}Org — Reports & SbQL
Execute a SbQL query
Execute a SbQL query against event data and return results. Requires the read:insights scope.
POST
/
v1
/
insights
/
execute
Execute a SbQL query
curl --request POST \
--url https://public-api.sessionboard.com/v1/insights/execute \
--header 'Content-Type: application/json' \
--header 'x-access-token: <api-key>' \
--data '
{
"query": "SELECT sessions.title, sessions.status FROM sessions",
"eventId": 123,
"eventIds": [
123
],
"obfuscatePii": true,
"format": "<string>",
"page": 123,
"limit": 123,
"search": "<string>",
"sortBy": "<string>",
"groupBy": "<string>",
"pivot": "<string>"
}
'import requests
url = "https://public-api.sessionboard.com/v1/insights/execute"
payload = {
"query": "SELECT sessions.title, sessions.status FROM sessions",
"eventId": 123,
"eventIds": [123],
"obfuscatePii": True,
"format": "<string>",
"page": 123,
"limit": 123,
"search": "<string>",
"sortBy": "<string>",
"groupBy": "<string>",
"pivot": "<string>"
}
headers = {
"x-access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
query: 'SELECT sessions.title, sessions.status FROM sessions',
eventId: 123,
eventIds: [123],
obfuscatePii: true,
format: '<string>',
page: 123,
limit: 123,
search: '<string>',
sortBy: '<string>',
groupBy: '<string>',
pivot: '<string>'
})
};
fetch('https://public-api.sessionboard.com/v1/insights/execute', 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://public-api.sessionboard.com/v1/insights/execute",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'query' => 'SELECT sessions.title, sessions.status FROM sessions',
'eventId' => 123,
'eventIds' => [
123
],
'obfuscatePii' => true,
'format' => '<string>',
'page' => 123,
'limit' => 123,
'search' => '<string>',
'sortBy' => '<string>',
'groupBy' => '<string>',
'pivot' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://public-api.sessionboard.com/v1/insights/execute"
payload := strings.NewReader("{\n \"query\": \"SELECT sessions.title, sessions.status FROM sessions\",\n \"eventId\": 123,\n \"eventIds\": [\n 123\n ],\n \"obfuscatePii\": true,\n \"format\": \"<string>\",\n \"page\": 123,\n \"limit\": 123,\n \"search\": \"<string>\",\n \"sortBy\": \"<string>\",\n \"groupBy\": \"<string>\",\n \"pivot\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-access-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://public-api.sessionboard.com/v1/insights/execute")
.header("x-access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"SELECT sessions.title, sessions.status FROM sessions\",\n \"eventId\": 123,\n \"eventIds\": [\n 123\n ],\n \"obfuscatePii\": true,\n \"format\": \"<string>\",\n \"page\": 123,\n \"limit\": 123,\n \"search\": \"<string>\",\n \"sortBy\": \"<string>\",\n \"groupBy\": \"<string>\",\n \"pivot\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.sessionboard.com/v1/insights/execute")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"SELECT sessions.title, sessions.status FROM sessions\",\n \"eventId\": 123,\n \"eventIds\": [\n 123\n ],\n \"obfuscatePii\": true,\n \"format\": \"<string>\",\n \"page\": 123,\n \"limit\": 123,\n \"search\": \"<string>\",\n \"sortBy\": \"<string>\",\n \"groupBy\": \"<string>\",\n \"pivot\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"results": [
{}
],
"pagination": {
"currentPage": 1,
"pageSize": 25,
"totalPages": 4,
"totalResults": 97
}
}Authorizations
Organization API token. Generate from Organization Settings → API Tokens.
Body
application/json
The SbQL query string to execute.
Example:
"SELECT sessions.title, sessions.status FROM sessions"
Scope query to a single event.
Scope query to multiple events.
Whether to obfuscate personally identifiable information in results.
Output format for results.
Page number for paginated results.
Maximum number of rows to return.
Full-text search within results.
Column name to sort results by.
Sort direction.
Available options:
asc, desc Column name to group results by.
Column name to pivot results on.
⌘I

