Skip to main content

Setster API Models - Structured Data Documentation (2.0)

Dive into Setster's API Models documentation. Understand the structured data format, relationships, and entities used in Setster's API for seamless application development.

Account

Account Info

company_name
required
string
Example: "Apple"

The name of the company

nick_name
required
string
Example: "apple"

The unique nickname of the account. Also create's the account's profile page https://nickname.setster.com. May contain only letters and digits

company_id
required
integer <int64>
Example: "2345"

The unique ID of the account

email
required
string <email>

Contact of the main and default employee. Together with the password is used as user name

password
required
string <password>
Example: "i39j02ksnfj40f"

Used along with the account email

website
string <uri>
Example: "www.example.com"

The company's website URL.

contact
string <email>

The company's main email address.

facebook
string <uri>
Example: "www.facebook.com/company"

The Facebook company page URL.

linkedin
string <uri>
Example: "www.linkedin.com/company"

The Linkedin company page URL.

twitter
string <uri>
Example: "www.twitter.com/company"

The Twitter account URL of the company.

skype_name
string
Example: "nickname"

The Skype nickname of the company Skype account.

yelp
string
Example: "www.yelp.com/company"

The company's Yelp page URL

pinterest
string
Example: "www.pinterest.com/company"

The company's Pinterest page URL

vimeo
string
Example: "www.vimeo.com/company"

The company's Vimeo page URL

youtube
string
Example: "www.youtube.com/company"

The company's YouTube channel URL

phone
string
Example: ""

The main business phone number

timezone_id
integer
Default: 553

The account's set timezone ID

fax
string
Example: "(310) 123-4568"

The main business fax number

industry
string
logo
string
paragraph
string
Example: "We are a...."

The company's about us section. Optional content visitble to users during booking an appointment

first_name
string
Example: ""

Personal info for the main/default employee

last_name
string
Example: ""

Personal info for the main/default employee

id
integer
created_by
integer <int64>
Example: "1242"

The ID of the company owner/main employee

address_city
string
Example: "Los Angeles"

The city in the account address

address_country
string
Example: "USA"

The country of the account address.

address_state
string
Example: "California"

The state of the account address

address_street1
string
Example: "123 Street"

The street address of the account address

address_street2
string
Example: "Unit B"

The street address line 2 of the account address

addresszip
string
Example: "90210"

The zip code of the account address.

send_to_contact
integer
Default: 0
show_map_profile
boolean
Default: false

Shows or hides the company map view on the profile page

splash
string
map_url
string <uri>
Example: "https://goo.gl/maps/qpuAvyPizfgP5FbN7"

The Google map URL for the account address.

return_url
string
Example: "https://www.google.com/"

The URL a user will be directed to after booking an appointment

policies
string
Example: "We accept bookings for specific services only and you're..."

The company's booking policy. Optional content visitble to users during booking an appointment

account_type
integer <int32>
Enum: 0 1 2 4 5 6
Example: "0"

The subscription plan of the account.

date_created
string <date-time>

The date the account was created

no_views
string

The number of times the account's booking widget was loaded/viewd.

notify_app_unconfirmed
boolean
Default: true

Notify the staff/employees of new unconfirmed appointments

notify_app_unpaid
boolean
Default: true

Notify the staff/employees of new unpaid appointments

lang
string
Default: "en"
Enum: "en" "fr" "es"

The language of the account

enable_locations
boolean
Default: true

An account has multiple location creation previlidges

capture_leads
string
settings
string <json>
status
integer
Default: 0
directory
integer
Default: 0
max_providers
integer <int32>
Default: 0

The number of licenses the account is susubscribed/paying for.

business_hours_label
string

The label for the company's main business hours.

policies_label
string

The label for the company's booking policy.

paragraph_label
string

The label for the company's account section.

timezone
integer <int32>
Default: 0
Example: "-480"

The GMT offset in minutes of the account's timezone

object

Microsoft Exchange calendar sync settings.

{
  • "company_name": "Apple",
  • "nick_name": "apple",
  • "website": "www.example.com",
  • "contact": "user@example.com",
  • "facebook": "www.facebook.com/company",
  • "linkedin": "www.linkedin.com/company",
  • "twitter": "www.twitter.com/company",
  • "skype_name": "nickname",
  • "yelp": "www.yelp.com/company",
  • "pinterest": "www.pinterest.com/company",
  • "vimeo": "www.vimeo.com/company",
  • "youtube": "www.youtube.com/company",
  • "phone": "",
  • "timezone_id": 553,
  • "fax": "(310) 123-4568",
  • "industry": "string",
  • "logo": "string",
  • "paragraph": "We are a....",
  • "email": "user@example.com",
  • "password": "i39j02ksnfj40f",
  • "first_name": "",
  • "last_name": "",
  • "id": 0,
  • "company_id": 2345,
  • "created_by": 1242,
  • "address_city": "Los Angeles",
  • "address_country": "USA",
  • "address_state": "California",
  • "address_street1": "123 Street",
  • "address_street2": "Unit B",
  • "addresszip": "90210",
  • "send_to_contact": 0,
  • "show_map_profile": false,
  • "splash": "string",
  • "return_url": "https://www.google.com/",
  • "policies": "We accept bookings for specific services only and you're...",
  • "account_type": "0",
  • "date_created": "2019-08-24T14:15:22Z",
  • "no_views": "string",
  • "notify_app_unconfirmed": true,
  • "notify_app_unpaid": true,
  • "lang": "en",
  • "enable_locations": true,
  • "capture_leads": "string",
  • "settings": "string",
  • "status": 0,
  • "directory": 0,
  • "max_providers": 0,
  • "business_hours_label": "string",
  • "policies_label": "string",
  • "paragraph_label": "string",
  • "timezone": -480,
  • "exchange_sync_settings": {
    • "host": "string",
    • "account": "string",
    • "password": "pa$$word",
    • "sync_period": 0
    }
}

Business Info

company_name
required
string
Example: "Apple"

The name of the company

nick_name
required
string
Example: "apple"

The unique nickname of the account. Also create's the account's profile page https://nickname.setster.com. May contain only letters and digits

website
string <uri>
Example: "www.example.com"

The company's website URL.

contact
string <email>

The company's main email address.

facebook
string <uri>
Example: "www.facebook.com/company"

The Facebook company page URL.

linkedin
string <uri>
Example: "www.linkedin.com/company"

The Linkedin company page URL.

twitter
string <uri>
Example: "www.twitter.com/company"

The Twitter account URL of the company.

skype_name
string
Example: "nickname"

The Skype nickname of the company Skype account.

yelp
string
Example: "www.yelp.com/company"

The company's Yelp page URL

pinterest
string
Example: "www.pinterest.com/company"

The company's Pinterest page URL

vimeo
string
Example: "www.vimeo.com/company"

The company's Vimeo page URL

youtube
string
Example: "www.youtube.com/company"

The company's YouTube channel URL

phone
string
Example: "(310) 123-4567"

The main business phone number

timezone_id
integer
Default: 553

The account's set timezone ID

fax
string
Example: "(310) 123-4568"

The main business fax number

industry
string
logo
string
paragraph
string
Example: "We are a...."

The company's about us section. Optional content visitble to users during booking an appointment

{
  • "company_name": "Apple",
  • "nick_name": "apple",
  • "website": "www.example.com",
  • "contact": "user@example.com",
  • "facebook": "www.facebook.com/company",
  • "linkedin": "www.linkedin.com/company",
  • "twitter": "www.twitter.com/company",
  • "skype_name": "nickname",
  • "yelp": "www.yelp.com/company",
  • "pinterest": "www.pinterest.com/company",
  • "vimeo": "www.vimeo.com/company",
  • "youtube": "www.youtube.com/company",
  • "phone": "(310) 123-4567",
  • "timezone_id": 553,
  • "fax": "(310) 123-4568",
  • "industry": "string",
  • "logo": "string",
  • "paragraph": "We are a...."
}

Options

company_id
integer
Example: "654"
currency
string
Example: "USD"
hide_contact
boolean
Default: 0
hide_about
boolean
Default: 0
show_email
boolean
Default: 0
show_provider_image
boolean
Default: 0
providers_tab_option
string
Example: "2"
select_single_service
boolean
Default: 1
default_calendar_view
string
Default: "d"
Enum: "d" "w"
month_view_availability
integer
Example: "1"
email_confirmation
integer
Example: "1"
book_another_appointment
boolean
Default: 0
display_google_map_on_locations
boolean
Default: 0
hide_timezone_alert
boolean
Example: "0"
select_single_location
boolean
Default: 1
show_in_host_or_client_time
boolean
Default: 0
email_timezone_alert
boolean
Default: 0
widget_customBookingFields
string
Example: "a:4:{s:13:\"provider_date\";i:1;s:13:\"provider_time\";i:1;s:8:\"location\";i:1;s:7:\"service\";i:1;}"
enable_mobile_widget
boolean
Default: 1
any_available_provider
string
Example: "1"
show_staff_photo
boolean
Example: "1"
auto_confirm
boolean
Example: "0"
prior_notice
integer
Example: "0"
prior_cancel_appointment
integer
Example: "0"
prior_reschedule_appointment
integer
Example: "0"
duration_padding
integer
Example: "30"
start_step
integer
Example: "0"
after_notice
integer
Example: "0"
allow_cash_payment
boolean
Example: "0"
waiting_list
boolean
Example: "0"
layout_params
string
Example: "a:5:{s:14:\"overlay_option\";s:7:\"overlay\";s:8:\"position\";s:5:\"right\";s:11:\"button_name\";s:11:\"Appointment\";s:12:\"button_color\";s:6:\"ff0000\";s:13:\"locations_map\";i:0;}"
style_params
string
Default: ""
new_style
integer
Example: "1"
new_mobile_style
integer
Example: "1"
widget_send_client_emails
boolean
Example: "1"
widget_send_provider_emails
boolean
Example: "1"
send_reminder
boolean
Example: "24"
notify_app_unconfirmed
boolean
Example: "1"
send_to_contact
boolean
Example: "0"
notify_app_unpaid
boolean
Example: "1"
lang
string
Default: "en"
timezone_id
integer
Example: "553"
currenciesStripe
Array of strings
Example: "AED,AFN,ALL"
currenciesPaypal
Array of strings
Example: "AED,AFN,ALL"
stripe_client_id
string
Example: "ca_3zSQAHuNlO64Jsfg45Tk8vdfg2A"
{
  • "company_id": 654,
  • "currency": "USD",
  • "hide_contact": 0,
  • "hide_about": 0,
  • "show_email": 0,
  • "show_provider_image": 0,
  • "providers_tab_option": "2",
  • "select_single_service": 1,
  • "default_calendar_view": "d",
  • "month_view_availability": 1,
  • "email_confirmation": 1,
  • "book_another_appointment": 0,
  • "display_google_map_on_locations": 0,
  • "hide_timezone_alert": 0,
  • "select_single_location": 1,
  • "show_in_host_or_client_time": 0,
  • "email_timezone_alert": 0,
  • "widget_customBookingFields": "a:4:{s:13:\"provider_date\";i:1;s:13:\"provider_time\";i:1;s:8:\"location\";i:1;s:7:\"service\";i:1;}",
  • "enable_mobile_widget": 1,
  • "any_available_provider": "1",
  • "show_staff_photo": 1,
  • "auto_confirm": 0,
  • "prior_notice": 0,
  • "prior_cancel_appointment": 0,
  • "prior_reschedule_appointment": 0,
  • "duration_padding": 30,
  • "start_step": 0,
  • "after_notice": 0,
  • "allow_cash_payment": 0,
  • "waiting_list": 0,
  • "layout_params": "a:5:{s:14:\"overlay_option\";s:7:\"overlay\";s:8:\"position\";s:5:\"right\";s:11:\"button_name\";s:11:\"Appointment\";s:12:\"button_color\";s:6:\"ff0000\";s:13:\"locations_map\";i:0;}",
  • "style_params": "",
  • "new_style": 1,
  • "new_mobile_style": 1,
  • "widget_send_client_emails": 1,
  • "widget_send_provider_emails": 1,
  • "send_reminder": 24,
  • "notify_app_unconfirmed": 1,
  • "send_to_contact": 0,
  • "notify_app_unpaid": 1,
  • "lang": "en",
  • "timezone_id": 553,
  • "currenciesStripe": [
    • "AED",
    • "AFN",
    • "ALL"
    ],
  • "currenciesPaypal": [
    • "AED",
    • "AFN",
    • "ALL"
    ],
  • "stripe_client_id": "ca_3zSQAHuNlO64Jsfg45Tk8vdfg2A"
}

Personal Info

email
string <email>

Contact of the main and default employee. Together with the password is used as user name

password
string <password>
Example: "i39j02ksnfj40f"

Used along with the account email

first_name
string
Example: ""

Personal info for the main/default employee

last_name
string
Example: ""

Personal info for the main/default employee

phone
string
Example: ""

Business phone

{
  • "email": "user@example.com",
  • "password": "i39j02ksnfj40f",
  • "first_name": "",
  • "last_name": "",
  • "phone": ""
}

Appointment

company_id
required
integer <int64>
Example: "3123"

The ID of the company that the appointment belongs to. Field is writable when entity is owned by child account

client_email
required
string <email>

The email of the client that made the appointment

client_name
required
string
Example: "Test Client"

The client name

service_id
required
integer <int64>
Example: "453"

The ID of the service that the appointment is made for

start_date
required
string
Example: "2019-09-01 12:00"

The date and time when the appointment is scheduled to start. The time is local to the company timezone or the location timezone (if the location is in a different timezone). The format of the date is yyyy-mm-dd hh:mm:ss

id
integer <int64>
Example: "2342"

Unique ID of the appointment

client_id
integer <int64>
Example: "23113"

The ID of the client that made the appointment

client_phone
string
Example: "12345678"

The client phone number

client_address
string

The client address

employee_id
integer <int64>
Example: "12412"

The ID of the employee (provider) that the appointment is made for

provider_email
string <email>
Example: "some-provider@setster.com"

The email of the provider/employee that the appointment was made for

location_id
integer <int64>
Example: "54232"

The ID of the location where the appointment will take place at

end_date
string
Example: "2019-09-01 13:00"

The date and time when the appointment is scheduled to end. The time is local to the company timezone or the location timezone (if the location is in a different timezone). The format of the date is yyyy-mm-dd hh:mm:ss

length
integer
Example: "1800000"

The duration of the appointment (in milliseconds). Example: 30 minutes = 1800000 milliseconds.

duration_padding
integer
Default: 0

The appointment time padding (in seconds) - the number of seconds, before and after an appointment, that cannon be used for another appointment

note
string or null

Custom client message

status
integer
Enum: 0 1 2 3 4 6 8 9 10 11 12 13

Appointment status. Possible values:

  • 0 - waiting email confirmation from the client
  • 1 - email confirmed but not validated by the admin/provider
  • 2 - email confirmed and validated or paid
  • 3 - declined or canceled
  • 4 - busy time imported from external sources (e.g. google)
  • 6 - busy time imported from Zapier
  • 8 - completed
  • 9 - no show (the scheduled event did not take place)
  • 10 - in progress
  • 11 - checked in
  • 12 - just arrived
  • 13 - delayed
type
string

The name of the service with ID service_id

last_updated
string <date-time>
Example: "2024-03-15 16:00:50"

The date and time when the latest change was made to the appointment

created_at
string <date-time>
Example: "2024-03-15 16:00:50"
subservices
string

IDs of sub services that were selected for the appointment separated by comma

paid
boolean
Default: false

Whether the appointment has been paid or not, if the service requires a payment.

price
integer
Default: 0
ews_id
string
Deprecated
Default: ""
object
Deprecated

The values of the booking form fields filled by the client.

Custom fields are tied to your Setster Booking Form. New custom data can be added by creating a new field in the Setster dashboard under Booking Form.

object

Replaces the deprecated custom_fields property.

Custom data is tied to your Setster Booking Form. New custom data can be added by creating a new field in the Setster dashboard under Booking Form.

Expects an object containing key values pairs where the key matches one of your booking form field keys and the value is any custom data value.

timezone_short
string
Example: "GMT -05:00"

The time zone short name (e.g. PST or GMT+4)

timezone_offset_seconds
integer
Example: "-18000"

The time zone offset in seconds

timezone_id
integer <int32>
Example: "553"

The ID of the time zone in our database

{
  • "id": 2342,
  • "client_id": 23113,
  • "company_id": 3123,
  • "client_email": "user@example.com",
  • "client_name": "Test Client",
  • "client_phone": "12345678",
  • "client_address": "string",
  • "employee_id": 12412,
  • "provider_email": "some-provider@setster.com",
  • "location_id": 54232,
  • "service_id": 453,
  • "start_date": "2019-09-01 12:00",
  • "end_date": "2019-09-01 13:00",
  • "length": 1800000,
  • "duration_padding": 0,
  • "note": "string",
  • "status": 0,
  • "type": "string",
  • "last_updated": "2024-03-15 16:00:50",
  • "created_at": "2024-03-15 16:00:50",
  • "subservices": "string",
  • "paid": false,
  • "price": 0,
  • "ews_id": "",
  • "custom_fields": {
    • "field index1": [
      ],
    • "field index2": [
      ]
    },
  • "custom_data": {
    • "key1": "Lorem Ipsum",
    • "key2": "Lorem Ipsum"
    },
  • "timezone_short": "GMT -05:00",
  • "timezone_offset_seconds": -18000,
  • "timezone_id": 553
}

Availability

interval
integer <int32>
Example: "60"

The length (in minutes) of the appointment

boxInterval
integer <int32>
Example: "5"

Relevant only if return=boxes and represents the number of minutes in one box

padding
integer <int32>
Example: "0"

Relevant only if return=boxes and represents the number of minutes between two adjacent appointments

day
integer <int32>
Example: "15"

Selected day

month
integer <int32>
Example: "8"

Selected month

year
integer <int32>
Example: "2012"

Selected year

times
Array of strings
Example: "09:00:00"

Hash table of the start times of the available appointment slots, grouped by date

{
  • "interval": 60,
  • "boxInterval": 5,
  • "padding": 0,
  • "day": 15,
  • "month": 8,
  • "year": 2012,
  • "times": [
    • "09:00:00"
    ]
}

Client

company_id
required
integer <int64>
Example: "24232"

The ID of the company that the client belongs to

employee_id
required
integer <int64>
Example: "5323"

The ID of the employee that the client is associated with

email
required
string <email>

The email of the client

name
required
string
Example: "Test Client"

The full name of the client

client_id
integer <int64>
Example: "3213"

Unique ID of the client

phone
string
Example: "3445323523"

Client's phone number

last_app_date
string <date-time>

The date and time of the last appointment made by the client

date_created
string <date-time>

The date and time when the record was created.

notes
string
preferences
string
address
string
Example: "City country"

Client's address

address2
string
city
string
state
string
zip
string
country
string
gender
string or null
Enum: "m" "f"

The gender of the client

birthday
string <date>

Only the day and month are relevant

cient_since
string <date>

The date the client first scheduled an appointment or was created. This field is editable.

accept_emails
boolean

Whether or not the client accepts email marketing

photo
string

The base name of the photo file. If not null or empty, it can be used to get the client photo:

{
  • "client_id": 3213,
  • "company_id": 24232,
  • "employee_id": 5323,
  • "email": "user@example.com",
  • "name": "Test Client",
  • "phone": "3445323523",
  • "last_app_date": "2019-08-24T14:15:22Z",
  • "date_created": "2019-08-24T14:15:22Z",
  • "notes": "string",
  • "preferences": "string",
  • "address": "City country",
  • "address2": "string",
  • "city": "string",
  • "state": "string",
  • "zip": "string",
  • "country": "string",
  • "gender": "m",
  • "birthday": "2019-08-24",
  • "cient_since": "2019-08-24",
  • "accept_emails": true,
  • "photo": "string"
}

Custom Fields

company_id
required
integer <int64>

The ID of the company that the custom field belongs to

label
required
string

The label of the custom field

length
required
integer

The max string length of the custom field

type
required
integer
Default: 0
Enum: 0 1 2 3 4 5 6

Type of the custom field. Possible values:

  • 0 - text
  • 1 - multiline
  • 2 - phone
  • 3 - email
  • 4 - hidden
  • 5 - address
  • 6 - title
required
required
boolean
Default: false

If the custom field is mandatory in the booking form

ord
required
integer

The order in layout

status
required
boolean

The enabled/disabled status.

visibility
required
integer
Enum: 1 2 3

Places where the custom field is visible. Possible values:

  • 1 - Appointment submit form
  • 2 - Contact form
  • 3 - Both forms
readonly
required
boolean
Default: false

The readonly property of the custom field form.

hint
required
string

The hint property of the custom field form

id
integer <int64>

Unique ID of the custom field

removable
boolean
Default: false
readonly_type
integer
{
  • "id": 0,
  • "company_id": 0,
  • "label": "string",
  • "length": 0,
  • "type": 0,
  • "required": false,
  • "ord": 0,
  • "status": true,
  • "visibility": 1,
  • "readonly": false,
  • "removable": false,
  • "readonly_type": 0,
  • "hint": "string"
}

Employee

company_id
required
integer <int64>
Example: "3214"

The ID of the company of the employee. Field is writable when entity is owned by child account.

email
required
string <email>

Unique Email address of the employee

first_name
required
string
Example: "John"

First Name

last_name
required
string
Example: "Doe"

Last Name

id
integer <int64>
Example: "1234"

Unique ID of the employee

job
string
Example: "Accountant"

Job name

bio
string

Bio

phone
string
Example: ""

Phone number

photo_url
string <uri>
Example: ""

Photo URL

public_email
boolean
Default: false

Whether or not the employee's email will be displayed on the widget

public_phone
boolean
Default: false
status
boolean
Default: false

Employee status: active / inactive

username
string
Example: ""

Automatically generated based on the first and last names

nickname
string
Example: ""

Unique nickname per company. May contain only letters, digits, the dot character and the underline character.

linkedin
string <uri>
Default: ""

LinkedIn URL

yelp
string <uri>
pinterest
string <uri>
vimeo
string <uri>
youtube
string <uri>
twitter
string <uri>
Example: ""

Twitter URL

facebook
string <uri>
Example: ""

Facebook URL

receivesms
boolean
Default: false

If true (1) then the employee will receive an SMS message informing them about new appointments

sms_email
string <email>
Example: "number@txt.att.net"

The SMS service to be used in the following format: number@sms-service.com. Note: the number keyword will be replaced with the employee's phone number before the SMS is sent.

intuit_user_id
string
ipp_mode
integer
intuit_auth_id
string
intuit_db_id
string
intuit_realm_id
string
intuit_ticket_id
string
newsletter
integer
is_owner
boolean
Default: false

Whether the employee is the owner of the company (the employee created at signup). By updating the value for a created employee, areas from permissions can be managed for (all - 1/own - 0) account(s)

ics_service
integer <int32>
Default: 0
Enum: 0 1 2 3

Import calendar source type. Possible values: 0 - Not set 1 - Google 2 - Outlook or other public URL calendar source (ics) 3 - Exchange

ics_export_service
integer <int32>
Default: 0
Enum: 0 1 2 3 4 5 6

Export calendar source type. Possible values: 0 - Not set 1 - Outlook 2 - Ical 3 - Google 4 - Yahoo 5 - MSN 6 - ICalDav

ics_url
string <uri>

iCalendar public url used as import source.

ics_export_hash
string
google_export_canceled
integer
Default: 0
google_export_add_pt
integer
Default: 0
ord
integer
Default: 0
ics_export_url
string

iCalendar public url used as export source.

permissions
string
Example: "locations, providers"

Lable(s) for different application sections. In order to set permission an employee must have a user(can_login - 1). Possible values: locations, providers, services, availability, appointments, get_widget, promote, clients, overview, calendar, settings, profile, account

can_login
boolean
Example: "1"

Whether the employee can login to his account or not. An employee that cannot login will not have access to the API.

{
  • "id": 1234,
  • "company_id": 3214,
  • "email": "user@example.com",
  • "first_name": "John",
  • "last_name": "Doe",
  • "job": "Accountant",
  • "bio": "string",
  • "phone": "",
  • "photo_url": "",
  • "public_email": false,
  • "public_phone": false,
  • "status": false,
  • "username": "",
  • "nickname": "",
  • "linkedin": "",
  • "pinterest": "http://example.com",
  • "vimeo": "http://example.com",
  • "youtube": "http://example.com",
  • "twitter": "",
  • "facebook": "",
  • "receivesms": false,
  • "sms_email": "number@txt.att.net",
  • "intuit_user_id": "string",
  • "ipp_mode": 0,
  • "intuit_auth_id": "string",
  • "intuit_db_id": "string",
  • "intuit_realm_id": "string",
  • "intuit_ticket_id": "string",
  • "newsletter": 0,
  • "is_owner": false,
  • "ics_service": 0,
  • "ics_export_service": 0,
  • "ics_url": "http://example.com",
  • "ics_export_hash": "string",
  • "google_export_canceled": 0,
  • "google_export_add_pt": 0,
  • "ord": 0,
  • "ics_export_url": "string",
  • "permissions": "locations, providers",
  • "can_login": 1
}

Availability

repeat
required
integer
Enum: 1 2
Example: "1"

1 - weekly/ 2 - Date interval

type
required
boolean
Example: "0"

0 - Available/ 1 - Out of Office

start_date
required
string <date>
Example: "12/1/2015"
end_date
required
string <date>
Example: "12/31/2015"
days
required
object
Example: "[object Object]"
location_id
integer
Example: "2144"

optional for single location enabled

{
  • "repeat": 1,
  • "type": 0,
  • "start_date": "12/1/2015",
  • "end_date": "12/31/2015",
  • "location_id": 2144,
  • "days": {
    • "mo": {
      },
    • "tu": {
      }
    }
}

Location

company_id
required
integer <int64>
Example: "432"

The ID of the company that owns the location. Field is writable when entity is owned by child accounts.

name
required
string
Example: "Spa center"

Name of the location

id
integer <int64>
Example: "12345"

Unique ID of the location

description
string
Default: ""

Description of the location

is_main
boolean
Default: false

Whether this is the main location for the company (the location created on registration)

virtual
boolean
Default: false
street1
string
Example: "13 Beverly"

Address line 1

street2
string
Example: ""

Address line 2

city
string
Example: "New York"

City

state
string
Example: "NY"

State

zip
string
Example: "10501"

Zip

country
string
Example: ""

Country

photo
string <uri>
Example: ""

Photo URL

phone
string
Default: ""

Phone number

email
string <email>

Email address

website
string <uri>
Example: ""

Website URL

tags
string
Default: ""
paypal_email
string <email>

The PayPal account used for payments for the appointments that are booked on this location. If empty, the company account will be used.

timezone_id
string
Example: "553"

The ID of the time zone

lat
number <float>

The latitude of the location automatically calculated based on its address

lng
number <float>

The longitude of the location automatically calculated based on its address

ord
integer
Default: 0
{
  • "id": 12345,
  • "name": "Spa center",
  • "description": "",
  • "company_id": 432,
  • "is_main": false,
  • "virtual": false,
  • "street1": "13 Beverly",
  • "street2": "",
  • "city": "New York",
  • "state": "NY",
  • "zip": "10501",
  • "country": "",
  • "photo": "",
  • "phone": "",
  • "email": "user@example.com",
  • "website": "",
  • "tags": "",
  • "paypal_email": "user@example.com",
  • "timezone_id": 553,
  • "lat": 0.1,
  • "lng": 0.1,
  • "ord": 0
}

Service

company_id
required
integer <int64>
Example: "5678"

The ID of the company that the service belongs to. Field is writable when entity is owned by child account

name
required
string
Example: "Default service"

The name of the service

duration
required
integer <int32> multiple of 15
Default: 60

The duration of the service in minutes

id
integer <int64>
Example: "1234"

Unique ID of the service

description
string
Example: "This service should be used in testing only"

The description of the service

auto_confirm
boolean
Default: false

If true (1) then the appointments made for the service will be automatically confirmed. If false (0) then the appointments must be confirmed by the provider.

is_subservice
boolean
Default: false

If true (1) the service will be an additional service, otherwise it will be a base service.

duration_padding
integer <int32> multiple of 5
Default: 0

The minimum number of minutes between two adjacent appointments

max_clients
integer
Default: 0
prior_notice
integer
Default: 0

The minimum number of hours the appointment has to be scheduled before the scheduled time

after_notice
integer
Default: 0

The maximum number of days the appointment has to be scheduled after the scheduled time

cancel_appointment
integer
Default: 0

The minimum number of hours before the appointment until the client can cancel the appointment. If 0 the client cannot cancel the appointment.

reschedule_appointment
integer
Default: 0

The minimum number of hours before the appointment until the client can reschedule the appointment. If 0, the client cannot reschedule.

send_reminder
integer
Default: 0

The minimum number of hours before the appointment until the client can reschedule the appointment. If 0, the client cannot reschedule.

start_step
integer multiple of 5
Default: 0

Number of minutes. If this field has a value different than 0, then the clients can choose any start time (in increments equal to the value of the field) for their appointment in the availability zone. If the value of the field is 0, then the clients can select only predefined time slots for the appointments.

set_schedule
boolean
Default: false

If true the service can only be performed on the schedule times. If true, availability can be added to the service through the schedule field

Array of objects

The service can only be performed on the following times. The set_schedule needs to be set to true for this field to be considered.

price
number <float>
Default: 0

The price of the service

payment_min_amount
number <double>
Default: 0

The minimum amount required for the payment to be valid

allow_cash_payment
boolean
Default: false

Whether or not to allow the client to skip the online payment and pay with cash

group_session
integer
Default: 0

The number of appointments that can be scheduled in the same time slot.

waiting_list
integer
Default: 0
client_instructions
string

The message sent to the client in the confirmation email (after the client verifies his/her email address)

widget_message
string

The message displayed on the widget after the client books an appointments

password
string
ord
integer

The order number of the service

created_at
string <date-time>

The time when the service was created

active_from
string or null <date>

The date when the service starts to show up on the widget. If this field is null, then there will be no limit on the start date.

To set the field to null, set it to the empty string when updating the service.

active_until
string or null <date>

The date when the service stops being displayed on the widget. If this field is null, then there will be no limit on the end date.

To set the field to null, set it to the empty string when updating the service.

active_interval_status
boolean
Default: true
status
boolean
Default: true

If 0 the service will not appear on the widget.

active_rules
integer
Default: 1
photo
string
{
  • "id": 1234,
  • "name": "Default service",
  • "company_id": 5678,
  • "duration": 60,
  • "description": "This service should be used in testing only",
  • "auto_confirm": false,
  • "is_subservice": false,
  • "duration_padding": 0,
  • "max_clients": 0,
  • "prior_notice": 0,
  • "after_notice": 0,
  • "cancel_appointment": 0,
  • "reschedule_appointment": 0,
  • "send_reminder": 0,
  • "start_step": 0,
  • "set_schedule": false,
  • "schedule": [
    • {
      }
    ],
  • "price": 0,
  • "payment_min_amount": 0,
  • "allow_cash_payment": false,
  • "group_session": 0,
  • "waiting_list": 0,
  • "client_instructions": "string",
  • "widget_message": "string",
  • "password": "string",
  • "ord": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "active_from": "2019-08-24",
  • "active_until": "2019-08-24",
  • "active_interval_status": true,
  • "status": true,
  • "active_rules": 1,
  • "photo": "string"
}

Schedule

repeat
integer
Enum: 0 1 2
Example: "1"

0 - one-time event / 1 - weekly / 2 - monthly

start_date
string <date>
Example: "01/06/2019"

a date string with the format day/month/year

object
Example: "[object Object]"

the start hour in the day

end_date
string <date>
Example: "01/12/2019"

a date string with the format day/month/year. Used only if repeat = 1 or repeat = 2

object
Example: "[object Object]"

the end hour in the day

object
Example: "[object Object]"

A list of day numbers for the days when the service is available, of the form: {"index1": 1,"index2": 1,...}. Ignored when repeat = 0. If repeat = 1, index1, index2,... represents the day number in the week. If repeat = 2, it represents the day number in the month.

{
  • "repeat": 1,
  • "start_date": "01/06/2019",
  • "start_time": {
    • "hour": 9,
    • "min": 0,
    • "am": "am"
    },
  • "end_date": "01/12/2019",
  • "end_time": {
    • "hour": 5,
    • "min": 0,
    • "am": "pm"
    },
  • "days": {
    • "2": 1,
    • "3": 1,
    • "4": 1,
    • "5": 1,
    • "6": 1
    }
}

Time Zones

gmt
integer <int32>
Example: "-240"

Offset value in seconds

caption
string
Example: "GMT -04:00 US/Canada/Eastern, Colombia, Peru (EDT)"

Description

dbName
string
Example: "US/Eastern"

Mysql standard name

short
string
Example: "GMT -04:00"

Short description

friendly
string
Example: "GMT-04:00"

Short/friendly description

{
  • "gmt": -240,
  • "caption": "GMT -04:00 US/Canada/Eastern, Colombia, Peru (EDT)",
  • "dbName": "US/Eastern",
  • "short": "GMT -04:00",
  • "friendly": "GMT-04:00"
}

Time

hour
required
integer
Example: "9"
min
required
integer
Example: "0"
am
required
string
Enum: "am" "pm"
Example: "am"
{
  • "hour": 9,
  • "min": 0,
  • "am": "am"
}

Webhooks

Write

company_id
required
integer <int64>
Example: "24232"

The ID of the company

target_url
required
string <uri>
Default: ""
Array of strings or objects
Example: "appointment.created,[object Object]"

The list of events. The currently supported events are:

  1. appointment.created
  2. appointment.updated
  3. appointment.deleted
  4. appointment.rescheduled
  5. appointment.reminder
  6. appointment.canceled
  7. *

The "*" event means that you will subscribe to all currently supported events as well as future added events.

active
integer
Default: 1
Enum: 0 1
{
  • "company_id": 24232,
  • "target_url": "",
  • "events": [
    • "appointment.created",
    • {
      }
    ],
  • "active": 0
}

Read

company_id
required
integer <int64>
Example: "24232"

The ID of the company

target_url
required
string <uri>
Default: ""
id
integer <int64>
Example: "13425"

Unique ID of the Webhook subscriber

Array of objects

The list of events

active
integer
Default: 1
Enum: 0 1
verification_key
string
created_at
string <date-time>
updated_at
string <date-time>
{
  • "id": 13425,
  • "company_id": 24232,
  • "target_url": "",
  • "events": [
    • {
      }
    ],
  • "active": 0,
  • "verification_key": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Event

id
integer <int64>
Example: "13425"

Unique ID of the Webhook event

event
string
Enum: "appointment.created" "appointment.updated" "appointment.deleted" "appointment.rescheduled" "appointment.reminder" "appointment.canceled" "*"
Example: "appointment.created"
active
integer
Default: 1
Enum: 0 1
created_at
string <date-time>
{
  • "id": 13425,
  • "event": "appointment.created",
  • "active": 0,
  • "created_at": "2019-08-24T14:15:22Z"
}