Authentication and endpoints
Authenticate every request with your organization API key:https://api.aws53.cloud; visitor endpoints begin with /v1/data. Start with Make your first API request for an account check and a visitor-list request.
Visitor payload
The Data API returns the same canonical visitor data fields used by webhook deliveries, inside API-specific list, qualification, and journey response structures.Data API responses are not byte-for-byte copies of webhook payloads. Webhooks include an event envelope with fields such as
event, timestamp, trigger, organizationId, and segment. The Data API uses pagination, filtering, and journey response structures instead.
Canonical arrays are returned as empty arrays when no values are available. Nullable scalar fields are returned as
null.
Email hashes apply to the normalized primary email in email. They are not hashes for every address in emails. emailHash and emailHashes.sha256 both contain the SHA-256 value.
Phone numbers are returned in phones. Phone hashes are not currently generated. phonesDnc is a boolean do-not-call status, or null when the status is unavailable.
Use the generated endpoint pages under Visitors for the complete response schema.
Retrieve session summaries
UseGET /v1/data/visitors/{visitorId}/sessions when you need stable, bounded facts about a visitor’s sessions without receiving detailed browsing activity.
Set {visitorId} to the visitor’s lowercase SHA-256 emailHash. You can retrieve emailHash from the visitor list or qualification endpoint.
The response is structurally limited to canonical session facts. This endpoint never returns raw or detailed events, page sequences, full URLs, origins, query strings, or fragments.
entryPage and exitPage contain paths only.Cursor pagination
The default page size is50 sessions and the maximum is 100. Supported timeframes are 24h, 7d, 14d, 30d, 90d, and all; the default is 30d.
Sessions are ordered by startTime and canonical session key, both descending. The first response fixes meta.asOf, so relative timeframe boundaries do not move while you traverse subsequent pages.
When meta.hasMore is true, pass meta.nextCursor as cursor. Replace URL_ENCODED_NEXT_CURSOR below with the cursor encoded as a URL query value:
asOf. Pass it unchanged and keep the same scope throughout the traversal. Do not construct, modify, or reuse it with different filters.
Successful responses include RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset; the reset value is expressed in seconds. Use those headers to pace requests. A 429 response also includes Retry-After in seconds.
Passing partner-specific data through the pixel
Append custom query parameters to the existing pixel script URL when you need to associate visitors with a partner customer, campaign, or another internal label.& instead of starting another query string with ?.
Leadpipe captures the parameters with the visitor session and returns them in customAttribution:
Query qualified visitors
UsePOST /v1/data/query to retrieve identified visitors matching a saved segment. Get the segment ID from the segment you created in your organization; replace the example UUID before running this request.
segmentId or ruleAst. A saved segment must belong to the organization associated with the API key; a missing or inaccessible segment returns 404. You can also provide pixelId and a window override as documented in the generated reference.
The hosted schema names ruleAst but does not define its operators or complete structure. Use a saved segment until that contract is published, or confirm a custom rule definition with Leadpipe before implementing it. This query reads existing data and does not consume visitor-resolution credits.
Pagination and historical coverage
Use one pixel scope and time window throughout a traversal.
domain and pixelId are alternative visitor-list scopes and cannot be combined. List and qualification responses include a frozen traversal boundary; session cursors carry the frozen asOf automatically. Do not invent an asOf request parameter that is absent from the endpoint schema.
When meta.coverage is present, check partial. If it is true, the returned population does not fully cover the requested historical window, even after you finish pagination. Preserve this qualification in reports and exports. A missing coverage value is not proof of complete historical coverage.
Identity aliases are represented as one person. Recent events and enrichment updates can appear after a processing delay; a completed traversal is not a permanent guarantee that no new data will arrive.
See Authentication and errors for pacing and retries.
Backward compatibility
Existing Data API aliases remain available, but new integrations should use the canonical names.
Use
phonesDnc instead of phonesDNC. The canonical field is a boolean or null; the legacy field retains its older array-or-null shape.
Use companyEmployeeCount instead of the ambiguous companySize. Both fields contain a numeric employee count for backward compatibility.
Next steps
- Open Query visitor data for the complete list and journey schema.
- Open List privacy-bounded session summaries for the generated session endpoint reference.
- Open Query qualified visitor data for the generated qualification endpoint reference.
- Read Manage pixels to install pixels and pass custom attribution.
- Read Visitor suppression to exclude unwanted traffic from credits and automations.