A record, by its type and its id in your system, with its history
const url = 'https://api.threadkite.app/v1/records/example/example';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/records/example/example \ --header 'Authorization: Bearer <token>'An app reads its own records; anyone else names the integration it sent them with (api when it named none).
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Query Parameters
Section titled “Query Parameters”The integration it was sent with, when you are not an app (api when left out)
The integration it was sent with, when you are not an app (api when left out)
Responses
Section titled “Responses”object
object
The app (its slug) or the integration that sent it
The app’s name, or the integration
The app that sent it, if an app did
The icon its type gets (link for types without their own)
object
In major units
object
The contacts it is about
The thread it shows on, if any (and if you can see it)
The inbox of the thread it shows on
When the event its current state came from happened
Newest first, up to 100
object
The contact event that carried it
False when it arrived late: older than the record’s state, so it changed nothing
The fields it changed
Example
{ "record": { "source": "acme-crm", "sourceName": "Acme CRM", "type": "invoice", "icon": "invoice", "externalId": "8812", "label": "Invoice INV-8812", "status": "Paid", "tone": "success", "amount": { "value": 289, "currency": "GBP" } }, "history": [ { "eventName": "event.invoice.paid", "changed": [ "status", "tone" ] } ]}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" } ]}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}