The organisation's locations
const url = 'https://api.threadkite.app/v1/locations';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/locations \ --header 'Authorization: Bearer <token>'Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”object
object
ISO 3166-1 alpha-2
E.164
Used for response times and the out-of-hours reply
object
object
Local time, HH:MM (24-hour)
Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it
object
Local time, HH:MM (24-hour)
Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it
object
Local time, HH:MM (24-hour)
Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it
object
Local time, HH:MM (24-hour)
Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it
object
Local time, HH:MM (24-hour)
Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it
object
Local time, HH:MM (24-hour)
Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it
object
Local time, HH:MM (24-hour)
Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it
object
Local date, YYYY-MM-DD
Empty: closed all day
object
Local time, HH:MM (24-hour)
Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it
Example
[ { "name": "Smith Motors Leeds", "address": { "line1": "1 Kirkstall Road", "city": "Leeds", "region": "West Yorkshire", "postcode": "LS3 1AA", "country": "GB" }, "timeZone": "Europe/London", "phone": "+441130000000", "website": "https://smithmotors.co.uk", "openingHours": { "monday": [ { "opens": "09:00", "closes": "18:00" } ], "tuesday": [ { "opens": "09:00", "closes": "18:00" } ], "wednesday": [ { "opens": "09:00", "closes": "18:00" } ], "thursday": [ { "opens": "09:00", "closes": "18:00" } ], "friday": [ { "opens": "09:00", "closes": "18:00" } ], "saturday": [ { "opens": "09:00", "closes": "18:00" } ], "sunday": [ { "opens": "09:00", "closes": "18:00" } ] }, "specialDays": [ { "date": "2026-12-28", "label": "Bank holiday", "periods": [ { "opens": "09:00", "closes": "18:00" } ] } ] }]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}