Skip to content

One inbox

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

Reports group by type

string
Allowed values: sales service parts bodyshop general
locationId
required

Where the team works: its hours drive out-of-hours replies and response timers; its address and phone fill the signature. Null for a group-wide inbox

string format: uuid
nullable
signature
required

The inbox’s own email signature, with merge fields; null uses the business’s (GET /v1/email-signature)

string
nullable
signatureHtml
required

The inbox’s signature formatted, as HTML with merge fields; null when plain

string
nullable
responseTargetMinutes
required
number
Allowed values: 5 15 30 60 120 240 480
reopenAssignment
required
string
Allowed values: keep_owner apply_rules
newChapterAfterMonths
required

A customer writing this many months after their thread closed starts a new chapter (a new lead always does); null: never by time alone

integer
nullable >= -9007199254740991 <= 9007199254740991
isDefault
required

Leads and email with no other inbox go here

boolean
archivedAt
required
string format: date-time
nullable
address
required

The inbox email address: give it to customers, marketplaces, website providers and your DMS, and forward your own email to it. Lead emails (ADF or plain) are read for the lead and its source; replies join their thread.

string
nullable
memberCount
required

People in it (owners and admins see it anyway)

number
isMember
required

You are a member

boolean
listLayout
required

What each thread in its list shows, and the item filters it offers

object
itemFields
required

The item line, in order: title, price or attributes.<key> (GET /v1/inboxes/list-fields). Empty hides it

Array<string>
<= 4 items
details
required

The thread details, in order

Array<string>
<= 8 items
Allowed values: stage score next_appointment source waiting tags owner location
itemFilters
required

The item filters offered in the inbox

Array<string>
<= 8 items
listLayoutSuggested
required

The list layout is the suggested one (nobody has changed it)

boolean
createdAt
required
string format: date-time

Example

{
"name": "Leeds Sales",
"type": "sales",
"responseTargetMinutes": 5,
"reopenAssignment": "keep_owner",
"newChapterAfterMonths": 6,
"address": "smith-motors-sales-leeds@in.threadkite.net",
"memberCount": 4,
"listLayout": {
"itemFields": [
"attributes.reference",
"title",
"price"
],
"details": [
"stage",
"source",
"next_appointment"
],
"itemFilters": [
"brand",
"colour",
"price"
]
}
}

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
}