← Back to API Reference overview

Visitors

Identify and manage visitors. Accepts system fields like $email, $phone and arbitrary key/value attributes.

Shortcut: ⌘K

#The Visitor object

Captures the cross-link profile Linkbreakers builds for someone who scans or clicks, combining reserved identity fields, attributed devices, events, and custom traits gathered from forms.

attributes

object

Arbitrary attributes provided without "$" prefix (stored as JSON object)

createdAt

string (date-time)

Timestamps

devices

array<object>

Device information collected during visitor interactions

email

string

from "$email"

events

array<object>

Events associated with this visitor

firstName

string

from "$firstName" (optional)

id

string

Unique ID (UUID)

lastName

string

from "$lastName" (optional)

links

array<object>

Links associated with this visitor via events (included only on demand)

phone

string

from "$phone"

updatedAt

string (date-time)

workspaceId

string

Workspace that owns this visitor (UUID)

GET/v1/visitorsRequires auth

#List visitors

Returns a paginated collection of visitors with optional filters, includes, and CSV export.

#Parameters

query parameters

pageSize

integer (int32)query

Maximum number of visitors to return (default 50, max 200)

pageToken

stringquery

Cursor token to retrieve the next page of results

email

stringquery

optional exact match filter

search

stringquery

optional fuzzy search across known fields

include

array<string>query

linkId

stringquery

optional filter by link ID (UUID; visitors who have interacted with this link)

responseFormat

stringquery

- RESPONSE_FORMAT_UNSPECIFIED: Response format not specified - RESPONSE_FORMAT_JSON: Response format JSON - RESPONSE_FORMAT_CSV: Response format CSV

Allowed values
RESPONSE_FORMAT_UNSPECIFIED

Response format not specified

RESPONSE_FORMAT_JSON

Response format JSON

RESPONSE_FORMAT_CSV

Response format CSV

#Response

200

Everything worked as expected.

csv

object

ListVisitorsCsvResponse carries the raw CSV when ResponseFormat is set to RESPONSE_FORMAT_CSV.

json

object

ListVisitorsJsonResponse is the default structured payload used by dashboards.

#Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

objectRequired

Wrapped error response.

GET/v1/visitors/{id}Requires auth

#Get a visitor

Retrieves a visitor profile by ID with optional devices, events, or links included.

#Parameters

path parameters

id

stringRequiredpath

Visitor identifier (UUID)

query parameters

include

array<string>query

Optional relationships to hydrate ("devices", "events", "links")

#Response

200

Everything worked as expected.

attributes

object

Arbitrary attributes provided without "$" prefix (stored as JSON object)

createdAt

string (date-time)

Timestamps

devices

array<object>

Device information collected during visitor interactions

email

string

from "$email"

events

array<object>

Events associated with this visitor

firstName

string

from "$firstName" (optional)

id

string

Unique ID (UUID)

lastName

string

from "$lastName" (optional)

links

array<object>

Links associated with this visitor via events (included only on demand)

phone

string

from "$phone"

updatedAt

string (date-time)

workspaceId

string

Workspace that owns this visitor (UUID)

#Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

objectRequired

Wrapped error response.

POST/v1/visitor/identifyRequires auth

#Identify visitor

Finds or creates a visitor profile from an LBID and merges the provided system fields and attributes.

#Parameters

This endpoint does not accept any parameters.

#Request body

lbid

string

LBID (base64 encoded event ID) that initiated the visit (click/scan)

setOnce

boolean

If true, only set fields that are empty (set-once semantics); defaults to false (merge/overwrite)

visitor

object

Input payload for identifying/updating a visitor - Reserved keys (system fields) have a "$" prefix, e.g. "$email", "$phone", "$firstName", "$lastName". - All other keys are treated as custom attributes and stored in `attributes`.

#Response

200

Everything worked as expected.

created

boolean

Indicates whether a new visitor profile was created as part of the identification

visitor

object

Captures the cross-link profile Linkbreakers builds for someone who scans or clicks, combining reserved identity fields, attributed devices, events, and custom traits gathered from forms.

#Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

objectRequired

Wrapped error response.

PATCH/v1/visitors/{id}Requires auth

#Update a visitor

Applies partial attribute updates to an existing visitor profile.

#Parameters

path parameters

id

stringRequiredpath

Visitor identifier (UUID)

#Request body

visitor

object

Input payload for identifying/updating a visitor - Reserved keys (system fields) have a "$" prefix, e.g. "$email", "$phone", "$firstName", "$lastName". - All other keys are treated as custom attributes and stored in `attributes`.

#Response

200

Everything worked as expected.

attributes

object

Arbitrary attributes provided without "$" prefix (stored as JSON object)

createdAt

string (date-time)

Timestamps

devices

array<object>

Device information collected during visitor interactions

email

string

from "$email"

events

array<object>

Events associated with this visitor

firstName

string

from "$firstName" (optional)

id

string

Unique ID (UUID)

lastName

string

from "$lastName" (optional)

links

array<object>

Links associated with this visitor via events (included only on demand)

phone

string

from "$phone"

updatedAt

string (date-time)

workspaceId

string

Workspace that owns this visitor (UUID)

#Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

objectRequired

Wrapped error response.

DELETE/v1/visitors/{id}Requires auth

#Delete a visitor

Removes a visitor profile and its stored attributes from the workspace.

#Parameters

path parameters

id

stringRequiredpath

Visitor identifier to remove (UUID)

#Response

200

Everything worked as expected.

success

boolean

Indicates whether the visitor record was deleted

#Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

objectRequired

Wrapped error response.

DELETE/v1/visitors/{id}/attributes/{attributeKey}Requires auth

#Delete a visitor attribute

Deletes a single attribute from the visitor profile without affecting other data.

#Parameters

path parameters

id

stringRequiredpath

Visitor identifier whose attribute should be removed (UUID)

attributeKey

stringRequiredpath

Attribute key to delete (without "$" prefix)

#Response

200

Everything worked as expected.

success

boolean

Indicates whether the attribute was removed

#Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

objectRequired

Wrapped error response.