A one-hour token for one installation
const url = 'https://api.threadkite.app/v1/app/installations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/access_tokens';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"scopes":["organisation:read"]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.threadkite.app/v1/app/installations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/access_tokens \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "scopes": [ "organisation:read" ] }'Send it as Authorization: Bearer tkin_… to the rest of the API: it acts in that organisation with the installation’s scopes (or the fewer you ask for).
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Request Bodyrequired
Section titled “Request Bodyrequired”object
Fewer scopes than the installation was granted, for a token that can do less. Left out: all of the installation’s.
Responses
Section titled “Responses”object
Send as Authorization: Bearer <token>. Works for one hour.
Example
{ "token": "tkin_…", "scopes": [ "organisation:read" ]}Missing or invalid app token (code invalid_app_token)
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" } ]}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}