Rules, in the order they are checked
const url = 'https://api.threadkite.app/v1/rules';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.threadkite.app/v1/rules \ --header 'Authorization: Bearer <token>'One inbox’s assignment rules (to a named person or round robin, for some sources or locations) and out-of-hours auto-replies: inboxId, else your default inbox.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”The inbox (your default inbox when left out)
The inbox (your default inbox when left out)
Responses
Section titled “Responses”object
The inbox whose new threads it handles
Rules are checked in this order, lowest first
The fallback: used when no other rule picks anyone, whatever its conditions (set it with PUT /v1/rules/fallback)
object
Only leads from these sources (empty: any source)
Only threads at these locations (empty: every location)
Only messages on these channels (empty: any channel)
object
assign_user: a named person; round_robin: the next person in turn (the inbox’s members with a Full seat when userIds is empty); auto_reply: send a saved reply out of hours
assign_user: who gets the thread
round_robin: the people taking turns (empty: the inbox’s members with a Full seat)
auto_reply: the shared saved reply sent
auto_reply: new leads only, or every message from a contact
Why the rule may not do what it says now (someone left or has a Basic seat, a location was removed)
Example
[ { "name": "Google Ads leads to Sam", "kind": "assignment", "position": 0, "conditions": { "channels": [ "email" ] }, "action": { "type": "assign_user", "appliesTo": "leads" } }]Missing or invalid API key
object
Stable machine-readable reason
With code invalid: every problem with the request, by field (message is the first)
object
Dotted path inside the item, e.g. attributes.price.amountMinor
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)
object
Stable machine-readable reason
The feature that needs Pro
Where to upgrade or pay, in the web app
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)
object
Stable machine-readable reason
With code invalid: every problem with the request, by field (message is the first)
object
Dotted path inside the item, e.g. attributes.price.amountMinor
Example
{ "statusCode": 403, "code": "forbidden", "message": "You do not have permission to do that.", "errors": [ { "message": "Enter the make" } ]}Rate limit reached
object
Stable machine-readable reason
Seconds until another request will be accepted
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}