Lists visitors for the current organization with pagination and optional filters for search, status, tags, blocked state, visit counts, and last-seen range.
/api/visitorsLists visitors for the current organization with pagination and optional filters for search, status, tags, blocked state, visit counts, and last-seen range. When both page and offset are sent, page takes precedence. Use the returned pagination metadata rather than inferring another page from the item count. Filters and search are evaluated only against visitors in the authenticated organization.
Bearer API key or X-API-Key header.visitors:readautomation_api)Maximum number of resources to return.
One-based page number.
Zero-based number of resources to skip.
Query parameter. Search text.
Query parameter. Status. Allowed values: online, offline.
Query parameter. Value of blocked.
Query parameter. Value of minVisits.
Query parameter. Value of maxVisits.
Query parameter. ISO 8601 date and time for lastSeenFrom.
Query parameter. ISO 8601 date and time for lastSeenTo.
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"orgId": "770e8400-e29b-41d4-a716-446655440000",
"identifier": "[email protected]",
"publicCode": "example",
"identitySource": "anonymous",
"identityVerifiedAt": "2026-08-04T10:00:00.000Z",
"fingerprint": "fp_123",
"firstSeenAt": "2026-06-20T08:00:00.000Z",
"lastSeenAt": "2026-06-23T08:00:00.000Z",
"totalSessions": 5,
"geoCountry": "US",
"geoCity": "New York",
"metadata": {},
"browser": {
"name": "Chrome",
"version": "126.0",
"userAgent": "example",
"isMobile": true,
"isTablet": true,
"isDesktop": true,
"os": "macOS",
"osVersion": "example"
},
"lastPage": "https://customer.example.org/pricing",
"isReturning": true,
"name": "Example name",
"email": "[email protected]",
"phone": "+48123456789",
"tags": [],
"blocked": false,
"conversationCount": 0,
"isActive": true,
"totalTimeOnSiteSeconds": 0
}
],
"pagination": {
"totalItems": 1,
"page": 1,
"pageSize": 20,
"hasNextPage": false,
"hasPrevPage": false
}
}{
"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/visitors' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer convor_sk_...'const response = await fetch("https://api.convor.io/api/visitors", {
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?
Get visitor statistics
Returns visitor totals, online visitor count, new-versus-returning counts, and top countries for the requested period.
Merge duplicate visitor profiles
Atomically reassigns conversations, visitor messages, surveys, CSAT responses, and pending outbox records from one or more source visitors to the target.