GET
/visibility/timeseries Visibility time series
Daily visibility and execution counts over the range.
Authenticate with
Authorization: Bearer obk_live_xxx. See authentication. Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
X-Workspace-Id | header | string | required | The workspace to scope the request to. Can also be passed as a `workspace_id` query parameter. |
start_date | query | string (date) | optional | Start of the range, YYYY-MM-DD. Defaults to 28 days ago. |
end_date | query | string (date) | optional | End of the range, YYYY-MM-DD. Defaults to today. |
brand_id | query | string | optional | Which brand to report on. You can also pass `brand_name` or `brand_domain`. Defaults to your own brand. |
platform | query | string | optional | Comma-separated AI platforms (e.g. `chatgpt,perplexity`). Defaults to all. |
topic_id | query | string | optional | Comma-separated topic IDs. Defaults to all. |
country | query | string | optional | Comma-separated countries. Defaults to all. |
Responses
200 OK
| Field | Type | Description |
|---|---|---|
workspace_id | string | |
brand_id | string, nullable | |
range | Range | |
visibility | object[] | |
executions | object[] |
Example request
curl --request GET \
--url https://app.orchly.ai/api/v1/visibility/timeseries \
--header 'Authorization: Bearer obk_live_xxx' \
--header 'X-Workspace-Id: ws_xxx'const res = await fetch(`https://app.orchly.ai/api/v1/visibility/timeseries`, {
method: 'GET',
headers: {
'Authorization': 'Bearer obk_live_xxx',
'X-Workspace-Id': 'ws_xxx',
},
});
const data = await res.json();import requests
resp = requests.get(
"https://app.orchly.ai/api/v1/visibility/timeseries",
headers={
"Authorization": "Bearer obk_live_xxx",
"X-Workspace-Id": "ws_xxx",
},
)
data = resp.json() Example response
A 200 response. Dynamic fields are shown as their type.
{
"workspace_id": "string",
"brand_id": "string",
"range": {
"start_date": "2026-01-01",
"end_date": "2026-01-01"
},
"visibility": [
{}
],
"executions": [
{}
]
}