Skip to content
Keptslot
Start free

Change the settings

PATCH
/v1/workspace
curl --request PATCH \
--url https://api.keptslot.com/v1/workspace \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "example", "timezone": "example", "currency": "example", "require_booking_verification": true, "sms_enabled": true, "staff_alerts": "example", "staff_reminders_enabled": true, "staff_reminder_offset_minutes": 1, "reminder_offset_minutes": 1, "slot_interval_minutes": 1, "booking_policy": "example", "vertical": "example", "contact_email": "example", "contact_phone": "example", "address": "example" }'

This endpoint changes the settings of the workspace. Send only the fields you want to change. A field you omit keeps its value.

Media type application/json
object
name
string
timezone

An IANA zone name, such as Europe/London.

string
currency
string
require_booking_verification
boolean
sms_enabled
boolean
staff_alerts
string
staff_reminders_enabled
boolean
staff_reminder_offset_minutes
integer
reminder_offset_minutes
integer
slot_interval_minutes
integer
booking_policy
string | null
vertical
string
contact_email
string | null
contact_phone
string | null
address
string | null
Example generated
{
"name": "example",
"timezone": "example",
"currency": "example",
"require_booking_verification": true,
"sms_enabled": true,
"staff_alerts": "example",
"staff_reminders_enabled": true,
"staff_reminder_offset_minutes": 1,
"reminder_offset_minutes": 1,
"slot_interval_minutes": 1,
"booking_policy": "example",
"vertical": "example",
"contact_email": "example",
"contact_phone": "example",
"address": "example"
}

The settings are changed.

Media type application/json
object
slug
required

Read only. It is the workspace address on the booking page.

string
name
required
string
timezone
required

An IANA zone name. Every time the API gives back uses this zone.

string
currency
required
string
require_booking_verification
required

True when a new booking waits on a 6-digit code. Read the status on the create response to decide what happens next. Do not decide it from this field.

boolean
sms_enabled
required
boolean
staff_alerts
required

Who gets the alert when a booking changes.

string
staff_reminders_enabled
required
boolean
staff_reminder_offset_minutes
required

How long before the start time the staff reminder is sent.

integer
reminder_offset_minutes
required

How long before the start time the customer reminder is sent.

integer
slot_interval_minutes
required

The step between the slots that availability offers.

integer
booking_policy

Plain text shown to customers. Render it as text. Do not render it as markup.

string | null
vertical
required

Selects the customer-facing words. It changes copy only. It never changes booking mechanics.

string
contact_email
string | null
contact_phone
string | null
address

Used in the email footer. The booking page does not show it.

string | null
blurb

A short line about the business, under its name on the booking page. At most 200 characters. Send "" to clear it.

string | null
refund_policy

The refund terms, shown where a customer pays. At most 2000 characters. Separate from booking_policy: one governs whether an appointment can be moved, the other governs money.

string | null
terms_url

The business’s own terms, shown alongside ours. Must be http or https – anything else is refused. A bare domain is accepted and stored as https://.

string | null
website_url
string | null
instagram_url

A handle such as @riverwood is accepted and stored as the full profile URL.

string | null
maps_url
string | null
confirmation_note

Shown on the confirmation screen after a booking succeeds. What to bring, where to park, the door code. At most 500 characters.

string | null
notification_note

Stored for the notification emails. Nothing renders it yet. At most 500 characters.

string | null
social_title

At most 70 characters.

string | null
social_description

At most 160 characters.

string | null
allow_staff_choice

Whether customers pick who they see. True by default, so a workspace that never touches it keeps today’s behaviour.

boolean
Example generated
{
"slug": "example",
"name": "example",
"timezone": "example",
"currency": "example",
"require_booking_verification": true,
"sms_enabled": true,
"staff_alerts": "example",
"staff_reminders_enabled": true,
"staff_reminder_offset_minutes": 1,
"reminder_offset_minutes": 1,
"slot_interval_minutes": 1,
"booking_policy": "example",
"vertical": "example",
"contact_email": "example",
"contact_phone": "example",
"address": "example",
"blurb": "example",
"refund_policy": "example",
"terms_url": "example",
"website_url": "example",
"instagram_url": "example",
"maps_url": "example",
"confirmation_note": "example",
"notification_note": "example",
"social_title": "example",
"social_description": "example",
"allow_staff_choice": true
}

The key is missing, malformed or revoked.

Media type application/json
object
error
required
object
type
required

A stable machine-readable code. Match on this.

string
message
required

A sentence for a person. Do not match on this.

string
param

The field that caused the refusal, if one field did.

string
dimension

The plan limit that refused the request. It is present only on a 402, and only for a secret key or an account key. See the errors guide.

string
used

The current count for that dimension. It is present only on a 402, and only for an account key. It is absent when the refusal has no count to report. Absent and zero are different answers.

integer format: int64
limit

The cap for that dimension. It is present only on a 402, and only for an account key. A cap of zero is a real value.

integer format: int64
Example generated
{
"error": {
"type": "example",
"message": "example",
"param": "example",
"dimension": "example",
"used": 1,
"limit": 1
}
}

The request body or the query is not valid.

Media type application/json
object
error
required
object
type
required

A stable machine-readable code. Match on this.

string
message
required

A sentence for a person. Do not match on this.

string
param

The field that caused the refusal, if one field did.

string
dimension

The plan limit that refused the request. It is present only on a 402, and only for a secret key or an account key. See the errors guide.

string
used

The current count for that dimension. It is present only on a 402, and only for an account key. It is absent when the refusal has no count to report. Absent and zero are different answers.

integer format: int64
limit

The cap for that dimension. It is present only on a 402, and only for an account key. A cap of zero is a real value.

integer format: int64
Example generated
{
"error": {
"type": "example",
"message": "example",
"param": "example",
"dimension": "example",
"used": 1,
"limit": 1
}
}