Preview segment members
POST
/api/v3/contacts/segments/{segmentId}/preview
const url = 'https://api.tryletterhead.com/api/v3/contacts/segments/1/preview?api=true';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"pageSize":1,"searchAfter":"example","channel":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url 'https://api.tryletterhead.com/api/v3/contacts/segments/1/preview?api=true' \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "pageSize": 1, "searchAfter": "example", "channel": "example" }'Previews the contacts that currently match a segment’s criteria, evaluated live. Results are cursor-paginated with searchAfter.
This is a company-level (v3) read. Authenticate with a company API key as a Bearer token.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ” segmentId
required
integer
The segment’s identifier.
Query Parameters
Section titled “Query Parameters ” api
required
boolean
Required. Set to true.
Request Body
Section titled “Request Body ” Media type application/json
object
pageSize
Page size, 1–100. Defaults to 25.
integer
searchAfter
Opaque cursor from the previous page’s searchAfter. Omit or send null for the first page.
string
channel
Narrow the preview to contacts subscribed to the given channel identifier (slug). Omit for the full company audience.
string
Example generated
{ "pageSize": 1, "searchAfter": "example", "channel": "example"}Responses
Section titled “ Responses ”200 OK
Media type application/json
object
items
object
contacts
The matched contacts for this page.
Array<object>
object
email
string
firstName
string
lastName
string
tags
Array<string>
customFields
object
__lh.engagementRefreshedAt
string
__lh.mailboxProvider
string
__lh.roleAddress
boolean
age
integer
referralSource
string
lastOpenDate
string
endpoints
Array<object>
object
channelConsents
Array<object>
object
consents
Array<object>
object
createdAt
string
updatedAt
string
searchAfter
Opaque cursor for the next page — pass it back as searchAfter.
string
totalRelation
Whether the top-level total is exact (eq) or a lower bound (gte).
string
message
string
total
integer
Example
{ "items": { "contacts": [ { "firstName": "Avery", "lastName": "Chen", "tags": [ "engaged-readers" ], "customFields": { "__lh.engagementRefreshedAt": "2026-06-14T04:20:28+00:00", "__lh.mailboxProvider": "gmail", "__lh.roleAddress": false, "age": 36, "referralSource": "Archive page", "lastOpenDate": "2026-06-12 06:29:04" }, "endpoints": [], "channelConsents": [], "consents": [], "createdAt": "2026-05-23T11:43:15+00:00", "updatedAt": "2026-06-18T09:12:04+00:00" }, { "firstName": "Jordan", "lastName": "Reyes", "tags": [ "engaged-readers", "the-north" ], "customFields": { "__lh.engagementRefreshedAt": "2026-06-14T04:20:28+00:00", "__lh.mailboxProvider": "other", "__lh.roleAddress": false, "age": 42, "referralSource": "Embedded subscription box", "lastOpenDate": "2026-06-13 18:02:11" }, "endpoints": [], "channelConsents": [], "consents": [], "createdAt": "2026-05-23T11:43:15+00:00", "updatedAt": "2026-06-18T09:12:04+00:00" } ] }, "message": "Segment preview retrieved.", "total": 1284}Still can’t find what you need? Contact support.