Skip to content

A contact's events, newest first

GET
/v1/contacts/{id}/events
curl --request GET \
--url 'https://api.threadkite.app/v1/contacts/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/events?limit=25&includeInternal=true' \
--header 'Authorization: Bearer <token>'

Events Threadkite recorded (leads, messages, appointments, tasks, consent) and events other systems sent. Filter by name; includeInternal=false leaves out the ones Threadkite recorded.

id
required
string format: uuid
limit
integer
default: 25 >= 1 <= 100
cursor
string
<= 200 characters
name
string
<= 100 characters
includeInternal
string
default: true
Allowed values: true false
Media typeapplication/json
object
data
required
Array<object>
object
id
required
string format: uuid
contactId
required
string format: uuid
threadId
required
string format: uuid
nullable
name
required

The name everywhere in Threadkite: event.<the name sent> for events from other systems

string
label
required

The event type’s label

string
occurredAt
required
string format: date-time
origin
required

internal (Threadkite), api, connection or flow

string
Allowed values: internal api connection flow
properties
required

What it said (empty once cleared, two years after the event)

object
key
additional properties
any
messageId
required

The line it added to the thread, if any

string format: uuid
nullable
createdAt
required
string format: date-time
nextCursor
required

Pass as cursor to get the next page; null on the last page

string
nullable

Example

{
"data": [
{
"name": "event.order.paid",
"label": "Finance agreement ending",
"origin": "internal"
}
]
}

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
}