Skip to content

Add a location

POST
/v1/locations
curl --request POST \
--url https://api.threadkite.app/v1/locations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "Smith Motors Bradford", "timeZone": "Europe/London", "phone": "0113 496 0000", "website": "example", "address": { "line1": "1 Kirkstall Road", "line2": "example", "city": "Leeds", "region": "West Yorkshire", "postcode": "LS3 1AA", "country": "GB" }, "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" } ] } ] }'
Media typeapplication/json
object
name
required
string
>= 1 characters <= 120 characters

Example

Smith Motors Bradford
timeZone

IANA time zone; defaults to the organisation’s

string

Example

Europe/London
phone

Read in the organisation’s country and stored as E.164

string
nullable <= 30 characters

Example

0113 496 0000
website
string
nullable
address
One of:
object
line1
required
string

Example

1 Kirkstall Road
line2
string
city
required
string

Example

Leeds
region
string

Example

West Yorkshire
postcode
required
string

Example

LS3 1AA
country
required

ISO 3166-1 alpha-2

string

Example

GB
openingHours
object
monday
Array<object>
object
opens
required

Local time, HH:MM (24-hour)

string

Example

09:00
closes
required

Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it

string

Example

18:00
tuesday
Array<object>
object
opens
required

Local time, HH:MM (24-hour)

string

Example

09:00
closes
required

Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it

string

Example

18:00
wednesday
Array<object>
object
opens
required

Local time, HH:MM (24-hour)

string

Example

09:00
closes
required

Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it

string

Example

18:00
thursday
Array<object>
object
opens
required

Local time, HH:MM (24-hour)

string

Example

09:00
closes
required

Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it

string

Example

18:00
friday
Array<object>
object
opens
required

Local time, HH:MM (24-hour)

string

Example

09:00
closes
required

Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it

string

Example

18:00
saturday
Array<object>
object
opens
required

Local time, HH:MM (24-hour)

string

Example

09:00
closes
required

Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it

string

Example

18:00
sunday
Array<object>
object
opens
required

Local time, HH:MM (24-hour)

string

Example

09:00
closes
required

Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it

string

Example

18:00
specialDays
Array<object>
object
date
required

Local date, YYYY-MM-DD

string

Example

2026-12-28
label
string

Example

Bank holiday
periods
required

Empty: closed all day

Array<object>
object
opens
required

Local time, HH:MM (24-hour)

string

Example

09:00
closes
required

Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it

string

Example

18:00
Media typeapplication/json
object
id
required
string format: uuid
name
required
string
address
required
One of:
object
line1
required
string
line2
string
city
required
string
region
string
postcode
required
string
country
required

ISO 3166-1 alpha-2

string
timeZone
required
string
phone
required

E.164

string
nullable
website
required
string
nullable
openingHours
required

Used for response times and the out-of-hours reply

object
monday
Array<object>
object
opens
required

Local time, HH:MM (24-hour)

string
closes
required

Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it

string
tuesday
Array<object>
object
opens
required

Local time, HH:MM (24-hour)

string
closes
required

Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it

string
wednesday
Array<object>
object
opens
required

Local time, HH:MM (24-hour)

string
closes
required

Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it

string
thursday
Array<object>
object
opens
required

Local time, HH:MM (24-hour)

string
closes
required

Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it

string
friday
Array<object>
object
opens
required

Local time, HH:MM (24-hour)

string
closes
required

Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it

string
saturday
Array<object>
object
opens
required

Local time, HH:MM (24-hour)

string
closes
required

Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it

string
sunday
Array<object>
object
opens
required

Local time, HH:MM (24-hour)

string
closes
required

Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it

string
specialDays
required
Array<object>
object
date
required

Local date, YYYY-MM-DD

string
label
string
periods
required

Empty: closed all day

Array<object>
object
opens
required

Local time, HH:MM (24-hour)

string
closes
required

Local time, HH:MM; 24:00 for midnight, or earlier than opens to run past it

string
createdAt
required
string format: date-time

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

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

The organisation is on the Free plan (code upgrade_required)

Media typeapplication/json
object
statusCode
required
number
code
required

Stable machine-readable reason

string
message
required
string
feature
required

The feature that needs Pro

string
nullable
Allowed values: extraSeats connections aiAssistant aiReplies rules fullReports api inboxes bulkMessages videoMessages
upgradePath
required

Where to upgrade or pay, in the web app

string

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)

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
}