Returns tracked page history for one visitor in the current organization. Visitor tokens can only read their own history, while operators can read any visitor in the organization. `totalPages` is the number of entries returned in `pageHistory`. Authenticate with an organization API key sent in `X-API-Key` or as a Bearer token and carrying the exact `tracking:read` scope. API-key access also requires the Automation & API module (`automation_api`). Authorized dashboard sessions remain supported where the route already permits them. The request is isolated to the authenticated organization. Resource and site/project identifiers must belong to that organization; out-of-scope identifiers are not disclosed. Organization API keys and operator sessions can read an organization-owned visitor. Visitor bearer tokens remain limited to their own visitor identity by the route's explicit ownership check. Retry behavior: This read-only operation is safe to retry.
/api/tracking/visitors/{id}/historyOrganization API key supplied as Authorization: Bearer convor_sk_....
In: header
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
{
"visitorId": "44444444-4444-4444-8444-444444444444",
"pageHistory": [
{
"url": "https://customer.example.org/pricing",
"visitedAt": "2026-06-23T08:00:00.000Z"
}
],
"totalPages": 1
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}curl --request GET \
'https://api.convor.io/api/tracking/visitors/11111111-1111-4111-8111-111111111111/history' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer convor_sk_...'const response = await fetch("https://api.convor.io/api/tracking/visitors/11111111-1111-4111-8111-111111111111/history", {
method: "GET",
headers: {
"Accept": "application/json",
"Authorization": "Bearer convor_sk_..."
},
});
const contentType = response.headers.get("content-type") ?? "";
const data = response.status === 204
? null
: contentType.includes("json")
? await response.json()
: contentType.startsWith("text/")
? await response.text()
: await response.blob();
if (!response.ok) {
const message = typeof data === "object" && data !== null
&& "error" in data && typeof data.error === "object"
&& data.error !== null && "message" in data.error
? String(data.error.message)
: "Convor API request failed (" + response.status + ")";
throw new Error(message);
}
console.log(data);Was this page helpful?
Tracking
Visitor tracking and analytics
Get visitor statistics
Returns aggregate visitor statistics for the current organization. Only authenticated operators can access this data; widget visitors are limited to their own tracking history. The response can include totals, online visitor counts, and breakdowns such as country or traffic source when that data is available. The exact keys depend on which tracking data has been collected for the organization. Authenticate with an organization API key sent in `X-API-Key` or as a Bearer token and carrying the exact `tracking:read` scope. API-key access also requires the Automation & API module (`automation_api`). Authorized dashboard sessions remain supported where the route already permits them. The request is isolated to the authenticated organization. Resource and site/project identifiers must belong to that organization; out-of-scope identifiers are not disclosed. The response contains aggregate organization tracking data. Keys can vary as additional dimensions become available, so clients should tolerate additive fields. Retry behavior: This read-only operation is safe to retry.