Skip to content

Count a filter

POST
/v1/segments/preview
curl --request POST \
--url https://api.threadkite.app/v1/segments/preview \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "filter": { "conditions": [ { "type": "field", "field": "threads.tagIds", "op": "equals", "value": [ "example" ] } ] } }'

How many contacts a filter matches now and the first 50 by name, before saving it. Only contacts with a thread in an inbox you can see count.

Media typeapplication/json
object
filter
required
object
conditions
required

Every condition must hold; an empty list is everyone

Array
One of: discriminator: type
object
type
required
string
Allowed values: field
field
required

What to check: contact.<name|email|phone|createdAt|field key>, consent.<channel> or threads.<tagIds|sourceIds|locationIds|inboxIds|itemIds|states|scoreBand|lastActivityAt|lastContactMessageAt|leadCount|hasSale> (across their threads)

string

Example

threads.tagIds
op
required
string
Allowed values: equals not_equals in not_in contains not_contains is_set is_not_set greater_than less_than is_true is_false in_last_days in_next_days more_than_days_ago
value
One of:
string
Media typeapplication/json
object
count
required

Contacts in the segment now (only contacts with a thread in an inbox you can see count)

number
contacts
required

The first 50, by name

Array<object>
object
id
required
string format: uuid
name
required
string
nullable
email
required
string
nullable
phone
required

E.164

string
nullable

Example generated

{
"count": 1,
"contacts": [
{
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"name": "example",
"email": "example",
"phone": "example"
}
]
}
Media typeapplication/json
object
statusCode
required
number
code
required

Stable machine-readable reason

string
message
required
string
errors

With code invalid: every problem with the request, by field (message is the first)

Array<object>
object
path
required

Dotted path inside the item, e.g. attributes.price.amountMinor

string
message
required
string

Example

{
"statusCode": 403,
"code": "forbidden",
"message": "You do not have permission to do that.",
"errors": [
{
"message": "Enter the make"
}
]
}

Missing or invalid API key

Media typeapplication/json
object
statusCode
required
number
code
required

Stable machine-readable reason

string
message
required
string
errors

With code invalid: every problem with the request, by field (message is the first)

Array<object>
object
path
required

Dotted path inside the item, e.g. attributes.price.amountMinor

string
message
required
string

Example

{
"statusCode": 403,
"code": "forbidden",
"message": "You do not have permission to do that.",
"errors": [
{
"message": "Enter the make"
}
]
}

The organisation is on the Free plan (code upgrade_required)

Media typeapplication/json
object
statusCode
required
number
code
required

Stable machine-readable reason

string
message
required
string
feature
required

The feature that needs Pro

string
nullable
Allowed values: extraSeats connections aiAssistant aiReplies rules fullReports api inboxes bulkMessages videoMessages
upgradePath
required

Where to upgrade or pay, in the web app

string

Example

{
"statusCode": 402,
"code": "upgrade_required",
"message": "Connections are part of Pro. Upgrade to connect texts, calls and more.",
"feature": "extraSeats",
"upgradePath": "/settings/billing"
}

The key does not have the scope (or the person the permission)

Media typeapplication/json
object
statusCode
required
number
code
required

Stable machine-readable reason

string
message
required
string
errors

With code invalid: every problem with the request, by field (message is the first)

Array<object>
object
path
required

Dotted path inside the item, e.g. attributes.price.amountMinor

string
message
required
string

Example

{
"statusCode": 403,
"code": "forbidden",
"message": "You do not have permission to do that.",
"errors": [
{
"message": "Enter the make"
}
]
}
Media typeapplication/json
object
statusCode
required
number
code
required

Stable machine-readable reason

string
message
required
string
errors

With code invalid: every problem with the request, by field (message is the first)

Array<object>
object
path
required

Dotted path inside the item, e.g. attributes.price.amountMinor

string
message
required
string

Example

{
"statusCode": 403,
"code": "forbidden",
"message": "You do not have permission to do that.",
"errors": [
{
"message": "Enter the make"
}
]
}

Rate limit reached

Media typeapplication/json
object
statusCode
required
number
code
required

Stable machine-readable reason

string
message
required
string
retryAfter
required

Seconds until another request will be accepted

number

Example

{
"statusCode": 429,
"code": "rate_limited",
"message": "Too many requests. Each key can make 120 requests a minute; try again in 12 seconds.",
"retryAfter": 12
}