Skip to content

The inboxes you can see

GET
/v1/inboxes
curl --request GET \
--url 'https://api.threadkite.app/v1/inboxes?includeArchived=true' \
--header 'Authorization: Bearer <token>'

Your inboxes (every inbox for owners, admins and keys without an inbox limit), default first, with their addresses. Inboxes you are not in are never listed.

includeArchived

Include archived inboxes (settings); switchers and pickers leave it out

string
Allowed values: true false

Include archived inboxes (settings); switchers and pickers leave it out

Media typeapplication/json
Array<object>
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"
}
]
}

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
}