Skip to content

Receive an app’s webhook, for any organisation it is installed in

POST
/v1/inbound/apps/{slug}
curl --request POST \
--url https://api.threadkite.app/v1/inbound/apps/example

Signed as the app’s Incoming webhooks settings say. The organisation is the Threadkite-Organisation header (Threadkite’s id), else the field the app chose, matched against each installation’s account id.

slug
required
string
>= 1 characters <= 60 characters
Media typeapplication/json
object
received
required
boolean
id
required

The delivery, as the partner portal lists it (null for a repeat whose first delivery has gone)

string format: uuid
nullable
duplicate
required

Sent before (the same id): stored once

boolean

Example

{
"received": true
}

Bad signature

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

No organisation with the app installed matches (organisation_not_found)

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