Get the persona board
curl --request GET \
--url https://perquery.ai/api/v1/sites/{site_uuid}/personas/board \
--header 'Authorization: <api-key>'import requests
url = "https://perquery.ai/api/v1/sites/{site_uuid}/personas/board"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://perquery.ai/api/v1/sites/{site_uuid}/personas/board', 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://perquery.ai/api/v1/sites/{site_uuid}/personas/board",
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: <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"
"net/http"
"io"
)
func main() {
url := "https://perquery.ai/api/v1/sites/{site_uuid}/personas/board"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://perquery.ai/api/v1/sites/{site_uuid}/personas/board")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://perquery.ai/api/v1/sites/{site_uuid}/personas/board")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"cards": [
{
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"system_prompt": "<string>",
"kind": "demographic",
"is_raw": true,
"is_target": true,
"cells": [
{
"assistant": "<string>",
"visibility": 123
}
],
"average_visibility": 123,
"prompt_count": 123
}
],
"matrix": [
{
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"system_prompt": "<string>",
"kind": "demographic",
"is_raw": true,
"is_target": true,
"cells": [
{
"assistant": "<string>",
"visibility": 123
}
],
"average_visibility": 123,
"prompt_count": 123
}
],
"assistants": [
"<string>"
],
"total": 123,
"page": 123,
"page_size": 123,
"total_pages": 123
}Personas
Get the persona board
Returns the visibility of the brand for each persona and AI assistant. Use kind to filter the personas and set include_raw to also get the results without a persona. Use date_range to select the period (7g, 1a, 3a, 6a, 1y or custom with since and until). Use llm to limit the data to some AI assistants. The list is paged with page and page_size.
GET
/
v1
/
sites
/
{site_uuid}
/
personas
/
board
Get the persona board
curl --request GET \
--url https://perquery.ai/api/v1/sites/{site_uuid}/personas/board \
--header 'Authorization: <api-key>'import requests
url = "https://perquery.ai/api/v1/sites/{site_uuid}/personas/board"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://perquery.ai/api/v1/sites/{site_uuid}/personas/board', 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://perquery.ai/api/v1/sites/{site_uuid}/personas/board",
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: <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"
"net/http"
"io"
)
func main() {
url := "https://perquery.ai/api/v1/sites/{site_uuid}/personas/board"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://perquery.ai/api/v1/sites/{site_uuid}/personas/board")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://perquery.ai/api/v1/sites/{site_uuid}/personas/board")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"cards": [
{
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"system_prompt": "<string>",
"kind": "demographic",
"is_raw": true,
"is_target": true,
"cells": [
{
"assistant": "<string>",
"visibility": 123
}
],
"average_visibility": 123,
"prompt_count": 123
}
],
"matrix": [
{
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"system_prompt": "<string>",
"kind": "demographic",
"is_raw": true,
"is_target": true,
"cells": [
{
"assistant": "<string>",
"visibility": 123
}
],
"average_visibility": 123,
"prompt_count": 123
}
],
"assistants": [
"<string>"
],
"total": 123,
"page": 123,
"page_size": 123,
"total_pages": 123
}Authorizations
ApiKey pq_<prefix>_<secret>. An API key gives read-only access.
Path Parameters
Query Parameters
7g- 7g1a- 1a3a- 3a6a- 6a1y- 1ycustom- custom
Available options:
7g, 1a, 3a, 6a, 1y, custom Minimum string length:
1demographic- demographicneed- needbehavioral- behavioralcustom- custom
Available options:
demographic, need, behavioral, custom chatgpt- chatgptgemini- geminiclaude- claudeperplexity- perplexitygoogleai- googleaigrok- grokdeepseek- deepseek
Available options:
chatgpt, gemini, claude, perplexity, googleai, grok, deepseek Required range:
x >= 1Required range:
x >= 1The first day of a custom range.
The last day of a custom range.

