Skip to content

Set the customer’s id in your system, or its own signing secret, on an installation

PATCH
/v1/app/installations/{id}
curl --request PATCH \
--url https://api.threadkite.app/v1/app/installations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "accountId": "D-0042", "inboundSecret": "example" }'

Your app-wide webhook address finds the organisation by it (the field you chose in Incoming webhooks). Unique among your installations.

id
required
string format: uuid
Media typeapplication/json
object
accountId

The customer’s id in your system, matched against the field your app-wide webhooks name it by. Unique among your installations

string
nullable >= 1 characters <= 200 characters

Example

D-0042
inboundSecret

The secret your system signs this customer’s webhooks with, when each customer has its own. Accepted besides the app’s own; null removes it. Never shown again

string
nullable >= 8 characters <= 500 characters
Media typeapplication/json
object
id
required
string format: uuid
organisationId
required
string format: uuid
organisationName
required
string
grantedScopes
required
Array<string>
Allowed values: organisation:read locations:read locations:write members:read members:write items:read items:write leads:write contacts:read contacts:write contacts:delete companies:read companies:write companies:delete threads:read threads:write messages:read messages:write tasks:read tasks:write appointments:read appointments:write events:read events:write records:read records:write flows:read flows:write segments:read reports:read reports:write sales:read sales:write imports:read imports:write webhooks:manage
status
required
string
Allowed values: active removed
installedBy
required

person: an owner or admin connected it; partner: you created the organisation

string
Allowed values: person partner
installedAt
required
string format: date-time
removedAt
required
string format: date-time
nullable
lastUsedAt
required
string format: date-time
nullable
inboundId
required

Its own address for your webhooks: /v1/inbound/installations/<inboundId> on the API

string
nullable
accountId
required

The customer’s id in your system, for the app-wide webhook address

string
nullable

Example

{
"organisationName": "Smith Motors",
"grantedScopes": [
"organisation:read"
],
"status": "active",
"installedBy": "person",
"inboundId": "in_8Kq2xW7mR4tZ9pL3vN6bH1cY",
"accountId": "D-0042"
}

Missing or invalid app token (code invalid_app_token)

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"
}
]
}
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
}