Skip to content

One thing a contact owns

GET
/v1/contacts/{id}/items/{itemId}
curl --request GET \
--url https://api.threadkite.app/v1/contacts/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/items/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Authorization: Bearer <token>'
id
required
string format: uuid
itemId
required
string format: uuid
Media typeapplication/json
object
id
required
string format: uuid
contactId
required
string format: uuid
type
required

One of your industry pack’s item types

string
title
required
string
subtitle
required
string
nullable
current
required

They have it now (false: sold or replaced)

boolean
source
required

Who added it

string
Allowed values: staff api event dms
externalSource
required
string
nullable
externalId
required
string
nullable
attributes
required

The item’s details, as the item type describes them (see /v1/contact-item-types)

object
key
additional properties
any
createdAt
required
string format: date-time
updatedAt
required
string format: date-time

Example

{
"type": "owned_product",
"title": "Oak dining table",
"subtitle": "SKU-1042 · Solid oak · 2025",
"source": "staff",
"externalSource": "my-dms",
"externalId": "VEH-44120",
"attributes": {
"sku": "SKU-1042",
"name": "Oak dining table",
"warrantyEndDate": "2028-03-01",
"price": {
"amountMinor": 89900,
"currency": "GBP"
}
}
}

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
}