Requires sub-account privileges. To activate sub-account privileges, please contact the Setster support team.
Setster Scheduling API (2.0)
The Setster API is used to control your account’s data programmatically. The API is organized around REST and standard HTTP verbs. A consistent envelope is used for all responses alongside response codes to indicate the status of the message and any error codes. JSON is returned on all our API responses with a consistent structure for all messages.
This object is the Setster account created within the Setster service. You will need a Setster account to test or perform actions with API, and you can signup here. An account can be a parent account or a child account (sub-account). The account will hold general company information and various account-level settings that play an integral part in the booking logic.
Authenticate
The first step to using the Setster API is to authenticate. Authentication is done using your secret API Key and the account-owner email. In the returned response, the session_token should be used for all consecutive API calls. Please note the session, and the session_token expires periodically, and re-authentication will be required. We recommended you follow standard practices and develop an authentication methodology within your application to keep the connection open.
Session Token Refresh
When the session token expires, a 403 Forbidden response will be received, indicating the need for re-authentication and retrieval of a new token to maintain the connection. Instead of reauthenticating at regular intervals, it is advisable to perform this action as needed.
query Parameters
| email required | string <email> Account owner email address |
| token required | string API key |
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request POST 'https://www.setster.com/api/v2/account/authenticate?session_token=SESSION_TOKEN&email=EMAIL&token=TOKEN'
Response samples
- 200
- 401
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "user": {
- "id": 2343,
- "company_id": 2423,
- "account_type": 4,
- "enable_locations": true,
- "intuit_user_id": null,
- "nick_name": "demo-api",
- "is_owner": true,
- "enabled": true
}, - "session_token": "bl0l9e0g9t1lvul5fg635jre32"
}
}Get Account Summary
Retrieve a specific account's summary.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/account?session_token=SESSION_TOKEN'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "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",
- "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
}
}
}Create a Sub-Account
Create a child account under an existing parent account.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| 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 |
| 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. |
string <uri> Example: "www.facebook.com/company" The Facebook company page URL. | |
string <uri> Example: "www.linkedin.com/company" The Linkedin company page URL. | |
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 |
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 |
| business_hours | string Example: "Monday - Friday 9am - 5pm" The company's main business hours. |
| first_name | string Example: "" Personal info for the main/default employee |
| last_name | string Example: "" Personal info for the main/default 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. |
| 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 |
| 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 |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "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....",
- "business_hours": "Monday - Friday 9am - 5pm",
- "email": "user@example.com",
- "password": "i39j02ksnfj40f",
- "first_name": "",
- "last_name": "",
- "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",
- "policies": "We accept bookings for specific services only and you're...",
- "account_type": "0",
- "notify_app_unconfirmed": true,
- "notify_app_unpaid": true,
- "lang": "en",
- "enable_locations": true,
- "capture_leads": "string",
- "directory": 0,
- "max_providers": 0,
- "business_hours_label": "string",
- "policies_label": "string",
- "paragraph_label": "string",
- "timezone": -480
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "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",
- "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
}
}
}List Sub-Accounts
Get a list of all sub-accounts and their attributes.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/account/companies?session_token=SESSION_TOKEN'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": [
- {
- "company_id": "655",
- "company_name": "Apple Company"
}
]
}Modify Business Info
Modify the attributes of the business profile.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| 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 |
| website | string <uri> Example: "www.example.com" The company's website URL. |
| contact | string <email> The company's main email address. |
string <uri> Example: "www.facebook.com/company" The Facebook company page URL. | |
string <uri> Example: "www.linkedin.com/company" The Linkedin company page URL. | |
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 |
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 |
| business_hours | string Example: "Monday - Friday 9am - 5pm" The company's main business hours. |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "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....",
- "business_hours": "Monday - Friday 9am - 5pm"
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "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",
- "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
}
}
}Get Full Account Data
Retrieve a specific account's complete data.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/account/getAccountInfo?session_token=SESSION_TOKEN'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "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",
- "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
}, - "holidays": [
- "string"
], - "business_hours": "string",
- "company_business_hours": "string"
}
}Modify Booking Options
Modify the set booking options.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| company_id | integer Example: "654" |
object | |
| 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" |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "company_id": 654,
- "email_settings": {
- "widget_send_client_emails": 0,
- "widget_send_provider_emails": 0,
- "send_reminder": 0
}, - "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"
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "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"
}
}Get Booking Options
Get the currently set booking options.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/account/getOptions?session_token=SESSION_TOKEN'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "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"
}
}Modify Personal Info
Modify the attributes of the account owner.
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
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 |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "email": "user@example.com",
- "password": "i39j02ksnfj40f",
- "first_name": "",
- "last_name": "",
- "phone": ""
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "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",
- "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
}
}
}Get Account Owner Info
Get the personal information of the account owner and the used licenses of the account.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/account/getPersonalInfo?session_token=SESSION_TOKEN'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": [
- {
- "email": "user@example.com",
- "phone": "07563463575",
- "first_name": "John",
- "last_name": "Doe",
- "permissions": "availability,appointments,get_widget,promote",
- "authority": "ROLE_NORMA",
- "is_owner": 0,
- "status": 0,
- "currency": "USD",
- "can_login": 1,
- "used_licenses": 5,
- "locations": 3,
- "employees": 5,
- "company_id": 423
}
]
}Upload an Account Logo
Add or update the account logo.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: multipart/form-data
| logo | string |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request POST 'https://www.setster.com/api/v2/account/uploadLogo?session_token=SESSION_TOKEN'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "upload_id": 0,
- "file_name": "string",
- "file_location": "string"
}
}Get Stripe Data
Get Stripe connection data.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/account/getStripe?session_token=SESSION_TOKEN'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "stripePublishableKey": "string"
}
}Get PayPal Email
Get the PayPal email address of the account.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/account/getPaypal?session_token=SESSION_TOKEN'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "paypal_email": "user@example.com"
}
}Get Widget Code
Get a copy of the Setster plug-and-play widget code. Find more info on the Setster widget here.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| overlay_option | string Default: "overlay" |
| position | string Default: "right" |
| button_name | string Default: "Appointment" |
| button_color | string Default: "ff0000" |
| defaultService | string |
| defaultProvider | string |
| defaultLocation | string |
| returnUrl | string <url> |
| locations_map | integer Default: 0 |
| no_code | integer Default: 0 |
| send_to | string <email> |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/account/getWidgetCode?session_token=SESSION_TOKEN&overlay_option=OVERLAY_OPTION&position=POSITION&button_name=BUTTON_NAME&button_color=BUTTON_COLOR&defaultService=DEFAULTSERVICE&defaultProvider=DEFAULTPROVIDER&defaultLocation=DEFAULTLOCATION&returnUrl=RETURNURL&locations_map=LOCATIONS_MAP&no_code=NO_CODE&send_to=SEND_TO'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "html": "<!-- Begin Setster Widget -->\\n<script type=\\\"text/javascript\\\"\ncharset=\\\"utf-8\\\">\\n var is_ssl = (\\\"https:\\\" == document.location.protocol);\\n\n var setsHost = is_ssl ? \\\"https://www.setster.com/widget/\\\" :\n \\\"https://www.setster.com/widget/\\\";\\n document.write(unescape(\\\"%3Cscript\n src='\\\" + setsHost + \\\"js/setster_over.js?v=2'\n type='text/javascript'%3E%3C/script%3E\\\"));\\n</script>\\n\\n\n <script type=\\\"text/javascript\\\" charset=\\\"utf-8\\\">\\n\n var setster_widget_options = {};\\n\\n setster_widget_options.display =\n \\\"overlay\\\"; \\n setster_widget_options.uri = \\\"boxadoro\\\";\\n\n setster_widget_options.placement = \\\"right\\\"; \\n\n setster_widget_options.buttonName = \\\"Appointment\\\"; \\n\n setster_widget_options.setsterURL = setsHost; \\n var setster_widget =\n new Setster.setster_widget(setster_widget_options);\\n</script>\\n\n <!-- End Setster Widget -->\\n\"\n"
}
}Request password reset
Initiates the password reset process. In order to reset the password a pre request must be made.
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| email required | string <email> Example: email=email@company.com |
| confirmation_url required | string <uri> Example: confirmation_url=www.test_confirmation_url.com The base url used to generate the confirmation link in the email message that is sent to the client. Confirmation link = confirmation_url + '?email={userEmail}&hash_code={hashCode}' |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request POST 'https://www.setster.com/api/v2/account/request_password_reset?session_token=SESSION_TOKEN&email=EMAIL&confirmation_url=CONFIRMATION_URL'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "Confirmation email sent",
- "data": { }
}Logout
Perform an account log out and terminate the current active session.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/account/logout?session_token=SESSION_TOKEN'
Reset Password
Modifies the account owner's password using the valid hash_code that was used when initiating the password reset process. The Request Password Reset call should be performed beforehand.
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| email required | string <email> Example: email=email@company.com |
| hash_code required | string Example: hash_code=test_hash_code |
| new_password required | string <password> Example: new_password=test_new_password |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request POST 'https://www.setster.com/api/v2/account/reset_password?session_token=SESSION_TOKEN&email=EMAIL&hash_code=HASH_CODE&new_password=NEW_PASSWORD'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "Password changed",
- "data": { }
}Check Nickname Availability
Check whether a nickname (nick_name) is already in use. Nicknames within the Setster service must be unique and create the URL under the Setster domain. Example demo.setster.com.
path Parameters
| nickname required | string Example: johndoe |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location -g --request GET 'https://www.setster.com/api/v2/account/checknickname/{nickname}?session_token=SESSION_TOKEN&nickname=NICKNAME'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "nick_name already exists",
- "data": { }
}Check Email Availability
Check whether an email is already in use. Emails within the Setster service are required to be unique.
path Parameters
| email required | string <email> Example: test@example.com |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location -g --request GET 'https://www.setster.com/api/v2/account/checkemail/{email}?session_token=SESSION_TOKEN&email=EMAIL'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "nick_name already exists",
- "data": { }
}An appointment (also known as a meeting or scheduled event) is the desired outcome of the booking. Each appointment is assigned an ID and is linked to a client. Clients are created or updated with each appointment saved.
List Appointments
Get a list of all appointments (upcoming and past) and their attributes. We advise using filters to fetch appointments for specific date ranges or different attributes. By default, getting the appointments list will include a 48 hour offset to allow for timezone conversions.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| id | integer The appointment id |
| employee_id | integer |
| location_id | integer |
| service_id | integer |
| client_id | integer |
| timezone_id | integer Example: timezone_id=553 Returns appointments date fields with specified time offset |
| ews_id | string Deprecated |
| status | string |
| only_exact_dates | string Example: only_exact_dates=true When |
| search_text | string |
| client_name | string |
| client_email | string |
| custom_field_1 | string Deprecated |
| custom_field_2 | string Deprecated |
| custom_field_3 | string Deprecated |
| custom_field_4 | string Deprecated |
| custom_field_5 | string Deprecated |
| cf_ids | string Example: cf_ids=custom_field_1,custom_field_2 Comma separated list of custom field ids |
| cf_search | string Example: cf_search=Some text to search Text that should be searched in the custom fields |
| cf_search_precision | string Default: "exact" Enum: "exact" "fuzzy" The type of precision to use when searching in custom fields. |
| cf_search_operand | string Default: "and" Enum: "and" "or" The type of operand to use when multiple custom fields ids are used. When using 'and' all custom fields must match, when using 'or' at least one custom field must match. |
| start_date | string |
| end_date | string |
| paid | integer Enum: 0 1 |
| start | integer Default: 0 List pager |
integer or string Default: 100 List pager / 'all' - no limit | |
| updated_after | string <date-time> Lower date limit for which the appointment was updated |
| updated_before | string <date-time> Upper date limit for which the appointment was updated |
| created_after | string <date-time> Lower date limit for which the appointment was created |
| created_before | string <date-time> Upper date limit for which the appointment was created |
| num_results | integer Default: 0 Enum: 0 1 If 1, the call returns only the number of appointments found |
| sort_by | string Default: "start_date" Enum: "start_date" "created" |
| sort_order | string Default: "asc" Enum: "asc" "desc" |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/appointment?session_token=SESSION_TOKEN&id=ID&employee_id=EMPLOYEE_ID&location_id=LOCATION_ID&service_id=SERVICE_ID&client_id=CLIENT_ID&timezone_id=TIMEZONE_ID&status=STATUS&search_text=SEARCH_TEXT&client_name=CLIENT_NAME&client_email=CLIENT_EMAIL&custom_field_1=CUSTOM_FIELD_1&custom_field_2=CUSTOM_FIELD_2&custom_field_3=CUSTOM_FIELD_3&custom_field_4=CUSTOM_FIELD_4&custom_field_5=CUSTOM_FIELD_5&start_date=START_DATE&end_date=END_DATE&paid=PAID&start=START&end=END&updated_after=UPDATED_AFTER&updated_before=UPDATED_BEFORE&created_after=CREATED_AFTER&created_before=CREATED_BEFORE&num_results=NUM_RESULTS&sort_by=SORT_BY&sort_order=SORT_ORDER'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": [
- {
- "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,
- "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": [
- "string",
- "string",
- "string"
], - "field index2": [
- "string",
- "string",
- "string"
]
}, - "custom_data": {
- "key1": "Lorem Ipsum",
- "key2": "Lorem Ipsum"
}, - "timezone_short": "GMT -05:00",
- "timezone_offset_seconds": -18000,
- "timezone_id": 553
}
]
}Create an Appointment
Create a new appointment.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| validate_custom_fields | integer Default: 0 Enum: 0 1 Example: validate_custom_fields=1 When set to
When validation fails, the API returns an error with details about which fields failed validation. |
Request Body schema: application/json
| 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 |
| 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 |
| location_id | integer <int64> Example: "54232" The ID of the location where the appointment will take place at |
| duration | integer <int32> multiple of 15 Default: 15 The duration of the appointment in minutes |
| 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:
|
| 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 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 | |
| timezone_id | integer <int32> Example: "553" The ID of the time zone in our database |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "company_id": 3123,
- "client_email": "user@example.com",
- "client_name": "Test Client",
- "client_phone": "12345678",
- "client_address": "string",
- "employee_id": 12412,
- "location_id": 54232,
- "service_id": 453,
- "start_date": "2019-09-01 12:00",
- "duration": 15,
- "note": "string",
- "status": 0,
- "subservices": "string",
- "paid": false,
- "price": 0,
- "ews_id": "",
- "custom_fields": {
- "field index1": [
- "string",
- "string",
- "string"
], - "field index2": [
- "string",
- "string",
- "string"
]
}, - "custom_data": {
- "key1": "Lorem Ipsum",
- "key2": "Lorem Ipsum"
}, - "timezone_id": 553
}Response samples
- 200
- 403
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "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,
- "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",
- "subservices": "string",
- "paid": false,
- "price": 0,
- "ews_id": "",
- "custom_fields": {
- "field index1": [
- "string",
- "string",
- "string"
], - "field index2": [
- "string",
- "string",
- "string"
]
}, - "custom_data": {
- "key1": "Lorem Ipsum",
- "key2": "Lorem Ipsum"
}, - "timezone_short": "GMT -05:00",
- "timezone_offset_seconds": -18000,
- "timezone_id": 553
}
}Get an Appointment
Get the details of a specific appointment.
Authorizations:
path Parameters
| id required | integer <int64> Appointment id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location -g --request GET 'https://www.setster.com/api/v2/appointment/{id}?session_token=SESSION_TOKEN&id=ID'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": [
- {
- "id": 2342,
- "client_id": 23113,
- "company_id": 3123,
- "client_email": "user@example.com",
- "client_name": "Test Client",
- "client_phone": "12345678",
- "client_address": "string",
- "provider_email": "some-provider@setster.com",
- "employee_id": 12412,
- "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": [
- "string",
- "string",
- "string"
], - "field index2": [
- "string",
- "string",
- "string"
]
}, - "custom_data": {
- "key1": "Lorem Ipsum",
- "key2": "Lorem Ipsum"
}, - "timezone_short": "GMT -05:00",
- "timezone_offset_seconds": -18000,
- "timezone_id": 553
}
]
}Modify an Appointment
Modify the attributes for an existing appointment. Most commonly used to reschedule the appointment to a different date and time or to modify the appointment status.
Authorizations:
path Parameters
| id required | integer <int64> Appointment id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| validate_custom_fields | integer Default: 0 Enum: 0 1 Example: validate_custom_fields=1 When set to
When validation fails, the API returns an error with details about which fields failed validation. |
Request Body schema: application/json
| 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 |
| 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 |
| location_id | integer <int64> Example: "54232" The ID of the location where the appointment will take place at |
| duration | integer <int32> multiple of 15 Default: 15 The duration of the appointment in minutes |
| 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:
|
| 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 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 | |
| timezone_id | integer <int32> Example: "553" The ID of the time zone in our database |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "company_id": 3123,
- "client_email": "user@example.com",
- "client_name": "Test Client",
- "client_phone": "12345678",
- "client_address": "string",
- "employee_id": 12412,
- "location_id": 54232,
- "service_id": 453,
- "start_date": "2019-09-01 12:00",
- "duration": 15,
- "note": "string",
- "status": 0,
- "subservices": "string",
- "paid": false,
- "price": 0,
- "ews_id": "",
- "custom_fields": {
- "field index1": [
- "string",
- "string",
- "string"
], - "field index2": [
- "string",
- "string",
- "string"
]
}, - "custom_data": {
- "key1": "Lorem Ipsum",
- "key2": "Lorem Ipsum"
}, - "timezone_id": 553
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "id": 2342,
- "old_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,
- "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": [
- "string",
- "string",
- "string"
], - "field index2": [
- "string",
- "string",
- "string"
]
}, - "custom_data": {
- "key1": "Lorem Ipsum",
- "key2": "Lorem Ipsum"
}, - "timezone_short": "GMT -05:00",
- "timezone_offset_seconds": -18000,
- "timezone_id": 553
}
}Delete an Appointment
Delete an existing appointment. This action is permanent and non-reversible. Consider using the cancel or decline endpoint instead of deleting an appointment.
Authorizations:
path Parameters
| id required | integer <int64> Appointment id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location -g --request DELETE 'https://www.setster.com/api/v2/appointment/{id}?session_token=SESSION_TOKEN&id=ID'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": { }
}List Appointments (Paginated)
Get a list of appointments and their attributes in a paginated format. Requires multiple calls.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| location_id | integer Default: 0 Location ID |
| employee_id | integer Default: 0 Employee ID |
| skip | integer Default: 0 The number of results to skip |
| count | integer Default: 10 The number of results to return |
| q | string Default: "" Search query |
| start_date | string Default: "" Start date |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/appointment/listView?session_token=SESSION_TOKEN&location_id=LOCATION_ID&employee_id=EMPLOYEE_ID&skip=SKIP&count=COUNT&q=Q&start_date=START_DATE'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "results": [
- {
- "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,
- "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": [
- "string",
- "string",
- "string"
], - "field index2": [
- "string",
- "string",
- "string"
]
}, - "custom_data": {
- "key1": "Lorem Ipsum",
- "key2": "Lorem Ipsum"
}, - "timezone_short": "GMT -05:00",
- "timezone_offset_seconds": -18000,
- "timezone_id": 553
}
], - "last_rows": 100
}
}Verify appointment
Using this endpoint you can verify an appointment. This will initiate the verification system of an appointment. The client for that appointment will receive a “Verification required” email which will guide him in the verification process.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| appointment_id | integer Example: "123" |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "appointment_id": 123
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "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,
- "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": [
- "string",
- "string",
- "string"
], - "field index2": [
- "string",
- "string",
- "string"
]
}, - "custom_data": {
- "key1": "Lorem Ipsum",
- "key2": "Lorem Ipsum"
}, - "timezone_short": "GMT -05:00",
- "timezone_offset_seconds": -18000,
- "timezone_id": 553
}
}Confirm an Appointment
Confirm an existing appointment. View appointment status for definitions of available statuses.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| appointment_id | integer Example: "123" |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "appointment_id": 123
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "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,
- "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": [
- "string",
- "string",
- "string"
], - "field index2": [
- "string",
- "string",
- "string"
]
}, - "timezone_short": "GMT -05:00",
- "timezone_offset_seconds": -18000,
- "timezone_id": 553
}
}Decline an Appointment
Decline an existing appointment. View appointment status for definitions of available statuses.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| appointment_id required | integer Example: "123" |
| reason required | string |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "appointment_id": 123,
- "reason": "string"
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "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,
- "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": [
- "string",
- "string",
- "string"
], - "field index2": [
- "string",
- "string",
- "string"
]
}, - "custom_data": {
- "key1": "Lorem Ipsum",
- "key2": "Lorem Ipsum"
}, - "timezone_short": "GMT -05:00",
- "timezone_offset_seconds": -18000,
- "timezone_id": 553
}
}Get Upcoming Appointments
List all existing future/upcoming appointments. Future appointments have a start date and time after the API call's date and time. This returns appointments with the statuses Unverified, Unconfirmed, and Confirmed only—view appointment status for definitions of available statuses.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| skip | integer |
| count | integer |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/appointment/upcoming?session_token=SESSION_TOKEN&skip=SKIP&count=COUNT'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "last_rows": true,
- "records": [
- {
- "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,
- "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": {
- "1": [
- "(01512) 793246",
- "Work Phone"
], - "2": [
- [
- "201 S. Division St.",
- "500",
- "Ann Arbor",
- "MI",
- "48104"
], - "Full Address"
], - "3": [
- "123ABC",
- "Coupon Code",
- "h"
]
}, - "custom_data": {
- "key1": "Lorem Ipsum",
- "key2": "Lorem Ipsum"
}, - "timezone_short": "GMT -05:00",
- "timezone_offset_seconds": -18000,
- "timezone_id": 553
}
]
}
}Get hash key for an appointment
Get the hash key for an existing appointment.
Authorizations:
path Parameters
| id required | integer |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| hash_type | string Default: "reschedule" Enum: "cancel" "reschedule" "confirm" |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location -g --request GET 'https://www.setster.com/api/v2/appointment/hash/{id}?session_token=SESSION_TOKEN&id=ID&hash_type=HASH_TYPE'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": "bkl43mfgn43k"
}Send Appointment Reminder
Trigger an a reminder email and SMS (if configured) for a specific appointment.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| appointment_id required | integer Example: "123" |
| send_to | string Default: "both" Enum: "client" "provider" "both" |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "appointment_id": 123,
- "send_to": "client"
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "Sent to provider/client/provider and client",
- "data": { }
}The availability object is available times an appointment can be scheduled or booked. Each appointment saved will require an availability (the date and time of the appointment or meeting).
For availability to be retrieved during booking, it requires a service, location, and employee (optional) to be stated.
Availability also controls the public holidays set on the account level, preventing these days from being available.
Get Availability
Get the available times to schedule an appointment.
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| service_id required | integer <int64> Example: service_id=2116 The ID of the selected service |
| start_date required | string <date> Example: start_date=2014-05-15 (YYYY-mm-dd) The day for which the availability is requested |
| t required | string Enum: "daily" "weekly" Example: t=daily
|
| return required | string Enum: "boxes" "times" Example: return=boxes
|
| subservices | Array of integers Example: subservices=2116&subservices=231 The IDs of the selected subservices |
| location_id | integer <int64> Example: location_id=2116 The ID of the selected location |
| provider_id | integer <int64> Example: provider_id=2116 The ID of the provider (employee) |
| timezone_id | integer <int32> Example: timezone_id=553 The ID of the timezone relative to which the availability is calculated. Defaults to the location timezone. |
| first_available | boolean When there is no availability from start_date to the end of the interval(t - daily/weekly), whole agenda is scanned until a first available time slot is returned. |
| available_seats | boolean Retrieve available seats for an appointment start time. This will return the number of seats for an employee. If none is provided, a random employee will be selected and the number of seats for that employee will be returned. |
| total_seats | boolean Use this parameter to get the total number of seats for all employees |
| no_of_weeks | integer [ 1 .. 5 ] Example: no_of_weeks=4 Used to retreive the availability for one month. Accepted values are between 1 and 5 |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/availability?service_id=SERVICE_ID&subservices=SUBSERVICES&location_id=LOCATION_ID&provider_id=PROVIDER_ID&start_date=START_DATE&t=T&return=RETURN&timezone_id=TIMEZONE_ID&first_available=FIRST_AVAILABLE&available_seats=AVAILABLE_SEATS&total_seats=TOTAL_SEATS&no_of_weeks=NO_OF_WEEKS'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "interval": 60,
- "boxInterval": 5,
- "padding": 0,
- "day": 15,
- "month": 8,
- "year": 2012,
- "times": [
- "09:00:00"
]
}
}Create a Holiday
Create a new holiday.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| company_id required | integer <int64> Example: "24232" |
| name | string Example: "Christmas" |
| type | integer Enum: 1 2 The type of the holiday:
|
| start_date | string <date-time> Example: "2018-12-25 00:00:00" The date and time when the holiday starts. It can be used in the request for creating or updating holidays only for holidays with |
| end_date | string <date-time> Example: "2018-12-26 23:59:59" The date and time when the holiday ends. It can be used in the request for creating or updating holidays only for holidays with |
| day_in_week | integer Enum: 0 1 2 3 4 5 6 The number of weekday. Only for holidays with
|
| month | integer Enum: 0 1 2 3 4 5 6 7 8 9 10 11 The number of weekday. Only for holidays with
|
| day_order | integer Enum: 0 1 2 3 4 The order number of the weekday selected by
|
| enabled | number Default: 1 Enum: 0 1 |
| timestamp | number Example: "1542844800" The timestamp of the holiday's start date in the current year |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "company_id": 24232,
- "name": "Christmas",
- "type": 1,
- "start_date": "2018-12-25 00:00:00",
- "end_date": "2018-12-26 23:59:59",
- "day_in_week": 0,
- "month": 0,
- "day_order": 0,
- "enabled": 0,
- "timestamp": 1542844800
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "id": 13425,
- "company_id": 24232,
- "name": "Christmas",
- "type": 1,
- "start_date": "2018-12-25 00:00:00",
- "end_date": "2018-12-26 23:59:59",
- "day_in_week": 0,
- "month": 0,
- "day_order": 0,
- "year": 0,
- "caption": "Dec 25th 2018 (Christmas)",
- "enabled": 0,
- "timestamp": 1542844800
}
}Modify a Holiday
Modify the attributes of an existing holiday.
Authorizations:
path Parameters
| id required | integer <int64> Holiday id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| company_id required | integer <int64> Example: "24232" |
| name | string Example: "Christmas" |
| type | integer Enum: 1 2 The type of the holiday:
|
| start_date | string <date-time> Example: "2018-12-25 00:00:00" The date and time when the holiday starts. It can be used in the request for creating or updating holidays only for holidays with |
| end_date | string <date-time> Example: "2018-12-26 23:59:59" The date and time when the holiday ends. It can be used in the request for creating or updating holidays only for holidays with |
| day_in_week | integer Enum: 0 1 2 3 4 5 6 The number of weekday. Only for holidays with
|
| month | integer Enum: 0 1 2 3 4 5 6 7 8 9 10 11 The number of weekday. Only for holidays with
|
| day_order | integer Enum: 0 1 2 3 4 The order number of the weekday selected by
|
| enabled | number Default: 1 Enum: 0 1 |
| timestamp | number Example: "1542844800" The timestamp of the holiday's start date in the current year |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "company_id": 24232,
- "name": "Christmas",
- "type": 1,
- "start_date": "2018-12-25 00:00:00",
- "end_date": "2018-12-26 23:59:59",
- "day_in_week": 0,
- "month": 0,
- "day_order": 0,
- "enabled": 0,
- "timestamp": 1542844800
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "id": 13425,
- "company_id": 24232,
- "name": "Christmas",
- "type": 1,
- "start_date": "2018-12-25 00:00:00",
- "end_date": "2018-12-26 23:59:59",
- "day_in_week": 0,
- "month": 0,
- "day_order": 0,
- "year": 0,
- "caption": "Dec 25th 2018 (Christmas)",
- "enabled": 0,
- "timestamp": 1542844800
}
}List Holidays
Get a list of all holidays and their attributes.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/availability/getHoliday?session_token=SESSION_TOKEN'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": [
- {
- "id": 13425,
- "company_id": 24232,
- "name": "Christmas",
- "type": 1,
- "start_date": "2018-12-25 00:00:00",
- "end_date": "2018-12-26 23:59:59",
- "day_in_week": 0,
- "month": 0,
- "day_order": 0,
- "year": 0,
- "caption": "Dec 25th 2018 (Christmas)",
- "enabled": 0,
- "timestamp": 1542844800
}
]
}Get a Holiday
Get the attributes of a specific holiday.
Authorizations:
path Parameters
| id required | integer <int64> Holiday id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location -g --request GET 'https://www.setster.com/api/v2/availability/getHoliday/{id}?session_token=SESSION_TOKEN&id=ID'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "id": 13425,
- "company_id": 24232,
- "name": "Christmas",
- "type": 1,
- "start_date": "2018-12-25 00:00:00",
- "end_date": "2018-12-26 23:59:59",
- "day_in_week": 0,
- "month": 0,
- "day_order": 0,
- "year": 0,
- "caption": "Dec 25th 2018 (Christmas)",
- "enabled": 0,
- "timestamp": 1542844800
}
}Delete Holidays
Delete one or more existing holidays.
Authorizations:
path Parameters
| ids required | string Example: 234,543 A list of holiday ids, separated by comma. Example:
|
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location -g --request POST 'https://www.setster.com/api/v2/availability/deleteHoliday/{ids}?session_token=SESSION_TOKEN&ids=IDS'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": true
}A client is automatically created or updated with each appointment saved. They are assigned an ID based on their unique email address.
List Clients
Get a list of all clients and their attributes.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| q | string Search string |
| start | integer Default: 0 List pager |
| end | integer Default: 100 List pager / 'all' - no limit |
| client_id | integer |
| employee_id | integer |
string | |
| name | string |
| phone | string |
| last_app_date | string |
| notes | string |
| preferences | string |
| address | string |
| address2 | string |
| city | string |
| state | string |
| zip | string |
| country | string |
| gender | string |
| birthday | string |
| client_since | string |
| accept_emails | string |
| photo | string |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/client?session_token=SESSION_TOKEN&q=Q&start=START&end=END&client_id=CLIENT_ID&employee_id=EMPLOYEE_ID&email=EMAIL&name=NAME&phone=PHONE&last_app_date=LAST_APP_DATE¬es=NOTES&preferences=PREFERENCES&address=ADDRESS&address2=ADDRESS2&city=CITY&state=STATE&zip=ZIP&country=COUNTRY&gender=GENDER&birthday=BIRTHDAY&client_since=CLIENT_SINCE&accept_emails=ACCEPT_EMAILS&photo=PHOTO'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": [
- {
- "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"
}
]
}Create a Client
Create a new client.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| email required | string <email> The email of the client |
| name required | string Example: "Test Client" The full name of the client |
| phone | string Example: "3445323523" Client's phone number |
| 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:
|
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "email": "user@example.com",
- "name": "Test Client",
- "phone": "3445323523",
- "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"
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "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"
}
}Get a Client
Get the attributes of a specific client.
Authorizations:
path Parameters
| id required | integer <int64> Client id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location -g --request GET 'https://www.setster.com/api/v2/client/{id}?session_token=SESSION_TOKEN&id=ID'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": [
- {
- "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"
}
]
}Modify a Client
Modify the attributes of an existing client.
Authorizations:
path Parameters
| id required | integer <int64> Client id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| email required | string <email> The email of the client |
| name required | string Example: "Test Client" The full name of the client |
| phone | string Example: "3445323523" Client's phone number |
| 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:
|
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "email": "user@example.com",
- "name": "Test Client",
- "phone": "3445323523",
- "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"
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "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"
}
}Delete a Client
Delete an existing client.
Authorizations:
path Parameters
| id required | integer <int64> Client id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location -g --request DELETE 'https://www.setster.com/api/v2/client/{id}?session_token=SESSION_TOKEN&id=ID'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": { }
}Upload a Client Photo
Using this endpoint you can add/update the client picture
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: multipart/form-data
| photo | string <binary> |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request POST 'https://www.setster.com/api/v2/client/uploadPicture?session_token=SESSION_TOKEN'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "upload_id": 32412,
- "file_name": "avatar.png",
- "file_location": "/admin/images/clients/"
}
}Custom fields, also known as booking forms in the Setster plug-and-play widget, are additional data sets saved with each appointment. These can be general questions asked clients during booking, for example: "How did you hear about us?" or they can be hidden data passed with the appointment, for example, "Order ID".
Keep in mind the phone and address inputs within an appointment are considered custom fields as well.
List Custom Fields
Get a list of all custom fields and their attributes.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| id | integer Custom field id |
| label | string |
| length | integer |
| type | integer |
| required | integer |
| status | integer |
| visibility | integer |
| readonly | integer |
| removable | integer |
| readonly_type | integer |
| hint | string |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/customfield?session_token=SESSION_TOKEN&id=ID&label=LABEL&length=LENGTH&type=TYPE&required=REQUIRED&status=STATUS&visibility=VISIBILITY&readonly=READONLY&removable=REMOVABLE&readonly_type=READONLY_TYPE&hint=HINT'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": [
- {
- "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",
- "options": "Option A|Option B|Option C",
- "multiselect": 0
}
]
}Create a Custom Field
Create a new custom field.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| 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 7 Type of the custom field. Possible values:
|
| 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:
|
| readonly required | boolean Default: false The readonly property of the custom field form. |
| hint required | string The hint property of the custom field form |
| removable | boolean Default: false |
| readonly_type | integer |
| options | string Example: "Option A|Option B|Option C" Dropdown options stored as a pipe-delimited string. Required when type is 7 (dropdown). Example: |
| multiselect | integer Default: 0 Enum: 0 1 For dropdown fields (type 7), determines if multiple options can be selected. 0 = single select, 1 = multi-select. |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "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",
- "options": "Option A|Option B|Option C",
- "multiselect": 0
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "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",
- "options": "Option A|Option B|Option C",
- "multiselect": 0
}
}Get a Custom Field
Get the attributes of a specific custom field.
Authorizations:
path Parameters
| id required | integer <int64> Custom Field id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location -g --request GET 'https://www.setster.com/api/v2/customfield/{id}?session_token=SESSION_TOKEN&id=ID'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": [
- {
- "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",
- "options": "Option A|Option B|Option C",
- "multiselect": 0
}
]
}Modify a Custom Field
Modify the attributes of an existing custom field.
Authorizations:
path Parameters
| id required | integer <int64> Custom field id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| 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 7 Type of the custom field. Possible values:
|
| 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:
|
| readonly required | boolean Default: false The readonly property of the custom field form. |
| hint required | string The hint property of the custom field form |
| removable | boolean Default: false |
| readonly_type | integer |
| options | string Example: "Option A|Option B|Option C" Dropdown options stored as a pipe-delimited string. Required when type is 7 (dropdown). Example: |
| multiselect | integer Default: 0 Enum: 0 1 For dropdown fields (type 7), determines if multiple options can be selected. 0 = single select, 1 = multi-select. |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "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",
- "options": "Option A|Option B|Option C",
- "multiselect": 0
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "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",
- "options": "Option A|Option B|Option C",
- "multiselect": 0
}
}Delete a Custom Field
Delete a specific custom field.
Authorizations:
path Parameters
| id required | integer Custom field id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location -g --request DELETE 'https://www.setster.com/api/v2/customfield/{id}?session_token=SESSION_TOKEN&id=ID'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": { }
}Create or Modify Multiple Custom Fields
Create or modify multiple custom fields.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| 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 7 Type of the custom field. Possible values:
|
| 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:
|
| readonly required | boolean Default: false The readonly property of the custom field form. |
| hint required | string The hint property of the custom field form |
| removable | boolean Default: false |
| readonly_type | integer |
| options | string Pipe-delimited list of options for dropdown fields (type 7). Example: "Option A|Option B|Option C" |
| multiselect | integer Default: 0 Enum: 0 1 For dropdown fields (type 7): 0 = single select, 1 = multi-select |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
[- {
- "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",
- "options": "string",
- "multiselect": 0
}
]Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": [
- {
- "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",
- "options": "string",
- "multiselect": 0
}
]
}An employee or also know as a staff member or a service provider can mean different things in different business models:
An actual person who accepts appointments or manages a team. Each employee will have their own calendar and their own schedule and services they offer and can be linked to single or multiple locations. An assistant or receptionist that does not accept appointments is still considered an employee but will need to be set as INACTIVE "status": false. This employee can be named; for example: "John Smith" or can be generic such as "Support Person 1".
Group or department, so if your business operates in teams or departments for a single appointment, this team is considered a single employee. They offer services as a group, and their calendar and schedule are combined—for example, the "HR Department".
A virtual entity, for example, if you rent out meeting rooms, an employee, in this case, is the room. The meeting room will have a calendar for others to book a time on. In this case, you would name the employee "Meeting Room A" for example.
Keep in mind if your business operates generically, you can name your staff to match. For example "Clerk" or "Shopping Assistant". You can also opt to allow clients to pick an employee during booking or automatically assign appointments to the appropriate employee using a round-robin approach.
List Employees
Get a list of all employees and their attributes.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| id | integer Employee id |
| statuses | string Value: "all" By default only active employees are returned. This filter allows to return all the employees, including the inactive ones |
| status | integer Enum: 0 1 |
| include_links | boolean |
string | |
| first_name | string |
| last_name | string |
| job | string |
| bio | string |
| phone | string |
| photo_url | string |
| public_email | boolean |
| public_phone | boolean |
| receivesms | boolean |
| sms_email | string |
| intuit_user_id | string |
| ipp_mode | integer |
| intuit_auth_id | string |
| intuit_realm_id | string |
| intuit_ticket_id | string |
| newsletter | boolean |
| is_owner | boolean |
| ics_service | string |
| ics_export_service | string |
| ics_url | string |
| ics_export_hash | string |
| google_export_canceled | boolean |
| google_export_add_pt | boolean |
| username | string |
| nickname | string |
string <uri> | |
| yelp | string <uri> |
string <uri> | |
| vimeo | string <uri> |
| youtube | string <uri> |
string <uri> | |
string <uri> |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/employee?session_token=SESSION_TOKEN&id=ID&statuses=STATUSES&status=STATUS&include_links=INCLUDE_LINKS&email=EMAIL&first_name=FIRST_NAME&last_name=LAST_NAME&job=JOB&bio=BIO&phone=PHONE&photo_url=PHOTO_URL&public_email=PUBLIC_EMAIL&public_phone=PUBLIC_PHONE&receivesms=RECEIVESMS&sms_email=SMS_EMAIL&intuit_user_id=INTUIT_USER_ID&ipp_mode=IPP_MODE&intuit_auth_id=INTUIT_AUTH_ID&intuit_realm_id=INTUIT_REALM_ID&intuit_ticket_id=INTUIT_TICKET_ID&newsletter=NEWSLETTER&is_owner=IS_OWNER&ics_service=ICS_SERVICE&ics_export_service=ICS_EXPORT_SERVICE&ics_url=ICS_URL&ics_export_hash=ICS_EXPORT_HASH&google_export_canceled=GOOGLE_EXPORT_CANCELED&google_export_add_pt=GOOGLE_EXPORT_ADD_PT&username=USERNAME&nickname=NICKNAME&linkedin=LINKEDIN&yelp=YELP&pinterest=PINTEREST&vimeo=VIMEO&youtube=YOUTUBE&twitter=TWITTER&facebook=FACEBOOK'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": [
- {
- "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": "",
- "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_export_hash": "string",
- "google_export_canceled": 0,
- "google_export_add_pt": 0,
- "ord": 0,
- "ics_export_url": "string",
- "permissions": "locations, providers",
- "can_login": 1
}
]
}Create an Employee
Create a new employee.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| 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 |
required | Array of objects Example: "[object Object]" Links with locations and services |
| 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 |
| nickname | string Example: "" Unique nickname per company. May contain only letters, digits, the dot character and the underline character. |
string <uri> Default: "" LinkedIn URL | |
| yelp | string <uri> |
string <uri> | |
| vimeo | string <uri> |
| youtube | string <uri> |
string <uri> Example: "" Twitter URL | |
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 |
| 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 |
| 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 |
| password | string |
| send_invite_email | boolean Available only when creating a new employee - will send an email to the email address of the newly created employee |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "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,
- "nickname": "",
- "linkedin": "",
- "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,
- "ics_service": 0,
- "ics_export_service": 0,
- "ics_export_hash": "string",
- "google_export_canceled": 0,
- "google_export_add_pt": 0,
- "permissions": "locations, providers",
- "password": "string",
- "send_invite_email": true,
- "links": {
- "[LOCATION_ID]": {
- "[SERVICE_ID]": 1
}
}
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": [
- {
- "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": "",
- "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_export_hash": "string",
- "google_export_canceled": 0,
- "google_export_add_pt": 0,
- "ord": 0,
- "ics_export_url": "string",
- "permissions": "locations, providers",
- "can_login": 1
}
]
}Get an Employee
Get the attributes of a specific employee.
Authorizations:
path Parameters
| id required | integer <int64> Employee id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location -g --request GET 'https://www.setster.com/api/v2/employee/{id}?session_token=SESSION_TOKEN&id=ID'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": [
- {
- "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": "",
- "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_export_hash": "string",
- "google_export_canceled": 0,
- "google_export_add_pt": 0,
- "ord": 0,
- "ics_export_url": "string",
- "permissions": "locations, providers",
- "can_login": 1
}
]
}Modify an Employee
Modify the attributes of an existing employee.
Authorizations:
path Parameters
| id required | integer <int64> Employee id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| 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 |
required | Array of objects Example: "[object Object]" Links with locations and services |
| 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 |
| nickname | string Example: "" Unique nickname per company. May contain only letters, digits, the dot character and the underline character. |
string <uri> Default: "" LinkedIn URL | |
| yelp | string <uri> |
string <uri> | |
| vimeo | string <uri> |
| youtube | string <uri> |
string <uri> Example: "" Twitter URL | |
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 |
| 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 |
| 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 |
| password | string |
| send_invite_email | boolean Available only when creating a new employee - will send an email to the email address of the newly created employee |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "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,
- "nickname": "",
- "linkedin": "",
- "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,
- "ics_service": 0,
- "ics_export_service": 0,
- "ics_export_hash": "string",
- "google_export_canceled": 0,
- "google_export_add_pt": 0,
- "permissions": "locations, providers",
- "password": "string",
- "send_invite_email": true,
- "links": {
- "[LOCATION_ID]": {
- "[SERVICE_ID]": 1
}
}
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": [
- {
- "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": "",
- "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_export_hash": "string",
- "google_export_canceled": 0,
- "google_export_add_pt": 0,
- "ord": 0,
- "ics_export_url": "string",
- "permissions": "locations, providers",
- "can_login": 1
}
]
}Delete an Employee
Delete an existing employee.
Authorizations:
path Parameters
| id required | integer <int64> Employee id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location -g --request DELETE 'https://www.setster.com/api/v2/employee/{id}?session_token=SESSION_TOKEN&id=ID'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": { }
}Update availability
Update or change the availability (working hours or available times) of a specific employee.
Authorizations:
path Parameters
| id required | integer <int64> Employee id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| company_id required | integer <int64> Example: "1234" Company id |
Array of objects |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "company_id": 1234,
- "availabilities": [
- {
- "repeat": 1,
- "type": 0,
- "start_date": "12/1/2015",
- "end_date": "12/31/2015",
- "location_id": 2144,
- "days": {
- "mo": {
- "time": [
- [
- "10:00",
- "18:00"
], - [
- "22:00",
- "23:00"
]
]
}, - "tu": {
- "time": [
- [
- "14:00",
- "18:00"
], - [
- "20:00",
- "23:00"
]
]
}
}
}
]
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": { }
}Link an employee to all locations and services
Link or assign a specific employee to all existing locations and services.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| employee_id required | integer <int64> Employee id |
Request Body schema: application/json
The following format is used:
{ LOCATION_ID: [ SERVICE_1, SERVICE_2, ...]}
To assign services to all locations for an employee:
{0: [SERVICE_1, SERVICE_2, ...]}
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "45634": [
- 232,
- 34534
]
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": null
}Sync Employee Calendar
Force the calendar sync to occur for a specific employee. Please note this option is only available if the employee is syncing with an Internet Calendar or Google Calendar and is not available for Microsoft Calendars as they rely on Microsoft's PUSH functionality.
Authorizations:
path Parameters
| id required | integer <int64> Employee id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| export | boolean Example: export=1 If not present default action is the import |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location -g --request GET 'https://www.setster.com/api/v2/employee/sync/{id}?session_token=SESSION_TOKEN&id=ID&export=EXPORT'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "SYNCED",
- "data": { }
}Get availability time
Get the availability of a specific employee in dates and times format.
Authorizations:
path Parameters
| id required | integer Employee id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location -g --request GET 'https://www.setster.com/api/v2/employee/getAvailabilityTime/{id}?session_token=SESSION_TOKEN&id=ID'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "availabilities": [
- {
- "repeat": 1,
- "type": 0,
- "start_date": "12/1/2015",
- "end_date": "12/31/2015",
- "location_id": 2144,
- "days": {
- "mo": {
- "time": [
- [
- "10:00",
- "18:00"
], - [
- "22:00",
- "23:00"
]
]
}, - "tu": {
- "time": [
- [
- "14:00",
- "18:00"
], - [
- "20:00",
- "23:00"
]
]
}
}
}
]
}
}Get availability
Get the availability of a specific employee in boxes format.
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| employee_id required | integer <int64> Employee id |
| location_id required | integer <int64> Location id |
| start_date required | string Start Date |
| end_date required | string End Date |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/employee/getAvailability?employee_id=EMPLOYEE_ID&location_id=LOCATION_ID&start_date=START_DATE&end_date=END_DATE'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "start_date": "2018-09-01 12:12:12",
- "end_date": "2018-09-03 12:12:12",
- "boxes": {
- "1": 100,
- "2": 1
}
}
}Upload an Employee Photo
Add or update the image of a specific employee.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| provider | integer <int64> Employee id |
Request Body schema: multipart/form-data
| photo | string <binary> |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request POST 'https://www.setster.com/api/v2/employee/uploadPhoto?session_token=SESSION_TOKEN&provider=PROVIDER'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "upload_id": 32412,
- "file_name": "avatar.png",
- "file_location": "/admin/images/clients/"
}
}Delete an Employee Photo
Delete the image of a specific employee.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| provider | integer <int64> Employee id |
Request Body schema: application/json
| file_name required | string |
| provider | integer Example: "2342" Employee Id |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "file_name": "string",
- "provider": 2342
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": null
}Update Employee's Sort Order
Change the sort order of the employees in the list.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| id required | integer Example: "27864" Employee id |
| ord required | integer Example: "3" The order number in the list |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
[- {
- "id": 27864,
- "ord": 3
}
]Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": null
}Check Nickname Availability
Check whether a specific nickname is available to use.
Authorizations:
path Parameters
| nickname required | string |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location -g --request GET 'https://www.setster.com/api/v2/employee/checknickname/{nickname}?session_token=SESSION_TOKEN&nickname=NICKNAME'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "SYNCED",
- "data": { }
}A location is the defined place where the appointment or the meeting will take place, and multiple locations can be created within an account. A location can be:
A physical or a geographical location of your business - If you meet with clients at your business, then this is considered a physical location. A physical location requires a full address.
A virtual location - If you meet clients virtually, on the phone, or at their own location (home or office), then this is considered a virtual location.
A department in your business - If you offer different services per department, then you can use the location feature to separate these departments. In this case, a location can be either geographical or virtual, depending on where you will be meeting.
List Locations
Get a list of all locations and their attributes.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| id | integer Location ID |
| name | string |
| description | string |
| street1 | string |
| street2 | string |
| city | string |
| state | string |
| zip | string |
| phone | string |
string | |
| website | string |
| lat | number |
| lng | number |
| country | string |
| tags | string |
| photo | string |
| paypal_email | string |
| timezone_id | integer The timezone id |
| virtual | boolean |
| tmp_default | boolean |
| has_links | boolean |
| include_links | boolean |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/location?session_token=SESSION_TOKEN&id=ID&name=NAME&description=DESCRIPTION&street1=STREET1&street2=STREET2&city=CITY&state=STATE&zip=ZIP&phone=PHONE&email=EMAIL&website=WEBSITE&lat=LAT&lng=LNG&country=COUNTRY&tags=TAGS&photo=PHOTO&paypal_email=PAYPAL_EMAIL&timezone_id=TIMEZONE_ID&virtual=VIRTUAL&tmp_default=TMP_DEFAULT&has_links=HAS_LINKS&include_links=INCLUDE_LINKS'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": [
- {
- "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
}
]
}Create a Location
Create a new location.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| 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 |
| description | string Default: "" Description of the location |
| 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 |
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 |
| update_lat_lng | boolean Default: false Available only on update. If true (1) then the lat and lng values will be automatically calculated |
string or object Example: "[object Object]" Links with employees and services. If links: "all", all providers and services will be linked to this location. If links: {EMPLOYEE_ID: "all"}, all services will be linked to this location for the provider with EMPLOYEE_ID id. If links: {"all": {SERVICE_ID_1: 1, SERVICE_ID_2: 1, ... }}, the services with id's SERVICE_ID_1, SERVICE_ID_2, ... will be linked to this location for all the providers If links: {"EMPLOYEE_ID_1": { SERVICE_ID_1: 1, SERVICE_ID_2: 1, ... }, "EMPLOYEE_ID_2": { SERVICE_ID_3: 1, SERVICE_ID_4: 1, ... }, ... }, the specified services will be linked with the specified providers |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "name": "Spa center",
- "description": "",
- "company_id": 432,
- "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,
- "update_lat_lng": false,
- "links": {
- "344": {
- "4433": 1,
- "4823": 1
}, - "345": "all",
- "all": {
- "4532": 1,
- "5432": 1
}
}
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": [
- {
- "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
}
]
}Get a Location
Get the attributes of a specific location.
Authorizations:
path Parameters
| id required | integer <int64> Location id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location -g --request GET 'https://www.setster.com/api/v2/location/{id}?session_token=SESSION_TOKEN&id=ID'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": [
- {
- "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
}
]
}Modify a Location
Modify the attributes of an existing location.
Authorizations:
path Parameters
| id required | integer <int64> Location id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| 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 |
| description | string Default: "" Description of the location |
| 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 |
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 |
| update_lat_lng | boolean Default: false Available only on update. If true (1) then the lat and lng values will be automatically calculated |
string or object Example: "[object Object]" Links with employees and services. If links: "all", all providers and services will be linked to this location. If links: {EMPLOYEE_ID: "all"}, all services will be linked to this location for the provider with EMPLOYEE_ID id. If links: {"all": {SERVICE_ID_1: 1, SERVICE_ID_2: 1, ... }}, the services with id's SERVICE_ID_1, SERVICE_ID_2, ... will be linked to this location for all the providers If links: {"EMPLOYEE_ID_1": { SERVICE_ID_1: 1, SERVICE_ID_2: 1, ... }, "EMPLOYEE_ID_2": { SERVICE_ID_3: 1, SERVICE_ID_4: 1, ... }, ... }, the specified services will be linked with the specified providers |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "name": "Spa center",
- "description": "",
- "company_id": 432,
- "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,
- "update_lat_lng": false,
- "links": {
- "344": {
- "4433": 1,
- "4823": 1
}, - "345": "all",
- "all": {
- "4532": 1,
- "5432": 1
}
}
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": [
- {
- "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
}
]
}Delete a Location
Delete an existing location.
Authorizations:
path Parameters
| id required | integer <int64> Location id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location -g --request DELETE 'https://www.setster.com/api/v2/location/{id}?session_token=SESSION_TOKEN&id=ID'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": { }
}Link a location to all services and employees
Link or assign a specific location to all existing employees and services.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| location_id | integer <int64> Location id |
Request Body schema: application/json
The following format is used:
{ PROVIDER_ID: [ SERVICE_1, SERVICE_2, ...]}
To assign services to all providers at a location use:
{0: [SERVICE_1, SERVICE_2, ...]}
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "45634": [
- 232,
- 34534
]
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": null
}Upload a Location Photo
Add or update the image of a specific location.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| location | integer <int64> Location id |
Request Body schema: multipart/form-data
| photo | string <binary> |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request POST 'https://www.setster.com/api/v2/location/uploadPhoto?session_token=SESSION_TOKEN&location=LOCATION'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "upload_id": 32412,
- "file_name": "avatar.png",
- "file_location": "/admin/images/clients/"
}
}Delete a Location Photo
Delete the image of a specific location.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| location | integer <int64> Location id |
Request Body schema: application/json
| file_name required | string |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "file_name": "string"
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": null
}Update Location's Sort Order
Change the sort order of the locations in the list.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| id required | integer Example: "27864" Location id |
| ord required | integer Example: "3" The order number in the list |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
[- {
- "id": 27864,
- "ord": 3
}
]Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": null
}The services are offerings of a company or catalog of available appointment pr meeting types. The service is a required field when booking an appointment and offers the most flexibility in booking logic and appointment settings. A service can be:
- A primary offering and relies on the employee availability for booking.
- An event - relies on a set schedule that occurs at specific dates and times. This can be a single occurring event like a conference, or a recurring time, for example, mornings only on specific days. set_schedule=true
- An add-on or sub-service to a service is an additional service the client can opt to add during booking. This adds additional time to the appointment duration. is_subservice=true
List Services
Get a list of all services and their attributes.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| id | integer Service id |
| location_id | integer Location id |
| active_services | boolean Default: false Return only active services |
| description | string |
| auto_confirm | boolean |
| is_subservice | boolean |
| duration | integer multiple of 15 |
| duration_padding | integer multiple of 5 |
| max_clients | integer |
| prior_notice | integer |
| after_notice | integer |
| cancel_appointment | integer |
| reschedule_appointment | integer |
| send_reminder | integer |
| start_step | integer multiple of 5 |
| set_schedule | integer |
| price | integer |
| payment_min_amount | number |
| allow_cash_payment | boolean |
| group_session | integer |
| waiting_list | integer |
| client_instructions | string |
| widget_message | string |
| password | string |
| active_from | string <date-time> |
| active_until | string <date-time> |
| active_interval_status | boolean |
| status | boolean |
| photo | string |
| active_rules | boolean |
| tmp_default | boolean |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/service?session_token=SESSION_TOKEN&id=ID&location_id=LOCATION_ID&active_services=ACTIVE_SERVICES&description=DESCRIPTION&auto_confirm=AUTO_CONFIRM&is_subservice=IS_SUBSERVICE&duration=DURATION&duration_padding=DURATION_PADDING&max_clients=MAX_CLIENTS&prior_notice=PRIOR_NOTICE&after_notice=AFTER_NOTICE&cancel_appointment=CANCEL_APPOINTMENT&reschedule_appointment=RESCHEDULE_APPOINTMENT&send_reminder=SEND_REMINDER&start_step=START_STEP&set_schedule=SET_SCHEDULE&price=PRICE&payment_min_amount=PAYMENT_MIN_AMOUNT&allow_cash_payment=ALLOW_CASH_PAYMENT&group_session=GROUP_SESSION&waiting_list=WAITING_LIST&client_instructions=CLIENT_INSTRUCTIONS&widget_message=WIDGET_MESSAGE&password=PASSWORD&active_from=ACTIVE_FROM&active_until=ACTIVE_UNTIL&active_interval_status=ACTIVE_INTERVAL_STATUS&status=STATUS&photo=PHOTO&active_rules=ACTIVE_RULES&tmp_default=TMP_DEFAULT'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": [
- {
- "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,
- "require_addon": 0,
- "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": [
- {
- "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
}
}
], - "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"
}
]
}Create a Service
Create a new service.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| 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 |
| 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. |
| require_addon | integer Default: 0 Enum: 0 1 If set to 1, requires at least one add-on (subservice) to be selected when booking this service. Only enforced if the service has linked add-ons. Uses global default from widget_settings unless service has active_rules=1. |
| 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 |
Array of objects The service can only be performed on the following times. The | |
Array of objects Example: "[object Object]" Links with locations and employees. The links property may contain more than one of the above structures: {"[EMPLOYEE_ID]" : {"[LOCATION_ID]":1}} | |
| 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 |
| 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 |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "name": "Default service",
- "company_id": 5678,
- "duration": 60,
- "description": "This service should be used in testing only",
- "auto_confirm": false,
- "is_subservice": false,
- "require_addon": 0,
- "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": [
- {
- "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
}
}
], - "links": {
- "13367": {
- "16982": 1,
- "19281": 0,
- "19387": 0,
- "19540": 0
}
}, - "price": 0,
- "payment_min_amount": 0,
- "allow_cash_payment": false,
- "group_session": 0,
- "waiting_list": 0,
- "client_instructions": "string",
- "widget_message": "string",
- "password": "string",
- "active_from": "2019-08-24",
- "active_until": "2019-08-24",
- "active_interval_status": true,
- "status": true,
- "active_rules": 1,
- "photo": "string"
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "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,
- "require_addon": 0,
- "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": [
- {
- "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
}
}
], - "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"
}
}Get a Service
Get the attributes of a specific service.
Authorizations:
path Parameters
| id required | integer <int64> Service id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location -g --request GET 'https://www.setster.com/api/v2/service/{id}?session_token=SESSION_TOKEN&id=ID'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": [
- {
- "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,
- "require_addon": 0,
- "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": [
- {
- "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
}
}
], - "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"
}
]
}Modify a Service
Modify the attributes of an existing service.
Authorizations:
path Parameters
| id required | integer <int64> Service id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| 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 |
| 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. |
| require_addon | integer Default: 0 Enum: 0 1 If set to 1, requires at least one add-on (subservice) to be selected when booking this service. Only enforced if the service has linked add-ons. Uses global default from widget_settings unless service has active_rules=1. |
| 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 |
Array of objects The service can only be performed on the following times. The | |
Array of objects Example: "[object Object]" Links with locations and employees. The links property may contain more than one of the above structures: {"[EMPLOYEE_ID]" : {"[LOCATION_ID]":1}} | |
| 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 |
| 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 |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "name": "Default service",
- "company_id": 5678,
- "duration": 60,
- "description": "This service should be used in testing only",
- "auto_confirm": false,
- "is_subservice": false,
- "require_addon": 0,
- "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": [
- {
- "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
}
}
], - "links": {
- "13367": {
- "16982": 1,
- "19281": 0,
- "19387": 0,
- "19540": 0
}
}, - "price": 0,
- "payment_min_amount": 0,
- "allow_cash_payment": false,
- "group_session": 0,
- "waiting_list": 0,
- "client_instructions": "string",
- "widget_message": "string",
- "password": "string",
- "active_from": "2019-08-24",
- "active_until": "2019-08-24",
- "active_interval_status": true,
- "status": true,
- "active_rules": 1,
- "photo": "string"
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "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,
- "require_addon": 0,
- "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": [
- {
- "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
}
}
], - "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"
}
}Delete a Service
Delete an existing service.
Authorizations:
path Parameters
| id required | integer <int64> Service id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location -g --request DELETE 'https://www.setster.com/api/v2/service/{id}?session_token=SESSION_TOKEN&id=ID'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": { }
}Upload a Service Photo
Add or update the image of a specific service.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| service | integer <int64> Service id |
Request Body schema: multipart/form-data
| photo | string <binary> |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request POST 'https://www.setster.com/api/v2/service/uploadPhoto?session_token=SESSION_TOKEN&service=SERVICE'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "upload_id": 32412,
- "file_name": "avatar.png",
- "file_location": "/admin/images/clients/"
}
}Delete a Service Photo
Delete the image of a specific service.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| service | integer <int64> Service id |
Request Body schema: application/json
| file_name required | string |
| service | integer Example: "2342" Service Id |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "file_name": "string",
- "service": 2342
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": null
}Update Services Sort Order
Change the sort order of the services in the list.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| id required | integer Example: "27864" Service id |
| ord required | integer Example: "3" The order number in the list |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
[- {
- "id": 27864,
- "ord": 3
}
]Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": null
}Setster saves each appointment with a timezone that is correlated to an internal Setster timezone ID. When creating an appointment, you can specify the timezone ID (client's time zone or location time zone), and the API response will include the timezone ID, timezone details, and the offset in seconds.
List Time Zones
Get a list of available Setster time zones.
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| reverse_caption | integer Default: 0 Get the caption with a different format |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/tz/list?session_token=SESSION_TOKEN&reverse_caption=REVERSE_CAPTION'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "property1": {
- "gmt": -240,
- "caption": "GMT -04:00 US/Canada/Eastern, Colombia, Peru (EDT)",
- "dbName": "US/Eastern",
- "short": "GMT -04:00",
- "friendly": "GMT-04:00"
}, - "property2": {
- "gmt": -240,
- "caption": "GMT -04:00 US/Canada/Eastern, Colombia, Peru (EDT)",
- "dbName": "US/Eastern",
- "short": "GMT -04:00",
- "friendly": "GMT-04:00"
}
}
}Get Time Zone Offset
Get the offset of a specific time zone.
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| id | integer Default: 553 The timezone id |
| time | integer Default: 1536583485 The timestamp at which the offset whould be calculated |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/tz/data?session_token=SESSION_TOKEN&id=ID&time=TIME'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "name": {
- "offset": 3600
}
}
}Webhooks Receive notifications with webhooks Setster offers webhooks to notify your application when an event happens within your account. Webhooks are especially useful for asynchronous events and building workflows within your application. For example, a new appointment is created and triggers a set of customer communications within your application.
List Webhooks
Get a list of created webhooks and their attributes.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
| target_url | string <uri> |
| active | integer Enum: 0 1 |
| verification_key | string |
| created_at | string <date-time> |
| updated_at | string <date-time> |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location --request GET 'https://www.setster.com/api/v2/subscribe?session_token=SESSION_TOKEN&target_url=TARGET_URL&active=ACTIVE&verification_key=VERIFICATION_KEY&created_at=CREATED_AT&updated_at=UPDATED_AT'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": [
- {
- "id": 13425,
- "company_id": 24232,
- "target_url": "",
- "events": [
- {
- "id": 13425,
- "event": "appointment.created",
- "active": 0,
- "created_at": "2019-08-24T14:15:22Z"
}
], - "active": 0,
- "verification_key": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}Create a Webhook
Create a new webhook.
Authorizations:
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| 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:
The " | |
| active | integer Default: 1 Enum: 0 1 |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "company_id": 24232,
- "target_url": "",
- "events": [
- "appointment.created",
- {
- "event": "appointment.rescheduled",
- "active": 0
}
], - "active": 0
}Response samples
- 201
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "id": 13425,
- "company_id": 24232,
- "target_url": "",
- "events": [
- {
- "id": 13425,
- "event": "appointment.created",
- "active": 0,
- "created_at": "2019-08-24T14:15:22Z"
}
], - "active": 0,
- "verification_key": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}Get a Webhook
Get the attributes of a specific webhook.
Authorizations:
path Parameters
| id required | integer <int64> WebHook id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location -g --request GET 'https://www.setster.com/api/v2/subscribe/{id}?session_token=SESSION_TOKEN&id=ID'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": [
- {
- "id": 13425,
- "company_id": 24232,
- "target_url": "",
- "events": [
- {
- "id": 13425,
- "event": "appointment.created",
- "active": 0,
- "created_at": "2019-08-24T14:15:22Z"
}
], - "active": 0,
- "verification_key": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}Modify a Webhook
Modify the attributes for an existing webhook.
Authorizations:
path Parameters
| id required | integer <int64> WebHook id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Request Body schema: application/json
| 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:
The " | |
| active | integer Default: 1 Enum: 0 1 |
Responses
Request samples
- Payload
- curl
- Node
- Java
- Ruby
- C#
{- "company_id": 24232,
- "target_url": "",
- "events": [
- "appointment.created",
- {
- "event": "appointment.rescheduled",
- "active": 0
}
], - "active": 0
}Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": {
- "id": 13425,
- "company_id": 24232,
- "target_url": "",
- "events": [
- {
- "id": 13425,
- "event": "appointment.created",
- "active": 0,
- "created_at": "2019-08-24T14:15:22Z"
}
], - "active": 0,
- "verification_key": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}Delete a Webhook
Delete an existing webhook.
Authorizations:
path Parameters
| id required | integer <int64> WebHook id |
query Parameters
| company_id required | integer <int64> Example: company_id=2345 The unique ID of the account. Account ID. |
Responses
Request samples
- curl
- Node
- Java
- Ruby
- C#
curl --location -g --request DELETE 'https://www.setster.com/api/v2/subscribe/{id}?session_token=SESSION_TOKEN&id=ID'
Response samples
- 200
{- "statusCode": 0,
- "statusDescriptions": "OK",
- "data": { }
}