{
  "openapi": "3.1.1",
  "info": {
    "title": "Online Booking",
    "version": "1.0.0",
    "termsOfService": "https://alteg.io/en/info/terms/",
    "license": {
      "name": "Altegio API Agreement",
      "url": "/en/api-license-agreement"
    },
    "description": "Public API for client-facing online booking integration.\nThis API enables third-party developers to embed online booking functionality into external platforms such as business catalogs, branded apps, and partner services.\n**Base URL:** `https://api.alteg.io/api`\n## Authentication\nAll requests require partner authorization via Bearer token in the HTTP header:\n``` Authorization: Bearer <partner_token> ```\nTo obtain a partner token, register in the [Altegio Marketplace](https://app.alteg.io/appstore/developers/1).\n## Rate Limits\n- 200 requests per minute per IP address - 5 requests per second per IP address"
  },
  "servers": [
    {
      "url": "https://api.alteg.io/api/v1",
      "description": "Production server"
    }
  ],
  "x-tagGroups": [
    {
      "name": "Public API",
      "tags": [
        "Authentication",
        "Online Booking",
        "Client Personal Cabinet"
      ]
    }
  ],
  "tags": [
    {
      "name": "Authentication",
      "description": "User authentication and verification endpoints for online booking"
    },
    {
      "name": "Online Booking",
      "description": "Endpoints for booking form, services, staff, availability, and appointment management"
    },
    {
      "name": "Client Personal Cabinet",
      "description": "Client account management and booking history"
    }
  ],
  "paths": {
    "/book_code/{location_id}": {
      "post": {
        "tags": [
          "Authentication B2C"
        ],
        "security": [
          {
            "BearerPartner": []
          }
        ],
        "summary": "Send SMS Verification Code",
        "description": "+ Request body\r\n    + phone (required, string, '+13155550175') - phone to which the code will be sent\r\n    + fullname (option, sring, `James`) - Client name",
        "operationId": "send_booking_verification_code",
        "parameters": [
          {
            "name": "location_id",
            "in": "path",
            "description": "location ID",
            "required": true,
            "schema": {
              "type": "number"
            },
            "example": 4564
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Bearer partner_token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/book_code_companyid_data_types_request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/book_code_companyid_data_type_response"
                },
                "example": {
                  "success": true,
                  "meta": {
                    "message": "Created"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/booking/auth": {
      "post": {
        "tags": [
          "Authentication B2C",
          "Authentication"
        ],
        "security": [],
        "summary": "Authorize Online Booking User",
        "description": "When a user of an online account changes their password, their API key will change and a new authorization will be required\r\n\r\n| Attribute | Type | Description |\r\n| ------------- | ------------- | ------------- |\r\n| login | string | The visitor's phone number in the format +13155550175, or their email address. |\r\n| password | string | Visitor password |",
        "operationId": "authorize_online_booking_user",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "e.g. application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "application/vnd.api.v2+json"
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Bearer partner_token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/auth_request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/booking_auth_response"
                },
                "example": {
                  "id": 123456,
                  "user_token": "wec23fh8cDfFV4432fc352456",
                  "name": "James Smith",
                  "phone": "+13155550175",
                  "login": "j.smith",
                  "email": "j.smith@example.com",
                  "avatar": "https://assets.alteg.io/general/0/01/123456789098765_12345678909876.png"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/user/auth": {
      "post": {
        "tags": [
          "Authentication B2C"
        ],
        "security": [],
        "summary": "Log in with phone number and code",
        "description": "To access both online and offline (e.g., phone-made) appointments, the user must log in by verifying their phone number. This is done by requesting a confirmation code to be sent via SMS using the \"SMS phone number verification code\" endpoint.",
        "operationId": "log_in_with_phone_number_and_code",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "e.g. application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "application/vnd.api.v2+json"
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Bearer partner_token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/auth_request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/user_auth_response"
                },
                "example": {
                  "user_token": "wec23fh8cDfFV4432fc352456"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/bookform/{id}": {
      "get": {
        "tags": [
          "Online Booking"
        ],
        "security": [
          {
            "BearerPartner": []
          }
        ],
        "summary": "Get Booking Form Configuration",
        "description": "Each Altegio client can create an unlimited number of Online Booking forms with different designs and booking scenarios.\r\n\r\nTypically, the ID of a booking form is embedded in the subdomain. For example: https://b123.alteg.io, where 123 is the booking form ID. This ID can be used to retrieve all necessary parameters for implementing Online Booking and to determine whether the booking applies to a specific location or a location chain.\r\n\r\nFor chain widgets, you will also need to call the [GET] /locations method with the company_id filter to retrieve the list of locations available for booking.\r\n\r\n\r\nThe object containing the Online Booking form settings includes the following fields:\r\n\r\n| Field | Type | Description |\r\n| ------------- | ------------- | ------------- |\r\n| steps | Array of objects | Booking form steps with custom settings |\r\n| style | object | Booking form design settings |\r\n| group_id | number | Location chain ID (0 - if the booking form is for a non-chain location) |\r\n| company_id | number | Location ID (always returned, used to get additional settings) |\r\n| phone_confirmation | boolean | Do I need to confirm the phone by SMS (if groupid = 0 (not a group form), otherwise look in the settings of each location separately)\r\n| language | string | Booking form language (code from langs array) |\r\n| langs | array of object | List of widget languages\r\n| comment_required | boolean | Whether the field with a comment within booking is required\r\n| google_analytics_id | string | Google Analytics ID\r\n| facebook_pixel_id | string | Facebook Pixel ID\r\n| sms_enabled | boolean | Is sending SMS available?\r\n| comment_input_name | string (optional) | Title for the field with a comment to the booking (if not set, the default value is used)\r\n| booking_notify_text | string (optional) | The text of the notification that is displayed (if set) at the step of entering contact data\r\n| is_show_privacy_policy | boolean | Whether it is necessary to display the text of the agreement on the personal data processing policy to the user\r\n| specialization_display_mode | number | Display the specialization or position of the team member. 0 - Specialization, 1 - Position\r\n\r\nThe steps array consists of objects that have the following fields:\r\n\r\n| Field | Type | Description | For what steps is specified |\r\n| ------------- | ------------- | ------------- | ------------- |\r\n| step | string | Step city/company/service/team member/datetime/contact/confirm |\r\n| title | string | Name of the step to display in the interface | For everyone |\r\n| number | number | What number should this step be displayed on (starting from 1) | For everyone |\r\n| default | string or number | The default value for this step, if set | For all but datetime |\r\n| hidden | boolean | Hide this step when booking or not | For everyone |\r\n| date_hidden | boolean | Hide this step when booking or not | For datetime |\r\n| time_hidden | boolean | Hide this step when booking or not | For datetime |\r\n| date_default | string | The default value for this step, if set | For datetime |\r\n| time_default | number | The default value for this step, if set | For datetime |\r\n\r\nThe style object has the following fields:\r\n\r\n| Field | Type | Description |\r\n| ------------- | ------------- | ------------- |\r\n| show header | boolean | Show header and menu or not |\r\n| logo | string | Path to logo image |\r\n| header_background | string | Path to subtitle background image |\r\n| menu_background | string | Path to menu background image |\r\n| primaryPalette | string | The main color of the form (all colors from the list: red, pink, purple, deep-purple, indigo, blue, light-blue, cyan, teal, green, light-green, lime, yellow, amber, orange, deep-orange, brown , grey, blue-grey, white, black) |\r\n| accentPalette | string | Form secondary color (subtitle semi-transparent cover) |\r\n| warnPalette | string | Booking form buttons color |\r\n| backgroundPalette | string | Booking form background color |",
        "operationId": "get_booking_form_config",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of thebooking form",
            "required": true,
            "schema": {
              "type": "number"
            },
            "example": 1
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "e.g. application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "application/vnd.api.v2+json"
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Bearer partner_token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/bookform_id_info_data_types"
                },
                "example": {
                  "success": true,
                  "data": {
                    "steps": [
                      {
                        "step": "master",
                        "title": "Choose a team member",
                        "num": 2,
                        "hidden": false,
                        "default": -1
                      },
                      {
                        "step": "service",
                        "title": "Choose a service",
                        "num": 1,
                        "hidden": true,
                        "default": 196
                      },
                      {
                        "step": "datetime",
                        "title": "Select session date and time",
                        "num": 3,
                        "hidden": false,
                        "date_hidden": false,
                        "time_hidden": false,
                        "date_default": "2026-09-21T23:00:00.000-05:00",
                        "time_default": 27900
                      },
                      {
                        "step": "contact",
                        "title": "Business Example",
                        "num": 3,
                        "hidden": false,
                        "default": 0
                      },
                      {
                        "step": "comfirm",
                        "title": "Business Example",
                        "num": 4,
                        "hidden": false,
                        "default": 0
                      }
                    ],
                    "style": {
                      "show_header": true,
                      "logo": "https://app.alteg.io/uploads/logo.png",
                      "header_background": "https://app.alteg.io/uploads/header.png",
                      "menu_background": "https://app.alteg.io/uploads/menu.png",
                      "main_color": "#FFCB00",
                      "secondary_color": "#999999",
                      "buttons_color": "#FFFFFF"
                    },
                    "group_id": 1,
                    "company_id": 1,
                    "phone_confirmation": false,
                    "lang": "en-US",
                    "langs": [
                      {
                        "id": 2,
                        "code": "en-US",
                        "title": "English"
                      },
                      {
                        "id": 4,
                        "code": "lv-LV",
                        "title": "Latviešu valoda"
                      },
                      {
                        "id": 5,
                        "code": "et-EE",
                        "title": "Eesti keel"
                      },
                      {
                        "id": 6,
                        "code": "lt-LT",
                        "title": "Lietuva"
                      },
                      {
                        "id": 7,
                        "code": "uk-UK",
                        "title": "Ukrainian"
                      },
                      {
                        "id": 8,
                        "code": "fr-FR",
                        "title": "Français"
                      },
                      {
                        "id": 9,
                        "code": "it-IT",
                        "title": "Italiano"
                      },
                      {
                        "id": 10,
                        "code": "es-ES",
                        "title": "Español"
                      },
                      {
                        "id": 13,
                        "code": "ka-KA",
                        "title": "ქართული"
                      },
                      {
                        "id": 14,
                        "code": "hy-AM",
                        "title": "Հայերեն"
                      },
                      {
                        "id": 15,
                        "code": "kk-KK",
                        "title": "Kazakh tili"
                      },
                      {
                        "id": 16,
                        "code": "hr-HR",
                        "title": "Hrvatski jezik"
                      },
                      {
                        "id": 17,
                        "code": "cs-CS",
                        "title": "český jazyk"
                      },
                      {
                        "id": 18,
                        "code": "ro-RO",
                        "title": "Limba Română"
                      },
                      {
                        "id": 19,
                        "code": "cn-CN",
                        "title": "中文"
                      },
                      {
                        "id": 20,
                        "code": "ar-AR",
                        "title": "العَرَبِيَّة"
                      },
                      {
                        "id": 21,
                        "code": "bg-BG",
                        "title": "Bulgarian"
                      },
                      {
                        "id": 22,
                        "code": "he-IL",
                        "title": "עברית"
                      },
                      {
                        "id": 23,
                        "code": "hu-HU",
                        "title": "Magyar nyelv"
                      },
                      {
                        "id": 24,
                        "code": "Lt-sr-SP",
                        "title": "Srpski jezik"
                      },
                      {
                        "id": 25,
                        "code": "sk-SK",
                        "title": "Slovenský jazyk"
                      },
                      {
                        "id": 26,
                        "code": "mn-MN",
                        "title": "Mongol hal"
                      },
                      {
                        "id": 27,
                        "code": "az-AZ",
                        "title": "Azərbaycan dili"
                      },
                      {
                        "id": 28,
                        "code": "pl-PL",
                        "title": "Polszczyzna"
                      },
                      {
                        "id": 30,
                        "code": "sl-SL",
                        "title": "Slòvēnskī"
                      }
                    ],
                    "comment_required": false,
                    "metrika_counter_id": 50217133,
                    "google_analytics_id": "UA-125358345-1",
                    "facebook_pixel_id": "2218788388343154",
                    "app_metrika_id": "46ab3b93-1bc6-457d-82f0-c1b51f39b01e",
                    "sms_enabled": true
                  },
                  "meta": []
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          }
        }
      }
    },
    "/i18n/{lang_code}": {
      "get": {
        "tags": [
          "Online Booking"
        ],
        "security": [
          {
            "BearerPartner": []
          }
        ],
        "summary": "Get Internationalization Options",
        "description": "Translation is available in one of the languages:\n- Latvian - 'lv-LV'\n- English - 'en-US'\n- Estonian - 'ee-EE'\n- Lithuanian - 'lt-LT'\n- German - 'de-DE'\n- Ukrainian - 'uk-UK'",
        "operationId": "get_i18n_options",
        "parameters": [
          {
            "name": "lang_code",
            "in": "path",
            "description": "Language code. One of the set 'lv-LV', 'en-US', 'ee-EE', 'lt-LT', 'de-DE', 'uk-UK'",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "en-US"
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "e.g. application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "application/vnd.api.v2+json"
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Bearer partner_token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Dynamic object containing translation strings for the booking form UI"
                },
                "example": {
                  "404": {
                    "not-found": "It seems that this page does not exist.",
                    "not-found-record": "Such an appointment does not exist.",
                    "go-home": "To main"
                  },
                  "action": {
                    "send": "send"
                  },
                  "tips": {
                    "terms": {
                      "prefix": "By clicking \"Submit\", you accept",
                      "of-use": "Terms of Use",
                      "personal-policy": "Privacy Policy"
                    },
                    "review-sent": "Review sent",
                    "your-mark": "your mark",
                    "leave-a-review": "Leave a review",
                    "leave-a-tip-to-a-specialist": "Leave a tip for a specialist",
                    "credited": "Tip credited",
                    "visit-amount": "Visit amount",
                    "will-be-written-off": "Will be written off",
                    "at-time": "v",
                    "rate-specialist-to-sent-feedback": "Rate a specialist to send feedback",
                    "title": "Tips",
                    "tips-required": "Please select a tip amount",
                    "review-or-tips-required": "It seems that there is nothing to send to a specialist yet",
                    "enter-sum": "Enter amount",
                    "custom-sum": "Own amount",
                    "cancel-tips": "Cancel tip",
                    "bad-sum": "Tipping must be indicated by the amount"
                  },
                  "payment-status": {
                    "payment-error": "Payment error. Try again",
                    "payment-redirect": "You should be directed to the payment system.",
                    "payment-config-error": "Error in setting up the payment system",
                    "contact-us-for-questions": "Contact us if you have any questions.",
                    "contacts": "Contacts",
                    "order-registered": "Application completed",
                    "order-paid": "Order has been paid",
                    "retry": "Repeat",
                    "order-created-successfully": "The order has been successfully created. Our representative will contact you to clarify the details.",
                    "order-is-being-processed": "Operation is being processed",
                    "get-payment-data": "Receiving payment data",
                    "transaction-number": "Transaction number",
                    "payment-transaction-info-1": "If you received a check, then the purchase was successfully completed. Check the email address you provided when purchasing.",
                    "payment-transaction-info-2": "    If the receipt did not arrive, please try again or contact us using the contacts below.",
                    "order-number-info": "Provide this number at the time of your visit to redeem your certificate or pass."
                  },
                  "user-data-form": {
                    "loyalty-phone-tip": "Provide this number at the time of your visit to redeem your certificate or pass.",
                    "name-required": "Name required",
                    "email-required": "Email required",
                    "loyalty-email": "E-mail for receipt and purchase",
                    "agreement-link": "with the terms of the agreement",
                    "data-processing-link": "data processing",
                    "terms-prefix": "By clicking on the button you agree",
                    "proceed": "Checkout",
                    "pay": "Pay",
                    "phone-code": "The code",
                    "phone": "Telephone",
                    "invalid-phone": "Invalid number"
                  },
                  "and": "and",
                  "terms-of-agreement": "Terms of agreement",
                  "data-processing": "Data processing",
                  "license-agreement": "License agreement",
                  "personal-data": "Your data",
                  "buy-for": "Buy for",
                  "group_booking": {
                    "personal_booking": "Individual services",
                    "group_booking": "Group events",
                    "choose_group_event": "Choose an event",
                    "group_events_available": "Registration available for group events",
                    "places": "Places",
                    "group_events_is_not_available": "There are no group events for the selected day",
                    "group_events_is_not_available_filial": "Group events are not configured in this location yet",
                    "repeat": "Sign up again",
                    "duration": "Duration",
                    "no_space": "No places",
                    "not_found": "There are no events for the selected filters. Try changing your filter options"
                  },
                  "geo": {
                    "geo_timeout_error": "Unable to determine your location. You may be out of GPS coverage",
                    "geo_timeout_error_android": "Unable to determine your location. You may be out of GPS coverage. If you have geolocation disabled, you need to enable it and restart the application.",
                    "geo_access_error": "No access to your location. The application cannot show locations near you. If you have geolocation disabled, you need to enable it and restart the application."
                  },
                  "tooltips": {
                    "change_filial": "Now you will always start recording from this branch. You can change the location through the menu item",
                    "change_filial_back_button": "You can also use the back button to change location"
                  },
                  "prepaid": {
                    "required": "prepayment required",
                    "allowed": "prepayment is optional",
                    "prepaid_sum": "To pay online:",
                    "postpaid_sum": "Payment on the spot:"
                  },
                  "back": "Back",
                  "backCity": "Cities",
                  "backFilials": "Locations",
                  "backRecordType": "Record Type",
                  "filials": "Locations",
                  "my_profile": "Cabinet",
                  "about_us": "About Us",
                  "record": {
                    "show_details": "View details",
                    "is_canceled": "Recording canceled",
                    "is_canceled_success": "Recording canceled successfully",
                    "record": "Recording",
                    "place": "Place",
                    "master": "Team Member",
                    "service": "Service",
                    "services": "Services",
                    "date": "date",
                    "past": "Passed",
                    "through": "Across",
                    "time": "Time",
                    "clients_count": "Number of seats:",
                    "book_visit": "Make a visit",
                    "add_service": "+ Add service",
                    "add_master": "+ Add Team Member",
                    "add_datetime": "+ Add date and time",
                    "cancel_record": "Cancel appointment",
                    "cancel_record_warning": "Once canceled, the recording will not be recoverable.",
                    "confirm_cancel_record": "Are you sure you want to cancel the recording?",
                    "error_cancel_record": "You cannot unsubscribe",
                    "error_cancel_record_new1": "It is not possible to cancel an appointment online. Please contact the administrator.",
                    "error_cancel_record_new2_1": "Unable to cancel online booking",
                    "error_cancel_record_new2_2": "before visiting. Please contact the administrator.",
                    "add_to_google_calendar": "Add to google calendar",
                    "booking_success": "You have successfully signed up!",
                    "create_new_record": "Sign up more",
                    "future_records": "Upcoming sessions",
                    "past_records": "Past",
                    "change_record_time": "Transfer appointment",
                    "error_change_record_time": "Unable to reschedule online. Please contact the administrator.",
                    "error_change_record_time2_1": "Unable to reschedule online appointment",
                    "error_change_record_time2_2": "before visiting. Please contact the administrator.",
                    "selected_services": "Selected services",
                    "calculate_services": "Services available...",
                    "change_record_fail": "Error transferring recording, please try another time",
                    "continue_booking": "Continue recording",
                    "go_to_registration": "Go to Altegio website",
                    "repeat": "Repeat recording",
                    "is_deleted": "Your appointment has been deleted."
                  },
                  "at": "v",
                  "on": "on the",
                  "h": "h.",
                  "m": "min.",
                  "from": "from",
                  "dist_m": "m",
                  "dist_km": "km",
                  "yesterday": "yesterday",
                  "today": "today",
                  "tomorrow": "tomorrow",
                  "Close": "close",
                  "Yes": "Yes",
                  "No": "Not",
                  "refresh": "Refresh",
                  "online_record_disabled": "Online registration is disabled. <br> We apologize for the inconvenience caused.",
                  "online_record_disabled_long_text": "Online registration is temporarily unavailable. You can still manage your online records in your account, transfer them and delete them.",
                  "address": {
                    "about": "About location",
                    "address": "The address",
                    "phone": "Telephone",
                    "phones": "Phones",
                    "schedule": "Working hours",
                    "site": "Site",
                    "date_and_time": "date and time",
                    "photos": "Photos",
                    "details": "More about the location"
                  },
                  "common": {
                    "information": "information",
                    "reviews": "reviews",
                    "contacts": "contacts"
                  },
                  "notification": {
                    "your_city": "What is your city <%- city_name %>?",
                    "yes_my_city": "Yes, this is my city",
                    "no_my_city": "No, choose a city",
                    "read_all": "Read",
                    "delete_all": "Delete",
                    "deleted_record": "Deleting an appointment",
                    "record": "Recording",
                    "news": "news",
                    "review": "Feedback about the team member",
                    "notify": "Notification",
                    "sent": "Sent"
                  },
                  "header": {
                    "loyalty_cards": "Loyalty Cards",
                    "widget_settings": "Widget settings",
                    "settings": "Settings",
                    "select_town": "Choose city",
                    "select_company": "Choose location",
                    "select_date": "Date picker",
                    "select_master": "Team Member selection",
                    "select_time": "Timing",
                    "select_service": "Service selection",
                    "input_personal": "Entering contact details",
                    "online_record": "Online appointment",
                    "selection_of": "Choice",
                    "contacts_form": "Registration",
                    "record_created": "Post created!",
                    "login": "entrance",
                    "profile": "Personal Area",
                    "my_records": "My notes",
                    "record_create_disabled": "Online registration is temporarily unavailable.",
                    "master-info": "About Team Member",
                    "notification": "Notifications",
                    "my_notifications": "My notifications",
                    "none_notifications": "No notifications",
                    "cart": "Proof of payment",
                    "change_record": "Record transfer",
                    "you_booking": "Your order",
                    "you_data": "Your data",
                    "record": "Recording",
                    "actions": "Actions",
                    "cancel-record": "Cancel recording",
                    "booking_again": "Sign up again",
                    "choose_time": "Pick a time",
                    "choose_staff": "Choose a team member",
                    "about_service": "About the service",
                    "records": "Entries",
                    "confirmation": "Confirmation"
                  },
                  "loyalty": {
                    "empty-list": "There is nothing here yet",
                    "points": {
                      "nominative": "score",
                      "genitive": "points",
                      "plural-genitive": "points"
                    },
                    "no_cards": "You don't have any cards.",
                    "no_certificate": "You do not have any certificate.",
                    "no_subscription": "You don't have any subscription.",
                    "discount": "discount",
                    "cashback": "cashback",
                    "paid_amount": "Paid",
                    "sold_amount": "Sales",
                    "visit_count": "Visits",
                    "balance": "Accumulated (cashback)",
                    "certificate": {
                      "services-includes": "What's included",
                      "no-restrictions": "No limits",
                      "restrictions-only-services": "All services except goods",
                      "any-goods": "Any goods",
                      "without-goods": "Items not included",
                      "without-services": "Services not included",
                      "validity": "Validity",
                      "validity-without-restrictions": "No expiration date",
                      "validity-till": "Before",
                      "validity-after-purchase": "since purchase",
                      "use-type": "Usage",
                      "use-type-multiple": "many times",
                      "use-type-single": "once",
                      "where-to-use": "Where to use?",
                      "where-to-use-show-more": "Show more",
                      "where-to-use-all-group": "All over the chain",
                      "allow-to-freeze": "Freezing option",
                      "title": "Certificate",
                      "one-off-use": "Disposable",
                      "multi-use": "reusable",
                      "denomination": "Denomination",
                      "balance": "Remainder"
                    },
                    "subscription": {
                      "validity-without-restrictions": "no limit on the number of days",
                      "title": "Subscription"
                    },
                    "subscriptions": {
                      "all-services": "(all services)",
                      "from": "from",
                      "valid_until": "Valid until",
                      "valid_unlimited": "Validity is not limited",
                      "unused": "Subscription has not yet been used",
                      "online_sale_button_text": "Buy a certificate or subscription"
                    },
                    "programs": {
                      "item_type_id": {
                        "any_services_any_goods": "To all services and goods",
                        "any_service_no_goods": "For any service",
                        "no_services_any_goods": "For any goods",
                        "custom_services_no_goods": "For some services",
                        "custom_services_any_goods": "For some services and any goods",
                        "no_services_custom_goods": "For some products",
                        "any_services_custom_goods": "For all services and some products",
                        "custom_services_custom_goods": "For some services and products",
                        "no_services_no_goods": "Not for services; not for goods"
                      },
                      "determined_action_settings": "Determined by promotion settings"
                    }
                  },
                  "save": "Save",
                  "proceed": "Continue",
                  "profile": {
                    "name": {
                      "saved": "Username changed to",
                      "not_known": "Name unknown"
                    },
                    "noFutureRecords": "You have no upcoming sessions",
                    "noPastRecords": "You have no past sessions",
                    "phone": {
                      "confirm": "Verify phone"
                    },
                    "email": {
                      "info": "A confirmation email has been sent to you at"
                    },
                    "password": {
                      "info": "Password must contain at least eight characters",
                      "badPassword": "Wrong password specified",
                      "current": "Current Password",
                      "new": "New password",
                      "invalidTooShort": "",
                      "invalidNoDigit": "",
                      "invalidNoCapital": "",
                      "invalidNoSymbol": ""
                    },
                    "error": "An error occurred while saving data",
                    "saved": "Changes to your personal data are saved",
                    "contactsDetails": "Contact details",
                    "your_records": "Your appointments at the location."
                  },
                  "registration": {
                    "registration": "registration",
                    "form": {
                      "name": "Your name",
                      "company_title": "Company name",
                      "i_know_promo": "I know promo code",
                      "confirm_oferta_1": "I accept the terms",
                      "confirm_oferta_2": "contract-offers",
                      "submit": "Register",
                      "promo": "promo code",
                      "unknownError": "A system error has occurred, please try again later"
                    }
                  },
                  "menu": {
                    "account": "Personal data",
                    "change_filial": "Change Location",
                    "change_city": "Change city",
                    "online_record": "Online booking",
                    "about": "About location",
                    "change_lang": "Change the language",
                    "hide_menu": "Hide menu",
                    "login": "To come in",
                    "myRecords": "My notes",
                    "on-line": "Online appointment",
                    "logout": "Log off",
                    "my": "Personal Area",
                    "favorite": "Favorites",
                    "change_password": "password change",
                    "header": "Menu",
                    "profile": "Profile",
                    "loyalty": "My cards",
                    "loyalty_subscriptions": "Subscriptions",
                    "loyalty_certificates": "Certificates"
                  },
                  "footer": {
                    "worked_on": "Works for",
                    "worked_on_company_name": "Altegio"
                  },
                  "city": {
                    "town_abbreviation": "G.",
                    "service_count": "Number of locations:",
                    "select_filial": "Location selection",
                    "not_found_cities": "No cities found for your request",
                    "search_cities": "Find cities",
                    "affiliate": {
                      "1": "location",
                      "2": "location",
                      "3": "locations"
                    }
                  },
                  "company": {
                    "list": "List",
                    "on_map": "On the map",
                    "no_companies_text_1": "You do not have any active location. To set up locations, go to",
                    "lk": "Personal account Altegio",
                    "no_companies_text_2": "After setting, press the button",
                    "no_companies": "No companies",
                    "near_session": "The closest available recording session is:",
                    "active_master": "Active team members:",
                    "at_o_clock": "v",
                    "find_companies": "Find locations",
                    "not_found_companies": "No locations found for your search",
                    "look_at_the_map": "View on the map"
                  },
                  "steps": {
                    "date_and_time": "date and time",
                    "staff": {
                      "nominative": "Team Member",
                      "genitive": "team member"
                    },
                    "service": "Service",
                    "time": "Time"
                  },
                  "master": {
                    "master": "Team Member",
                    "skip_select_master": "Skip team member selection",
                    "skip_select": "Skip selection",
                    "near_session": "Upcoming sessions",
                    "nearest_time": "Next time to sign up",
                    "no_record": "There are no free sessions for the selected day",
                    "no_record_new": "There is no free time for this date. Choose another date or another team member",
                    "no_master": "The team member was fired or no longer works at this location",
                    "any_master": "Irrelevant",
                    "record_is_available": "You can sign up",
                    "reviews": {
                      "nominative": "review",
                      "genitive": "recall",
                      "plural-genitive": "reviews"
                    },
                    "prepaid": {
                      "forbidden": "No prepayment required",
                      "allowed": "Prepayment possible",
                      "required": "Prepayment required"
                    }
                  },
                  "cart": {
                    "title": "Services selected for payment",
                    "confirm": "Confirm Appointment",
                    "go-to-pay": "Proceed to checkout",
                    "confirmed": "Appointment Paid",
                    "pay-success": "Payment was successful!"
                  },
                  "reviews": {
                    "cancelAddReview": "Cancel",
                    "later": "Rate later",
                    "addReview": "Leave feedback",
                    "yourReviewMark": "your mark",
                    "reviewFieldLabelText": "your feedback",
                    "reviewTitle": "Please rate the quality of the application",
                    "reviewMessage": "Write suggestions for improvements",
                    "reviewRequestStoreTitle": "Would you like to rate the store?",
                    "reviewButton": "Estimate",
                    "thanksForReview": "Thanks for the feedback"
                  },
                  "date": {
                    "day_of": "Day off",
                    "no_record": "Working, no record",
                    "have_record": "Working, there is a record",
                    "by_month_num": {
                      "1": "January",
                      "2": "February",
                      "3": "March",
                      "4": "April",
                      "5": "May",
                      "6": "June",
                      "7": "July",
                      "10": "October",
                      "11": "November",
                      "12": "December",
                      "08": "August",
                      "09": "September"
                    },
                    "by_month_short": {
                      "Jan": "January",
                      "Feb": "February",
                      "March": "Martha",
                      "Mar": "Martha",
                      "Apr": "April",
                      "May": "May",
                      "Jun": "June",
                      "Jul": "July",
                      "Aug": "august",
                      "Sep": "September",
                      "Oct": "October",
                      "Nov": "November",
                      "Dec": "December"
                    }
                  },
                  "time": {
                    "hourCased": {
                      "nominative": "hour",
                      "genitive": "hours",
                      "plural-genitive": "hours"
                    },
                    "weekCased": {
                      "nominative": "a week",
                      "genitive": "weeks",
                      "plural-genitive": "weeks"
                    },
                    "monthCased": {
                      "nominative": "month",
                      "genitive": "months",
                      "plural-genitive": "months"
                    },
                    "yearCased": {
                      "nominative": "year",
                      "genitive": "of the year",
                      "plural-genitive": "years"
                    },
                    "dayCased": {
                      "nominative": "day",
                      "genitive": "days",
                      "plural-genitive": "days"
                    },
                    "minuteCased": {
                      "nominative": "minute",
                      "genitive": "minutes",
                      "accusative": "minute",
                      "plural-genitive": "minutes"
                    },
                    "secondCased": {
                      "nominative": "second",
                      "genitive": "seconds",
                      "accusative": "give me a sec",
                      "plural-genitive": "seconds"
                    },
                    "at_o_clock": "v",
                    "noTimes": "There are no free sessions for the selected day",
                    "the_part_of_day": {
                      "morning": "Morning",
                      "day": "Day",
                      "evening": "Evening"
                    },
                    "by_week_day": {
                      "Mon": "Mon",
                      "Tue": "Tue",
                      "Wed": "Wed",
                      "Thu": "Thu",
                      "Fri": "Fri",
                      "Sat": "Sat",
                      "Sun": "Sun"
                    },
                    "by_full_week_day": {
                      "Monday": "Monday",
                      "Tuesday": "Tuesday",
                      "Wednesday": "Wednesday",
                      "Thursday": "Thursday",
                      "Friday": "Friday",
                      "Saturday": "Saturday",
                      "Sunday": "Sunday"
                    }
                  },
                  "service": {
                    "selected": "Selected",
                    "selected_service_count": "Selected services:",
                    "noServicesAndEvents": "No promotions or services found for your search",
                    "noMoreServices": "There are no services that can be booked together with the selected services",
                    "noMoreService": "There are no services that can be booked together with the selected service",
                    "search": "Search...",
                    "sale": "Stock",
                    "services": "Services",
                    "add": "Add a service",
                    "add_short": "Add",
                    "currency_short": "R.",
                    "services_pref": {
                      "1": "service",
                      "2": "services",
                      "3": "services"
                    },
                    "order_on": "Order for",
                    "price": "price",
                    "price_not_available": "Price not specified",
                    "price_from": "from",
                    "price_to": "before",
                    "unavailable_service": "no longer available for online registration. Would you like to choose another?",
                    "unavailable_services": "are no longer available for online booking. Would you like to choose others?"
                  },
                  "confirm": {
                    "confirm": "Sign up",
                    "show_order_details": "View order details",
                    "order_details": "Order Details",
                    "smsNotify": "Reminder",
                    "dontSend": "Do not send",
                    "order_on": "Service order",
                    "service_sale": "Promotion Services",
                    "license_text": "Duis placerat lectus et justo mollis, nec sodales orci congue. Vestibulum semper non urna ac suscipit. Vestibulum tempor, ligula id laoreet hendrerit, massa augue iaculis magna, sit amet dapibus tortor ligula non nibh.",
                    "accept": "By clicking the \"Register\" button, you agree to",
                    "i_accept": "I accept",
                    "i_agree": "I agree",
                    "accept_inline": "By clicking the \"Register\" button, you agree",
                    "accept_personal_data_inline": "processing of personal data",
                    "and_accept": "and accept",
                    "terms_of_agreement": "terms of the user agreement",
                    "terms_of_agreement_inline": "user agreement terms",
                    "how_my_personal_data_will_be_processed": "how my personal data will be processed",
                    "first_name": "Name",
                    "phone": "Telephone",
                    "will_be_used_to_confirm": "Will be used for confirmation",
                    "comment": "A comment",
                    "email": "Email",
                    "recording": "Sign up",
                    "code_and_phone_num": "Code and phone number",
                    "phone_confirm_short": "Confirm number",
                    "phone_already_exists": "The specified number is already in use.",
                    "phone_confirm": "Verify phone number",
                    "phone_confirm_button": "Confirm",
                    "defaultError": "System error:",
                    "you_want_to_book": "Do you want to enroll",
                    "your_master": "your team member",
                    "waiting_for_you_at_the_address": "We are waiting for you at",
                    "untilVisit": {
                      "postfix": "before the visit",
                      "prefix": "Per"
                    },
                    "orderErrorsActions": {
                      "changeService": "Select other services",
                      "changeTime": "Choose another time",
                      "changeRecord": "Edit Appointment",
                      "deleteRecord": "Delete Appointment"
                    },
                    "orderErrors": {
                      "unknown": "incorrect recording parameters",
                      "server": "something went wrong, please try again later",
                      "code_400": "invalid email",
                      "code_404": "incorrect recording parameters",
                      "code_422": "incorrect recording parameters",
                      "code_437": "time overlap with another visit",
                      "code_433": "it is not possible to make an appointment at the selected time",
                      "code_436": "no team members available for appointment",
                      "code_438": "Unable to sign up for selected services",
                      "code_501": "Unknown error",
                      "bigLetter": {
                        "unknown": "Incorrect recording parameters",
                        "server": "Something went wrong, please try again later",
                        "code_400": "Incorrect email",
                        "code_404": "Incorrect recording parameters",
                        "code_422": "Incorrect recording parameters",
                        "code_437": "Time overlap with another visit",
                        "code_433": "Unable to book at the selected time",
                        "code_436": "No team members available for recording",
                        "code_438": "Unable to sign up for selected services",
                        "code_501": "Unknown error"
                      }
                    },
                    "errors": {
                      "name": {
                        "required": "Enter your name"
                      },
                      "company": {
                        "required": "Enter location name"
                      },
                      "phone": {
                        "required": "Enter phone",
                        "incorrect": "Wrong number"
                      },
                      "email": {
                        "required": "Enter email",
                        "invalid": "Incorrect email format"
                      },
                      "agreement": {
                        "required": "You must accept the user agreement"
                      },
                      "agreement_privacy_and_terms_of_use": {
                        "required": "To continue, you must accept the user agreement, as well as agree to the processing of personal data"
                      },
                      "comment_default": {
                        "required": "Enter a comment"
                      },
                      "comment": {
                        "required": "Fill in the field"
                      },
                      "code": {
                        "incorrect": "Invalid code from SMS"
                      }
                    }
                  },
                  "login": {
                    "login": "entrance",
                    "sms_auth": "SMS authorization",
                    "input_code_confirm": "Enter the code received by SMS to the number",
                    "input_phone_num": "Enter your phone number, we will send an SMS to it with an access code to your personal account",
                    "input_login_and_password": "If you already have a username and password, enter them below",
                    "code_confirm": "confirmation code",
                    "come_in": "To come in",
                    "sms_not_send_with_colon": "If the SMS did not arrive, you can request a second code via:",
                    "sms_not_send": "If the SMS did not arrive, you can request a second code via",
                    "sms_not_send_next_try": "If the SMS did not arrive, you can",
                    "request_new_sms_code": "Request code again",
                    "change_phone_num": "Change phone number",
                    "get_code": "to get the code",
                    "or": "or",
                    "authorized_as": "You are logged in as",
                    "come_in_with_login_and_pass": "Log in with username and password",
                    "phone_or_email": "Phone or email",
                    "pass": "Password",
                    "come_in_with_sms_authorise": "Log in via SMS authorization",
                    "errors": {
                      "incorrect_login_password": "There is no user with this username or password",
                      "undefined_error": "A system error has occurred, please try logging in later"
                    }
                  },
                  "Jan": "January",
                  "Feb": "February",
                  "March": "Martha",
                  "Mar": "Martha",
                  "Apr": "April",
                  "May": "May",
                  "Jun": "June",
                  "Jul": "July",
                  "Aug": "august",
                  "Sep": "September",
                  "Oct": "October",
                  "Nov": "november",
                  "Dec": "December",
                  "activity": {
                    "places_left": "Remaining places",
                    "filters": {
                      "select": "Select filters",
                      "reset": "Reset",
                      "apply": "Apply"
                    }
                  },
                  "button": {
                    "select": "Select",
                    "select_time": "Choose time",
                    "all_right": "That's right",
                    "get_sms": "Receive SMS",
                    "back": "Return",
                    "add_more": "Add more",
                    "remove-from-record": "Remove from order",
                    "continue": "Continue",
                    "confirm": "Confirm",
                    "canceling": "Cancel",
                    "more_reviews": "More reviews"
                  },
                  "landscape": "It will be more convenient if you turn the device vertically"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          }
        }
      }
    },
    "/book_services/{location_id}": {
      "get": {
        "tags": [
          "Online Booking"
        ],
        "security": [
          {
            "BearerPartner": []
          }
        ],
        "summary": "Get Services Available for Booking",
        "description": "The object of services available for booking has the following fields:\n\n| Field | Type | Description |\n| ------------- | ------------- | ------------- |\n| categories | array of objects | Array of service categories (you can't book a category) |\n| services | array of objects | Services available for booking by category |\n\nAn object from the categories array, has the following fields:\n\n| Field | Type | Description |\n| ------------- | ------------- | ------------- |\n| id | number | Category ID |\n| title | string | Category name |\n| gender | number | Category belonging to gender (1 - male, 2 - female, 0 - not specified) |\n| weight | number | Category weight. Categories are sorted by weight, heavier ones first |\n| api_id | string | External Category ID |\n\nAn object from the services array, has the following fields:\n\n| Field | Type | Description |\n| ------------- | ------------- | ------------- |\n| id | number | Service ID |\n| title | string | Service name |\n| category_id | number | Identifier of the category to which the service belongs |\n| weight | number | Category weight. Services are sorted by weight, heavier ones first |\n| price_min | number | The minimum cost of the service |\n| price_max | number | Maximum cost of the service |\n| discount | number | Service discount |\n| comment | string | Comment on the service |\n| active | number | Is the service active |\n| prepaid | string | Online payment status |\n| gender | number | Gender for which the service is provided |\n| session_length | number | Service duration in seconds (only if filter by team member is set) |\n| image | string | Image services |\n\n\nIf you need to get the services provided by a specific team member, then you need to use the filter by team member.\nThe following filters are available:\n+ staff_id: team member ID. If you need services that only the selected team member provides\n+ datetime: date (in iso8601 format). Specifies the desired appointment date. Use this parameter to retrieve services that can be booked with the selected team member on that specific date.\n+ service_ids: An array of service IDs. If a team member is already selected and the time and service(s) are part of an existing appointment, this parameter should be used to select an additional service.",
        "operationId": "get_services_available_for_booking",
        "parameters": [
          {
            "name": "location_id",
            "in": "path",
            "description": "location ID",
            "required": true,
            "schema": {
              "type": "number"
            },
            "example": 4564
          },
          {
            "name": "staff_id",
            "in": "query",
            "description": "team member ID. Filter by team member ID\nDefault: 0\n",
            "schema": {
              "type": "number"
            },
            "example": 0
          },
          {
            "name": "datetime",
            "in": "query",
            "description": "date (in iso8601 format). Filter by service booking date (for example '2005-09-09T18:30')\nDefault: ''\n",
            "schema": {
              "type": "string"
            },
            "example": "2026-09-09T18:30"
          },
          {
            "name": "service_ids[]",
            "in": "query",
            "description": "Service ID.\nFilter by the list of identifiers of already selected (within one appointment) services. It makes sense if a filter by team member and date is set.\n",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "number"
              }
            }
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "e.g. application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "application/vnd.api.v2+json"
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Bearer partner_token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/book_services_companyid_data_types"
                },
                "example": {
                  "success": true,
                  "data": {
                    "events": [],
                    "services": [
                      {
                        "id": 1896208,
                        "title": "hair wash",
                        "category_id": 1895571,
                        "price_min": 0,
                        "price_max": 0,
                        "discount": 0,
                        "comment": "",
                        "weight": 0,
                        "active": 0,
                        "gender": 0,
                        "image": "",
                        "prepaid": "forbidden",
                        "seance_length": 3600
                      },
                      {
                        "id": 1896303,
                        "title": "Coloring",
                        "category_id": 1895574,
                        "price_min": 0,
                        "price_max": 0,
                        "discount": 0,
                        "comment": "",
                        "weight": 0,
                        "active": 0,
                        "gender": 0,
                        "image": "",
                        "prepaid": "forbidden",
                        "seance_length": 3600
                      }
                    ],
                    "category": [
                      {
                        "id": 1895571,
                        "title": "Hair care",
                        "gender": 0,
                        "api_id": 0,
                        "weight": 60
                      },
                      {
                        "id": 1895574,
                        "title": "Hair coloring",
                        "gender": 0,
                        "api_id": 0,
                        "weight": 7
                      }
                    ]
                  },
                  "meta": []
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          }
        }
      }
    },
    "/book_staff/{location_id}": {
      "get": {
        "tags": [
          "Online Booking"
        ],
        "security": [
          {
            "BearerPartner": []
          }
        ],
        "summary": "Get Team Members Available for Booking",
        "description": "Each object from the array of team members available for booking has the following fields:\n\n| Field | Type | Description |\n| ------------- | ------------- | ------------- |\n| id | number | team member ID |\n| name | string | team member name |\n| specialization | string | team member specialization |\n| position | object | team member position |\n| bookable | boolean | Does the team member have sessions available for booking |\n| weight | number | team member weight. When withdrawing, team members are sorted by weight, heavier first |\n| show_rating | number | Whether to show team member's rating (1 - show, 0 - don't show) |\n| rating | number | team member rating |\n| votes_count | number | Number of votes rated team member |\n| comments_count | number | Number of comments to a team member |\n| avatar | string | Path to team member avatar file |\n| information | string | Additional information about the team member (HTML format) |\n| session_date | string | Date of the next day that there are available sessions (only for bookable = true) |\n\n\nThe following filters are available:\n\n+ service_ids: Array of service IDs. If you need team members who provide only the selected service\n+ datetime: date (in iso8601 format). If you need team members who have sessions for the specified service at the specified time",
        "operationId": "get_team_members_available_for_booking",
        "parameters": [
          {
            "name": "location_id",
            "in": "path",
            "description": "location ID",
            "required": true,
            "schema": {
              "type": "number"
            },
            "example": 4564
          },
          {
            "name": "service_ids[]",
            "in": "query",
            "description": "Service ID.\nFilter by the list of service identifiers\n",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "number"
              }
            }
          },
          {
            "name": "datetime",
            "in": "query",
            "description": "date in iso8601 format.\nFilter by service booking date (for example '2005-09-09T18:30')\n",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "e.g. application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "application/vnd.api.v2+json"
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Bearer partner_token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/book_staff_companyid_data_types"
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "id": 16,
                      "name": "James",
                      "bookable": true,
                      "specialization": "Paramedic",
                      "position": {
                        "id": 1,
                        "title": "Administrator"
                      },
                      "show_rating": 1,
                      "rating": 3,
                      "votes_count": 1,
                      "avatar": "https://app.alteg.io/images/no-master.png",
                      "comments_count": 0,
                      "weight": 11,
                      "information": "<span></span>",
                      "seance_date": "2026-09-21",
                      "seances": []
                    },
                    {
                      "id": 32,
                      "name": "Peter",
                      "bookable": false,
                      "specialization": "Therapist",
                      "position": [],
                      "show_rating": 1,
                      "rating": 4,
                      "votes_count": 1,
                      "avatar": "https://app.alteg.io/images/no-master.png",
                      "comments_count": 0,
                      "weight": 8,
                      "information": "<span></span>"
                    }
                  ],
                  "meta": []
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          }
        }
      }
    },
    "/book_staff_seances/{location_id}/{team_member_id}": {
      "get": {
        "tags": [
          "Online Booking"
        ],
        "security": [
          {
            "BearerPartner": []
          }
        ],
        "summary": "Get Nearest Available Time Slots for Team Member",
        "description": "the team member's nearest sessions object has the following fields:\n\n| Field | Type | Description |\n| ------------- | ------------- | ------------- |\n| session_date | string | Next date with available sessions |\n| sessions | array | List of available sessions |\n\n\nThe following filters are available:\n\n+ service_ids: Array of service IDs. If you need sessions, when can you book these services\n+ datetime: date (in iso8601 format) for which you want to get the next sessions",
        "operationId": "get_nearest_time_slots",
        "parameters": [
          {
            "name": "location_id",
            "in": "path",
            "description": "location ID",
            "required": true,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "team_member_id",
            "in": "path",
            "description": "team member ID",
            "required": true,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "service_ids[]",
            "in": "query",
            "description": "Service ID.\nFilter by the list of service identifiers\n",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "number"
              }
            }
          },
          {
            "name": "datetime",
            "in": "query",
            "description": "date in iso8601 format.\nFilter by date\n",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "e.g. application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "application/vnd.api.v2+json"
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/book_staff_seances_companyid_staffid_data_types"
                },
                "example": {
                  "success": true,
                  "data": {
                    "seance_date": "2026-09-21",
                    "seances": [
                      {
                        "time": "10:00",
                        "seance_length": 3600,
                        "datetime": "2026-09-21T23:00:00.000-05:00"
                      },
                      {
                        "time": "10:15",
                        "seance_length": 3600,
                        "datetime": "2026-09-21T23:00:00.000-05:00"
                      },
                      {
                        "time": "10:30",
                        "seance_length": 3600,
                        "datetime": "2026-09-21T23:00:00.000-05:00"
                      },
                      {
                        "time": "10:45",
                        "seance_length": 3600,
                        "datetime": "2026-09-21T23:00:00.000-05:00"
                      },
                      {
                        "time": "11:00",
                        "seance_length": 3600,
                        "datetime": "2026-09-21T23:00:00.000-05:00"
                      }
                    ]
                  },
                  "meta": []
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          }
        }
      }
    },
    "/book_dates/{location_id}": {
      "get": {
        "tags": [
          "Online Booking"
        ],
        "security": [
          {
            "BearerPartner": []
          }
        ],
        "summary": "Get Dates Available for Booking",
        "description": "The dates available for booking object has the following fields:\n\n| Field | Type | Description |\n| ------------- | ------------- | ------------- |\n| working_days | array of working days grouped by month | Working days of a team member/organization |\n| working_dates | array of dates | An array of dates when the team member/organization works |\n| booking_days | array of days when there are free sessions | Array of days that are available for booking for the specified services |\n| booking_dates | array of dates | An array of dates when there are free sessions for the service to the selected team member/organization |\n\nworking days and booking_days have the same format:\nmonth:[array of days in this month]\n\nFor example, this booking_days:\n        \"9\": [\n              \"4\",\n              \"5\"]\n        \"10\": [\n              \"14\",\n              \"25\"]\nMeans that on September 4 and 5, and on October 14 and 25 there are free sessions for booking\n\n\nThe following filters are available:\n\n+ service_ids: Array of service IDs. If you need dates when you can book the specified services\n+ staff_id: team member ID. If you need dates when you can book the specified team member\n+ date: Date within a month, if you need dates for a specific month",
        "operationId": "get_dates_available_for_booking",
        "parameters": [
          {
            "name": "location_id",
            "in": "path",
            "description": "location ID",
            "required": true,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "service_ids[]",
            "in": "query",
            "description": "Service ID.\nFilter by the list of service identifiers\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "staff_id",
            "in": "query",
            "description": "team member ID. Filter by team member ID\nDefault: 0\n",
            "schema": {
              "type": "number"
            },
            "example": 0
          },
          {
            "name": "date",
            "in": "query",
            "description": "date in iso8601 format.\nFilter by month of booking.",
            "schema": {
              "type": "string"
            },
            "example": "2026-09-01"
          },
          {
            "name": "date_from",
            "in": "query",
            "description": "date in iso8601 format.\nStart of dates to search.\nMust be used together with the \"date_to\" param and overrides the \"date\" param.",
            "schema": {
              "type": "string"
            },
            "example": "2026-09-01"
          },
          {
            "name": "date_to",
            "in": "query",
            "description": "date in iso8601 format.\nEnd of dates to search.\nMust be used together with the \"date_from\" param and overrides the \"date\" param.",
            "schema": {
              "type": "string"
            },
            "example": "2026-09-30"
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "e.g. application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "application/vnd.api.v2+json"
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Bearer partner_token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/book_dates_companyid_data_types"
                },
                "example": {
                  "success": true,
                  "data": {
                    "booking_days": {
                      "1": [
                        3,
                        10
                      ],
                      "12": [
                        6,
                        13,
                        20,
                        27
                      ]
                    },
                    "booking_dates": [
                      "2026-12-06",
                      "2026-12-13",
                      "2026-12-20",
                      "2026-12-27",
                      "2026-01-03",
                      "2026-01-10"
                    ],
                    "working_days": {
                      "1": [
                        1,
                        3,
                        8,
                        10
                      ],
                      "12": [
                        4,
                        6,
                        11,
                        13,
                        18,
                        20,
                        25,
                        27
                      ]
                    },
                    "working_dates": [
                      "2026-12-04",
                      "2026-12-06",
                      "2026-12-11",
                      "2026-12-13",
                      "2026-12-18",
                      "2026-12-20",
                      "2026-12-25",
                      "2026-12-27",
                      "2026-01-01",
                      "2026-01-03",
                      "2026-01-08",
                      "2026-01-10"
                    ]
                  },
                  "meta": []
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          }
        }
      }
    },
    "/book_times/{location_id}/{team_member_id}/{date}": {
      "get": {
        "tags": [
          "Online Booking"
        ],
        "security": [
          {
            "BearerPartner": []
          }
        ],
        "summary": "Get a List of Time Slots Available for Booking",
        "description": "The sessions available for booking object has the following fields:\n\n| Field | Type | Description |\n| ------------- | ------------- | ------------- |\n| time | string | Session time (17:30 for example) |\n| session_length | number | Session duration in seconds |\n| datetime | datetime | Date and time of the session in ISO8601 format (must be passed when creating the appointment) |\n\n\nThe following filters are available:\n\n+ service_ids: Array of service IDs. If you need sessions, when can you book these services",
        "operationId": "get_time_slots_for_booking",
        "parameters": [
          {
            "name": "location_id",
            "in": "path",
            "description": "location ID",
            "required": true,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "service_ids[]",
            "in": "query",
            "description": "Service ID.\nFilter by the list of service identifiers\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date",
            "in": "path",
            "description": "date in iso8601 format.\nFilter by booking date (eg '2026-09-30')\n",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "team_member_id",
            "in": "path",
            "description": "team member ID. Filter by team member ID\nDefault: 0\n",
            "required": true,
            "schema": {
              "type": "number"
            },
            "example": 0
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "e.g. application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "application/vnd.api.v2+json"
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Bearer partner_token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/book_times_companyid_data_types"
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "time": "12:00",
                      "seance_length": 3600,
                      "datetime": "2026-09-21T23:00:00.000-05:00"
                    },
                    {
                      "time": "13:00",
                      "seance_length": 3600,
                      "datetime": "2026-09-21T23:00:00.000-05:00"
                    },
                    {
                      "time": "14:00",
                      "seance_length": 3600,
                      "datetime": "2026-09-21T23:00:00.000-05:00"
                    },
                    {
                      "time": "15:00",
                      "seance_length": 3600,
                      "datetime": "2026-09-21T23:00:00.000-05:00"
                    },
                    {
                      "time": "16:00",
                      "seance_length": 3600,
                      "datetime": "2026-09-21T23:00:00.000-05:00"
                    }
                  ],
                  "meta": []
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          }
        }
      }
    },
    "/book_check/{location_id}": {
      "post": {
        "tags": [
          "Online Booking"
        ],
        "security": [
          {
            "BearerPartner": []
          }
        ],
        "summary": "Validate Booking Parameters",
        "description": "After generating the appointment parameters, you can validate them to ensure the appointment can be successfully created.\r\n\r\nThe JSON object containing the Online Booking parameters includes the following fields:\r\n\r\n| Field | Type | Mandatory | Description |\r\n| ------------- | ------------- | ------------- | ------------- |\r\n| appointments | Array of objects | YES | Booking options (services, team members...) |\r\n\r\nThe appointments array consists of objects that have the following fields:\r\n\r\n| Field | Type | Mandatory | Description |\r\n| ------------- | ------------- | ------------- | ------------- |\r\n| id | number | Yes | Appointment ID for post-save feedback (see response to request).\r\n| services | array of numbers | NO | Array of IDs of the services the client wants to sign up for |\r\n| staff_id | number | YES | ID of the team member the client wants to book with (0 if any team member is selected) |\r\n| datetime | datetime | YES | Session date and time in ISO8601 format (passed for each session in the book_times resource)|\r\n\r\n\r\nIn response to the parameter check request, an empty response with the code 201 will be returned if the booking parameters are in order and bookings can be created:\r\n\r\nIf the response is JSON with an HTTP code other than 201, then the booking parameters are out of order, and bookings cannot be created.\r\n\r\nThe server may return the following errors during appointment creation:\r\n\r\n1.  Selected time slot is already taken.\r\nReturned with HTTP status code 422 and error code 433.\r\n\r\n2.  No team members available for booking.\r\nOccurs if a default team member was selected but none are available. Returned with HTTP status code 422 and error code 436.\r\n\r\n3.  Booking time conflict within the same request.\r\nOne of the selected booking times overlaps with another booking created in the same request. Returned with HTTP status code 422 and error code 437, including the conflicting booking’s id in the appointments array.\r\n\r\n4. Service not available for booking\r\nThe selected service is no longer available (e.g. removed by the location). Returned with HTTP status code 422 and error code 438.",
        "operationId": "validate_booking_params",
        "parameters": [
          {
            "name": "location_id",
            "in": "path",
            "description": "location ID",
            "required": true,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "e.g. application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "application/vnd.api.v2+json"
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Bearer partner_token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/book_check_companyid_request_data_types"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/book_check_companyid_response201_data_types"
                },
                "example": {
                  "success": true,
                  "meta": {
                    "message": "Created"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/book_check_companyid_response422_data_types"
                },
                "example": {
                  "success": false,
                  "meta": {
                    "message": "An error has occurred",
                    "errors": [
                      {
                        "code": 422,
                        "message": "No services or promotions set"
                      },
                      {
                        "code": 433,
                        "message": "Team Member (0) cannot be booked on May 30, 2026 at 15:30. The selected time is already taken or is not working."
                      },
                      {
                        "code": 436,
                        "message": "No team members available for enrollment"
                      },
                      {
                        "code": 437,
                        "message": "Team Member John Doe (6544) cannot be booked for May 30, 2026 at 15:30. Intersection with previous visit."
                      },
                      {
                        "code": 438,
                        "message": "There is no appointment for the specified service/promotion"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/book_record/{location_id}": {
      "post": {
        "tags": [
          "Online Booking"
        ],
        "security": [
          {
            "BearerPartner": []
          }
        ],
        "summary": "Create an Online Booking",
        "description": "To create a session appointment, provide a JSON object containing the online booking parameters. The object includes the following fields:\r\n\r\n| Field | Type | Mandatory | Description |\r\n| ------------- | ------------- | ------------- | ------------- |\r\n| phone | string | YES | Client's phone number (eg +13155550175) |\r\n| full name | string | YES | Client name |\r\n| email | string | NO | Postal address of the client |\r\n| appointments | Array of objects | YES | Booking options (services, team members...) |\r\n| code | string | NO | Phone number confirmation code sent via SMS (only needed if you need to confirm the number) |\r\n| notify_by_sms | number | NO | Number of hours in advance to send an SMS reminder for the appointment (set to 0 to disable reminders). |\r\n| notify_by_email | number | NO | Number of hours in advance to send an email reminder for the appointment (set to 0 to disable the reminder). |\r\n| comment | string | NO | Appointment Comment |\r\n| api_id | string | NO | External Appointment ID |\r\n\r\nThe appointments array consists of objects that have the following fields:\r\n\r\n| Field | Type | Mandatory | Description |\r\n| ------------- | ------------- | ------------- | ------------- |\r\n| id | number | Yes | Appointment ID for post-save feedback (see response to request).\r\n| services | array of numbers | NO | Array of IDs of the services the client wants to sign up for |\r\n| staff_id | number | YES | ID of the team member the client wants to book with (0 if any team member is selected) |\r\n| datetime | datetime | YES | Session date and time in ISO8601 format (passed for each session in the book_times resource)|\r\n| custom_fields | key-value object | NO | Custom field values that are returned with the appointment |\r\n\r\nCustom fields in the appointments array\r\n\r\nWhen custom appointment fields are created (see the \"Custom Fields\" section), you can pass custom values for them during appointment creation. These fields are unique to each location.\r\nOnce the custom fields are set up, their values can be included in the optional custom_fields parameter. This should be passed as a key–value object, where each key corresponds to the code of the custom field. Example:\r\n\r\n* location created an custom appointment field with code=\"my_custom_field\" type=\"number\", and a second field code=\"some_another_field\" type=\"list\"\r\n*  When creating an appointment, another attribute was passed in the appointments array element: \"\"\r\nappointments: [{\r\n    ...\r\n}, {\r\n    ...\r\n    custom_fields: {\r\n    \"my_custom_field\": 123,\r\n    \"some_another_field\": [\"first value\", \"second value\"]\r\n    }\r\n}]\"\r\n* When this appointment is received by the GET method later, the same value of custom fields will be returned in the response\r\n\r\n\r\nIn response to the request to create an appointment, an array of objects will come (the number of objects is equal to the number of objects in the appointments array) with the following fields:\r\n\r\n| Field | Type | Description |\r\n| ------------- | ------------- | ------------- |\r\n| id | number | The appointment ID as passed in the original appointments array |\r\n| record_id | number | The unique identifier of the appointment created in the system |\r\n| record_hash | string | A temporary ID used for deleting the appointment immediately after creation |\r\n\r\nErrors to be handled:\r\n1.  Incorrect SMS verification code.\r\nReturned with HTTP status 422 and error code 432. The SMS verification code entered by the user is invalid.\r\n\r\n2.  Selected time slot is already taken.\r\nReturned with HTTP status 422 and error code 433. The selected appointment time is unavailable. The response includes the id of the conflicting appointment from the appointments array.\r\n\r\n3.  User is blacklisted.\r\nReturned with HTTP status 403 and error code 434. The user with the specified phone number is blacklisted and cannot book an appointment.\r\n\r\n4.  Invalid phone number format.\r\nReturned with HTTP status 422 and error code 431. The user's phone number is not in a valid format.\r\n\r\n5.  Missing client name.\r\nReturned with HTTP status 422 and error code 435. The client's name was not provided.\r\n\r\n6.  No available team members.\r\nReturned with HTTP status 422 and error code 436. No team members are available at the selected time (commonly occurs when using a default team member setting).\r\n\r\n7.  Overlapping appointments in request.\r\nReturned with HTTP status 422 and error code 437. One of the selected times overlaps with another appointment in the same request. The response includes the id of the conflicting appointment from the appointments array.",
        "operationId": "create_online_booking",
        "parameters": [
          {
            "name": "location_id",
            "in": "path",
            "description": "location ID",
            "required": true,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "e.g. application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "application/vnd.api.v2+json"
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Bearer partner_token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/book_record_companyid_request_data_types"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/book_record_companyid_response_data_types"
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "id": 1,
                      "record_id": 2820023,
                      "record_hash": "567df655304da9b98487769426d4e76e"
                    },
                    {
                      "id": 2,
                      "record_id": 2820024,
                      "record_hash": "34a45ddabdd446d5d33bdd27fbf855b2"
                    }
                  ],
                  "meta": []
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/book_record/{location_id}/{record_id}/{record_hash}": {
      "get": {
        "tags": [
          "Online Booking"
        ],
        "security": [
          {
            "BearerPartner": []
          }
        ],
        "summary": "Get Online Booking Details",
        "operationId": "get_online_booking_details",
        "parameters": [
          {
            "name": "location_id",
            "in": "path",
            "description": "location ID",
            "required": true,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "record_id",
            "in": "path",
            "description": "Post ID (enough to view the post if the user is logged in)",
            "required": true,
            "schema": {
              "type": "number"
            },
            "example": 22123
          },
          {
            "name": "record_hash",
            "in": "path",
            "description": "HASH appointments (required to view the appointment if the user is not authorized)",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "'dawd4fs09rhf0s9fafef0'"
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "e.g. application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "application/vnd.api.v2+json"
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Bearer partner_token, User user_token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/book_record_companyid_recordid_recordhash_response_data_types"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          }
        }
      }
    },
    "/book_record/{location_id}/{record_id}": {
      "put": {
        "tags": [
          "Online Booking"
        ],
        "security": [
          {
            "BearerPartnerUser": []
          }
        ],
        "summary": "Change Online Booking Date/Time",
        "operationId": "update_online_booking_datetime",
        "parameters": [
          {
            "name": "location_id",
            "in": "path",
            "description": "location ID",
            "required": true,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "record_id",
            "in": "path",
            "description": "ID of the appointment to be migrated",
            "required": true,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "e.g. application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "application/vnd.api.v2+json"
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Bearer partner_token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/book_record_companyid_record_request_data_types"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/book_record_companyid_record_response_data_types"
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 30358,
                    "services": [
                      {
                        "id": 2838,
                        "title": "Foot massage",
                        "cost": 0,
                        "discount": 0
                      }
                    ],
                    "company": {
                      "id": 4564,
                      "title": "Business Example",
                      "country_id": 0,
                      "country": "United States",
                      "city_id": 0,
                      "city": "New York",
                      "phone": "+13155550175",
                      "timezone": "0",
                      "address": "New York, 787 Jackson Drive",
                      "coordinate_lat": 40.73061,
                      "coordinate_lon": -73.935242
                    },
                    "staff": {
                      "id": 924,
                      "name": "Alice",
                      "spec": "about eu",
                      "show_rating": 1,
                      "rating": 5,
                      "votes_count": 1,
                      "avatar": "https://app.alteg.io/images/no-master.png",
                      "comments_count": 0
                    },
                    "date": "2026-09-21T23:00:00.000-05:00",
                    "create_date": "2026-09-21T23:00:00.000-05:00",
                    "comment": "",
                    "deleted": true,
                    "length": 3600,
                    "notify_by_sms": 0,
                    "notify_by_email": 0,
                    "master_requested": false,
                    "online": true,
                    "api_id": 0
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/activity/{location_id}/{event_id}/book": {
      "post": {
        "tags": [
          "Online Booking"
        ],
        "security": [
          {
            "BearerPartner": []
          }
        ],
        "summary": "Book Event",
        "operationId": "book_event",
        "parameters": [
          {
            "name": "location_id",
            "in": "path",
            "description": "location ID",
            "required": true,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "event_id",
            "in": "path",
            "description": "Event ID",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "e.g. application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "application/vnd.api.v2+json"
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "*/*": {
              "schema": {
                "$ref": "#/components/schemas/event_book_request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/event_book_response"
                },
                "example": {
                  "success": true,
                  "data": {
                    "id": 28417878,
                    "hash": "9e6a54a1a9b118b65cc39ab6f3c3b5b4"
                  },
                  "meta": []
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/422_unprocessable_entity_response"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/privacy_policy/{location_id}": {
      "get": {
        "tags": [
          "Online Booking"
        ],
        "security": [
          {
            "BearerPartner": []
          }
        ],
        "summary": "Get location privacy policy for online booking",
        "description": "Retrieves the privacy policy configured for a specific location. This endpoint should be called before creating an online booking record to check if the location has a custom privacy policy.\n\nIf a location has a custom privacy policy configured, the online booking flow must:\n- Display the policy text to the user\n- Show a checkbox for accepting the privacy policy\n- Only proceed with booking creation after the user has checked the acceptance checkbox\n\nIf no custom policy is configured for the location, the booking can proceed without showing any policy acceptance step.\n",
        "operationId": "get_location_privacy_policy",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "e.g. application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "application/vnd.api.v2+json"
          },
          {
            "name": "location_id",
            "in": "path",
            "description": "location ID",
            "required": true,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Bearer partner_token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "example": {
                  "success": true,
                  "data": {
                    "agreement": {
                      "content": "text of the agreement"
                    }
                  },
                  "meta": []
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          }
        }
      }
    },
    "/booking/user": {
      "put": {
        "tags": [
          "Client Personal Cabinet"
        ],
        "security": [
          {
            "BearerPartner": []
          }
        ],
        "summary": "Update Online Booking User Data",
        "description": "Updating a team member’s data in online booking.\n\n When updating a phone number, the confirmation_code field must be included in the request. This code should be obtained using the [SMS confirmation code of the phone number to change\ndata](#operation/Send%20SMS%20code%20confirmation%20number%20phone%20for%20change%20data)",
        "operationId": "update_booking_user",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "e.g. application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "application/vnd.api.v2+json"
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Bearer partner_token, User user_token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/booking_user_update_info_request_data_types"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "example": {
                  "success": true,
                  "meta": {
                    "message": "Accepted"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/booking/user/data": {
      "get": {
        "tags": [
          "Client Personal Cabinet"
        ],
        "security": [
          {
            "BearerPartner": []
          }
        ],
        "summary": "Get Online Booking User Data",
        "description": "Retrieve online booking user data.",
        "operationId": "get_booking_user",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "e.g. application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "application/vnd.api.v2+json"
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Bearer partner_token, User user_token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/booking_user_get_data_response_data_types"
                },
                "example": {
                  "0": "152afb01134237bc844d7e",
                  "id": 32132133,
                  "user_token": "152afb01134237bc844d7e",
                  "name": "James",
                  "phone": "+13155550175",
                  "login": "j.smith",
                  "email": "j.smith@example.com",
                  "avatar": "https://api.alteg.io/images/avatar.png"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          }
        }
      }
    },
    "/booking/user/password": {
      "put": {
        "tags": [
          "Client Personal Cabinet"
        ],
        "security": [
          {
            "BearerPartner": []
          }
        ],
        "summary": "Update Online Booking User Password",
        "description": "Updating the password of an online booking user.\n\nThe response comes with a new user token.",
        "operationId": "update_booking_user_password",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "e.g. application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "application/vnd.api.v2+json"
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Bearer partner_token, User user_token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/booking_user_update_password_request_data_types"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/booking_user_update_password_response_data_types"
                },
                "example": {
                  "success": true,
                  "data": {
                    "user_token": "4de9d8cc108c0"
                  },
                  "meta": []
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/booking/user/phone_confirmation": {
      "get": {
        "tags": [
          "Client Personal Cabinet"
        ],
        "security": [
          {
            "BearerPartner": []
          }
        ],
        "summary": "Send SMS Verification Code for Phone Update",
        "description": "The request must contain one of two parameters: company_id or group_id",
        "operationId": "send_phone_update_verification_code",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Bearer partner_token, User user_token",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "company_id",
            "in": "query",
            "description": "location ID",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "group_id",
            "in": "query",
            "description": "Chain ID",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "phone",
            "in": "query",
            "description": "Phone number",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "example": {
                  "success": true,
                  "meta": {
                    "message": "Accepted"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          }
        }
      }
    },
    "/user/records/{record_id}/{record_hash}": {
      "get": {
        "tags": [
          "Client Personal Cabinet"
        ],
        "security": [
          {
            "BearerPartner": []
          }
        ],
        "summary": "Get User Appointments",
        "description": "The JSON Object containing the user appointment parameters has the following fields:\n\n| Field | Type | Mandatory | Description |\n| ------------- | ------------- | ------------- | ------------- |\n| id | number | YES | Appointment ID |\n| services | array of numbers | YES | List of ID service appointments |\n| location | object | YES | location parameters |\n| staff | object | YES | Parameters of the team member who was booked. Note: \"staff\" is a legacy field name for team member. |\n| clients_count | int | YES | Number of clients |\n| date | string | YES | Session date |\n| datetime | string | YES | Session date in ISO |\n| create_date | string | YES | Appointment creation date |\n| length | number | YES | Session duration |\n| deleted | boolean | YES | Has the appointment been created ? (true if deleted) |\n| notify_by_sms | number | NO | Number of hours in advance to send an SMS reminder for the appointment. Set to 0 to disable SMS reminders |\n| notify_by_email | number | NO | Number of hours in advance to send an email reminder for the appointment. Set to 0 to disable email reminders |\n| comment | string | YES | Appointment Comment |\n| master_requested | boolean | YES | Whether a specific team member was specified when appointment (false if \"any team member\" was specified) |\n| online | boolean | YES | Indicates whether the appointment was created online by the client (true) or manually by an administrator (false) |\n| visit_attendance | number | YES | 2 - The user confirmed the appointment, 1 - The user came, the services were provided, 0 - the user was waiting, -1 - the user did not come to visit |\n| api_id | string | NO | External Appointment ID |\n| last_change_date | string | NO | Date of the last edit of the appointment |\n| prepaid | boolean | NO | Is online payment available for appointment |\n| prepaid_confirmed | boolean | NO | Online payment status |\n| last_change_date | string | NO | Date of the last edit of the appointment |\n| activity_id | int | NO | Event ID (for group events) |\n\nEach object in the services array has the following fields:\n\n| Field | Type | Description |\n| ------------- | ------------- | ------------- |\n| id | number | Service ID |\n| title | string | Service name |\n| cost | float | Service cost |\n| price_min | float | Minimum price of the service |\n| price_max | float | Maximum service price |\n| discount | float | Discount |\n| amount | int | Number of ordered services |\n| session_length | int | Service duration in seconds (only if filter by team member is set) |\n\nThe location object has the following fields:\n\n| Field | Type | Description |\n| ------------- | ------------- | ------------- |\n| id | number | location ID |\n| title | string | location name |\n| country_id | number | Identifier of the country in which the location is located |\n| country | string | location name |\n| city_id | number | Identifier of the city where the location is located) |\n| city | string | location city name |\n| time zone | string | timezone locations |\n| address | string | Address where the location is located |\n| phone | string | location's main phone number |\n| phones | array of strings | All phone numbers of the location |\n| coordinate_lat | float | Latitude where the location is located |\n| coordinate lng | float | Longitude |\n| allow_delete_record | boolean | Is it possible to delete an appointment |\n| allow_change_record | boolean | Is it possible to reschedule the appointment |\n| site | string | location website |\n| currency_short_title | string | Currency symbol |\n| allow_change_record_delay_step | int | Time after which you can reschedule the appointment |\n| allow_delete_record_delay_step | int | Time after which you can delete an appointment |\n\nThe team member object has the following fields:\n\n| Field | Type | Description |\n| ------------- | ------------- | ------------- |\n| id | number | team member ID |\n| name | string | team member name |\n| specialization | string | team member specialization |\n| position | object | team member position |\n| show_rating | number | Whether to show team member's rating (1 - show, 0 - don't show) |\n| rating | number | team member rating |\n| votes_count | number | Number of votes rated team member |\n| comments_count | number | Number of comments to a team member |\n| avatar | string | Path to team member avatar file |\n",
        "operationId": "get_user_appointment_list",
        "parameters": [
          {
            "name": "record_id",
            "in": "path",
            "description": "Appointment ID",
            "required": true,
            "schema": {
              "type": "number"
            },
            "example": 22123
          },
          {
            "name": "record_hash",
            "in": "path",
            "description": "HASH of the appointment",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "'dawd4fs09rhf0s9fafef0'"
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "e.g. application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "application/vnd.api.v2+json"
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Bearer partner_token, User user_token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/user_records_response_data_types"
                },
                "example": {
                  "success": true,
                  "data": [
                    {
                      "id": 13132699,
                      "services": [
                        {
                          "id": 389043,
                          "title": "Correction of extended nails",
                          "cost": 2300,
                          "price_min": 2300,
                          "price_max": 2300,
                          "discount": 0,
                          "amount": 1,
                          "seance_length": 1800
                        }
                      ],
                      "company": {
                        "id": 4564,
                        "title": "Nail studio",
                        "country_id": 7,
                        "country": "United States",
                        "city_id": 2,
                        "city": "New York",
                        "phone": "+13155550175",
                        "phones": [],
                        "timezone": "-5",
                        "address": "New York, 787 Jackson Drive",
                        "coordinate_lat": 40.73061,
                        "coordinate_lon": -73.935242,
                        "allow_delete_record": true,
                        "allow_change_record": true,
                        "site": "www.example.com",
                        "currency_short_title": "USD",
                        "allow_change_record_delay_step": 0,
                        "allow_delete_record_delay_step": 0
                      },
                      "staff": {
                        "id": 55436,
                        "name": "Natalie Parker",
                        "specialization": "Manicure and pedicure",
                        "position": {
                          "id": 446,
                          "title": "Manicurist"
                        },
                        "show_rating": 1,
                        "rating": 4.84,
                        "votes_count": 0,
                        "avatar": "http://example.com/image.png",
                        "comments_count": 37
                      },
                      "clients_count": 1,
                      "date": "2026-09-21T23:00:00.000-05:00",
                      "datetime": "2026-10-24T17:30:00-0500",
                      "create_date": "2026-10-20T21:40:24-0500",
                      "comment": "",
                      "deleted": true,
                      "attendance": 0,
                      "length": 1800,
                      "notify_by_sms": 0,
                      "notify_by_email": 0,
                      "master_requested": false,
                      "online": true,
                      "api_id": "",
                      "last_change_date": "2026-10-24T23:54:02-0500",
                      "prepaid": false,
                      "prepaid_confirmed": false,
                      "activity_id": 0
                    },
                    {
                      "id": 13133413,
                      "services": [
                        {
                          "id": 389045,
                          "title": "Hand massage (10 min)",
                          "cost": 300,
                          "price_min": 300,
                          "price_max": 400,
                          "discount": 0,
                          "amount": 1,
                          "seance_length": 1800
                        }
                      ],
                      "company": {
                        "id": 4564,
                        "title": "Nail studio",
                        "country_id": 7,
                        "country": "United States",
                        "city_id": 2,
                        "city": "New York",
                        "phone": "+13155550175",
                        "phones": [],
                        "timezone": "-5",
                        "address": "New York, 787 Jackson Drive",
                        "coordinate_lat": 40.73061,
                        "coordinate_lon": -73.935242,
                        "allow_delete_record": true,
                        "allow_change_record": true,
                        "site": "www.example.com",
                        "currency_short_title": "USD",
                        "allow_change_record_delay_step": 0,
                        "allow_delete_record_delay_step": 0
                      },
                      "staff": {
                        "id": 55436,
                        "name": "Natalie Parker",
                        "specialization": "Manicure and pedicure",
                        "position": {
                          "id": 446,
                          "title": "Manicurist"
                        },
                        "show_rating": 1,
                        "rating": 4.84,
                        "votes_count": 0,
                        "avatar": "http://example.com/image.png",
                        "comments_count": 37
                      },
                      "clients_count": 1,
                      "date": "2026-09-21T23:00:00.000-05:00",
                      "datetime": "2026-10-24T17:30:00-0500",
                      "create_date": "2026-10-20T21:40:24-0500",
                      "comment": "",
                      "deleted": true,
                      "attendance": 0,
                      "length": 1800,
                      "notify_by_sms": 0,
                      "notify_by_email": 0,
                      "master_requested": false,
                      "online": true,
                      "api_id": "",
                      "last_change_date": "2026-10-24T23:54:02-0500",
                      "prepaid": false,
                      "prepaid_confirmed": false,
                      "activity_id": 0
                    }
                  ],
                  "meta": []
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Client Personal Cabinet"
        ],
        "security": [
          {
            "BearerPartner": []
          }
        ],
        "summary": "Delete User Appointment",
        "operationId": "delete_user_appointment",
        "parameters": [
          {
            "name": "record_id",
            "in": "path",
            "description": "Appointment ID (enough to delete the appointment if the user is authorized)",
            "required": true,
            "schema": {
              "type": "number"
            },
            "example": 22123
          },
          {
            "name": "record_hash",
            "in": "path",
            "description": "HASH appointments (required to delete the appointment if the user is not authorized)",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "'dawd4fs09rhf0s9fafef0'"
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "e.g. application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "application/vnd.api.v2+json"
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "application/json",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Bearer partner_token, User user_token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          }
        }
      }
    },
    "/master_record_review/{record_token}": {
      "get": {
        "tags": [
          "Client Personal Cabinet"
        ],
        "security": [
          {
            "BearerPartner": []
          }
        ],
        "summary": "Get appointment review",
        "operationId": "get_feedback_form_status",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "e.g. application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "application/vnd.api.v2+json"
          },
          {
            "name": "record_token",
            "in": "path",
            "description": "Short appointment token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns data for displaying the feedback form and information about the status of submitting feedback and tips",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/master_record_review_response_data_types"
                },
                "example": {
                  "success": true,
                  "data": {
                    "favicon_url": "https://www.app.alteg.io/favicon.png",
                    "is_review_submitted": false,
                    "page_title": "Leave feedback",
                    "master": {
                      "id": 58961,
                      "name": "Alex Johnson",
                      "company_id": 28939,
                      "specialization": "Permanent Makeup, Artistic Tattoo",
                      "rating": 5,
                      "show_rating": 1,
                      "avatar": "https://www.app.alteg.io/uploads/masters/sm/20161014151227_5360.jpg",
                      "prepaid": "forbidden",
                      "position": {
                        "id": 2185,
                        "title": "Master PM"
                      }
                    },
                    "company": {
                      "id": 28939,
                      "title": "\"Eyes-n-Lips\" New York",
                      "logo": "https://www.app.alteg.io/uploads/s_a6f66721046345a6226ac3040a57fb7d.jpg",
                      "address": "New York, 787 Jackson Drive"
                    },
                    "tips": [],
                    "record": {
                      "id": 8219891,
                      "payed_cost": 2000,
                      "date": "2026-08-11T15:00:00-0500"
                    },
                    "currency": {
                      "id": 1,
                      "iso": "USD",
                      "name": "US Dollar",
                      "symbol": "USD",
                      "is_symbol_after_amount": true
                    },
                    "agreement_links": {
                      "terms_of_use": "https://www.app.alteg.io/info/terms-of-use-review-tips",
                      "confidentiality_agreement": "https://www.app.alteg.io/info/confidential"
                    },
                    "language": {
                      "id": 1,
                      "locale": "en-US",
                      "iso": "usa"
                    }
                  },
                  "meta": []
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Client Personal Cabinet"
        ],
        "security": [
          {
            "BearerPartner": []
          }
        ],
        "summary": "Submit appointment review",
        "operationId": "submit_feedback_form",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "e.g. application/vnd.api.v2+json",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "application/vnd.api.v2+json"
          },
          {
            "name": "record_token",
            "in": "path",
            "description": "Short appointment token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/master_record_review_post_request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Review submitted successfully",
            "content": {
              "application/json": {
                "example": {
                  "success": true,
                  "data": {
                    "charge": {
                      "url": "https://url.to/payment/system"
                    }
                  },
                  "meta": []
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/401_unauthorized_response"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/403_forbidden_response"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/404_not_found_response"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body"
      }
    }
  },
  "components": {
    "securitySchemes": {
      "BearerPartner": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "Bearer {PartnerToken}",
        "description": "Partner API token for accessing public endpoints"
      },
      "BearerPartnerUser": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "Bearer {PartnerToken}, User {UserToken}",
        "description": "Combined partner and user tokens for authenticated user operations"
      }
    },
    "schemas": {
      "book_code_companyid_data_types_request": {
        "title": "Root Type for book_code_companyid_data_types",
        "type": "object",
        "properties": {
          "phone": {
            "type": "string",
            "description": "Customer phone number"
          },
          "fulname": {
            "type": "string",
            "description": "Client name"
          }
        },
        "description": "Send SMS verification code for phone number",
        "example": {
          "phone": "+13155550175",
          "fulname": "James Smith"
        }
      },
      "book_code_companyid_data_type_response": {
        "title": "Root Type for book_code_companyid_resp",
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Execution success status (true)"
          },
          "meta": {
            "type": "object",
            "properties": {
              "message": {
                "type": "string"
              }
            },
            "description": "metadata"
          }
        },
        "description": "",
        "example": {
          "success": true,
          "meta": {
            "message": "Created"
          }
        }
      },
      "response_success_false_object": {
        "title": "Unsuccessful response status",
        "type": "boolean",
        "description": "Response status.",
        "example": false
      },
      "response_data_null_object": {
        "title": "No data in response",
        "type": [
          "object",
          "null"
        ],
        "description": "Response data.",
        "example": null
      },
      "response_meta_error_unauthorized_object": {
        "title": "Response error message",
        "type": "object",
        "description": "Additional response data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message.",
            "example": "Authentication needed."
          }
        }
      },
      "401_unauthorized_response": {
        "type": "object",
        "properties": {
          "success": {
            "$ref": "#/components/schemas/response_success_false_object"
          },
          "data": {
            "$ref": "#/components/schemas/response_data_null_object"
          },
          "meta": {
            "$ref": "#/components/schemas/response_meta_error_unauthorized_object"
          }
        }
      },
      "response_meta_error_forbidden_object": {
        "title": "Response error message",
        "type": "object",
        "description": "Additional response data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message.",
            "example": "Access denied."
          }
        }
      },
      "403_forbidden_response": {
        "type": "object",
        "properties": {
          "success": {
            "$ref": "#/components/schemas/response_success_false_object"
          },
          "data": {
            "$ref": "#/components/schemas/response_data_null_object"
          },
          "meta": {
            "$ref": "#/components/schemas/response_meta_error_forbidden_object"
          }
        }
      },
      "response_meta_empty_object": {
        "title": "Empty meta object",
        "type": [
          "object",
          "array"
        ],
        "description": "Additional response data (empty object or empty array)",
        "example": {}
      },
      "404_not_found_response": {
        "type": "object",
        "properties": {
          "success": {
            "$ref": "#/components/schemas/response_success_false_object"
          },
          "data": {
            "$ref": "#/components/schemas/response_data_null_object"
          },
          "meta": {
            "$ref": "#/components/schemas/response_meta_empty_object"
          }
        }
      },
      "auth_request": {
        "title": "Root Type for auth_request",
        "required": [
          "login",
          "password"
        ],
        "type": "object",
        "properties": {
          "login": {
            "type": "string",
            "description": "Phone number or Email"
          },
          "password": {
            "type": "string",
            "description": "Password"
          }
        },
        "description": "User authorization",
        "example": {
          "login": "testuser@alteg.io",
          "password": "testpass"
        }
      },
      "booking_auth_response": {
        "title": "Root Type for auth_response",
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "User ID",
            "format": "int32"
          },
          "user_token": {
            "type": "string",
            "description": "User_token of the user"
          },
          "name": {
            "type": "string",
            "description": "Username"
          },
          "phone": {
            "type": "string",
            "description": "User phone"
          },
          "login": {
            "type": "string",
            "description": "User login"
          },
          "email": {
            "type": "string",
            "description": "User mailing address"
          },
          "avatar": {
            "type": "string",
            "description": "Path to the user's avatar file"
          }
        },
        "description": "User authorization",
        "example": {
          "id": 123456,
          "user_token": "wec23fh8cDfFV4432fc352456",
          "name": "James Smith",
          "phone": "+13155550175",
          "login": "j.smith",
          "email": "j.smith@example.com",
          "avatar": "https://assets.alteg.io/general/0/01/123456789098765_12345678909876.png"
        }
      },
      "user_auth_response": {
        "title": "Root Type for user_auth_response",
        "type": "object",
        "properties": {
          "user_token": {
            "type": "string",
            "description": "User_token of the user"
          }
        },
        "description": "User authorization by phone number and SMS code",
        "example": {
          "user_token": "wec23fh8cDfFV4432fc352456"
        }
      },
      "bookform_id_info_data_types": {
        "title": "Root Type for bookform_info_data_types",
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Execution success status (true)"
          },
          "data": {
            "type": "object",
            "properties": {
              "steps": {
                "type": "array",
                "description": "appointment form steps with custom settings",
                "items": {
                  "type": "object",
                  "properties": {
                    "step": {
                      "type": "string",
                      "description": "Selection step (Service / team member / date)"
                    },
                    "title": {
                      "type": "string",
                      "description": "The name of the step to display in the interface"
                    },
                    "num": {
                      "type": "number",
                      "description": "What number should this step be displayed on (starting from 1)"
                    },
                    "hidden": {
                      "type": "boolean",
                      "description": "Hide this step when appointment or not"
                    },
                    "default": {
                      "type": [
                        "number",
                        "string"
                      ],
                      "description": "Default value for this step"
                    },
                    "date_default": {
                      "type": "string",
                      "description": "Default date value (for datetime step)"
                    },
                    "time_default": {
                      "type": "number",
                      "description": "Default time value (for datetime step)"
                    },
                    "date_hidden": {
                      "type": "boolean",
                      "description": "Hide date selection (for datetime step)"
                    },
                    "time_hidden": {
                      "type": "boolean",
                      "description": "Hide time selection (for datetime step)"
                    },
                    "is_title_default": {
                      "type": "boolean",
                      "description": "Is title default or custom"
                    },
                    "category_view_type": {
                      "type": "string",
                      "description": "Category view type (e.g., \"horizontal_tags\")"
                    }
                  },
                  "description": "appointment form design settings"
                }
              },
              "style": {
                "type": "object",
                "properties": {
                  "show_header": {
                    "type": "boolean",
                    "description": "Display header and menu or not"
                  },
                  "logo": {
                    "type": "string",
                    "description": "Path to logo image"
                  },
                  "header_background": {
                    "type": "string",
                    "description": "Path to subtitle background image"
                  },
                  "menu_background": {
                    "type": "string",
                    "description": "Path to menu background image"
                  },
                  "main_color": {
                    "type": "string",
                    "description": "The main color of the form (all colors from the list: red, pink, purple, deep-purple, indigo, blue, light-blue, cyan, teal, green, light-green, lime, yellow, amber, orange, deep-orange, brown , grey, blue-grey, white, black)"
                  },
                  "secondary_color": {
                    "type": "string",
                    "description": "Form secondary color (subtitle semi-transparent cover)"
                  },
                  "buttons_color": {
                    "type": "string",
                    "description": "Button color"
                  },
                  "logo_full": {
                    "type": "string",
                    "description": "Full path to logo image"
                  },
                  "header_background_full": {
                    "type": "string",
                    "description": "Full path to header background image"
                  },
                  "menu_background_full": {
                    "type": "string",
                    "description": "Full path to menu background image"
                  },
                  "primaryPalette": {
                    "type": "string",
                    "description": "Primary palette color"
                  },
                  "accentPalette": {
                    "type": "string",
                    "description": "Accent palette color"
                  },
                  "warnPalette": {
                    "type": "string",
                    "description": "Warning palette color"
                  },
                  "backgroundPalette": {
                    "type": "string",
                    "description": "Background palette color"
                  },
                  "main_color_theme": {
                    "type": "string",
                    "description": "Main color theme identifier"
                  },
                  "header_background_new": {
                    "oneOf": [
                      {
                        "type": "array",
                        "description": "Empty array when no header background configured"
                      },
                      {
                        "type": "object",
                        "description": "Header background image configuration with multiple sizes",
                        "properties": {
                          "sm": {
                            "type": "string",
                            "description": "Small image URL"
                          },
                          "norm": {
                            "type": "string",
                            "description": "Normal image URL"
                          },
                          "origin": {
                            "type": "string",
                            "description": "Original image URL"
                          }
                        }
                      }
                    ],
                    "description": "New header background image configuration (empty array if not configured)"
                  }
                },
                "description": "appointment form design settings"
              },
              "group_id": {
                "type": "number",
                "description": "location chain ID (0 - if the appointment form for a non-chain location"
              },
              "company_id": {
                "type": "number",
                "description": "location ID (always returned, used to get additional settings)"
              },
              "phone_confirmation": {
                "type": "boolean",
                "description": "Do I need to confirm the phone by SMS (if groupid = 0 (not a chain form), otherwise look in the settings of each location separately)"
              },
              "lang": {
                "type": "string",
                "description": "appointment form language (code from langs array)"
              },
              "langs": {
                "type": "array",
                "description": "List of widget languages",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "format": "int32"
                    },
                    "code": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    }
                  }
                }
              },
              "comment_required": {
                "type": "boolean",
                "description": "Whether the field with a comment on the appointment is required"
              },
              "google_analytics_id": {
                "type": "string",
                "description": "Google Analytics ID"
              },
              "facebook_pixel_id": {
                "type": "string",
                "description": "Facebook Pixel ID"
              },
              "metrika_counter_id": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Metrika counter ID (web analytics)"
              },
              "app_metrika_id": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "AppMetrika ID (mobile analytics)"
              },
              "sms_enabled": {
                "type": "boolean",
                "description": "Is sending SMS available?"
              },
              "id": {
                "type": "number",
                "description": "Booking form ID"
              },
              "url": {
                "type": "string",
                "description": "Booking form URL"
              },
              "staff_name": {
                "type": "object",
                "description": "Team member name configuration"
              },
              "without_menu": {
                "type": "boolean",
                "description": "Step mode flag"
              },
              "sequence_type": {
                "type": "string",
                "description": "Sequence type (e.g., \"steps\")"
              },
              "client_scripts": {
                "type": "string",
                "description": "Client-side scripts"
              },
              "y_injection": {
                "type": "string",
                "description": "Web analytics injection code"
              },
              "first_service_category_close": {
                "type": "boolean",
                "description": "First service category close flag"
              },
              "map": {
                "type": "object",
                "description": "Map configuration"
              },
              "salon_select_type_code": {
                "type": "string",
                "description": "Location select type code"
              },
              "is_show_privacy_policy": {
                "type": "boolean",
                "description": "Show privacy policy flag"
              },
              "is_client_agreements_feature_enabled": {
                "type": "boolean",
                "description": "Client agreements feature enabled flag"
              },
              "specialization_display_mode": {
                "type": "number",
                "description": "Specialization display mode (0 - specialization, 1 - position)"
              },
              "ab_test_enabled": {
                "type": "boolean",
                "description": "A/B test enabled flag"
              },
              "ab_test_percentage": {
                "type": "number",
                "description": "A/B test percentage"
              },
              "is_online_sale_available": {
                "type": "boolean",
                "description": "Online sale available flag"
              },
              "legal_info": {
                "type": [
                  "object",
                  "null"
                ],
                "description": "Legal information"
              },
              "online_sales_links": {
                "type": "array",
                "description": "Online sales links",
                "items": {
                  "type": "object"
                }
              },
              "google_analytics_client_id_index": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Google Analytics client ID index"
              },
              "brand": {
                "type": "object",
                "description": "Brand configuration"
              },
              "injection": {
                "type": "object",
                "description": "Injection scripts configuration"
              },
              "display_activity_type": {
                "type": "string",
                "description": "Display event type"
              },
              "is_multiple_activity_record": {
                "type": "boolean",
                "description": "Multiple event appointment flag"
              },
              "activity_record_count": {
                "type": "number",
                "description": "Event appointment count"
              },
              "weekly_view_enabled": {
                "type": "boolean",
                "description": "Weekly view enabled flag"
              },
              "show_weekly_view_without_online_booking": {
                "type": "boolean",
                "description": "Show weekly view without online booking"
              },
              "weekly_view_default_salon_id": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Default location ID for weekly view"
              },
              "chain_main_salon_id": {
                "type": "number",
                "description": "Chain main location ID"
              },
              "record_type_id": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Appointment type ID"
              },
              "features": {
                "type": "object",
                "description": "Feature flags"
              },
              "certificate_count": {
                "type": "number",
                "description": "Certificate count"
              },
              "abonement_count": {
                "type": "number",
                "description": "Membership count"
              }
            },
            "description": "Object with data"
          },
          "meta": {
            "type": "array",
            "description": "Metadata (empty array)",
            "items": {
              "type": "object"
            }
          }
        },
        "description": "appointment form settings",
        "example": {
          "success": true,
          "data": {
            "steps": [
              {
                "step": "master",
                "title": "Choose a team member",
                "num": 2,
                "hidden": false,
                "default": -1
              },
              {
                "step": "service",
                "title": "Choose a service",
                "num": 1,
                "hidden": true,
                "default": 196
              },
              {
                "step": "datetime",
                "title": "Select date and time",
                "num": 3,
                "hidden": false,
                "date_hidden": false,
                "time_hidden": false,
                "date_default": "0000-00-00",
                "time_default": 0
              },
              {
                "step": "contact",
                "title": "Business Example",
                "num": 3,
                "hidden": false,
                "default": 0
              },
              {
                "step": "comfirm",
                "title": "Business Example",
                "num": 4,
                "hidden": false,
                "default": 0
              }
            ],
            "style": {
              "show_header": true,
              "logo": "https://app.alteg.io/uploads/logo.png",
              "header_background": "https://app.alteg.io/uploads/header.png",
              "menu_background": "https://app.alteg.io/uploads/menu.png",
              "main_color": "#FFCB00",
              "secondary_color": "#999999",
              "buttons_color": "#FFFFFF"
            },
            "group_id": 1,
            "company_id": 1,
            "phone_confirmation": false,
            "lang": "en-US",
            "langs": [
              {
                "id": 2,
                "code": "en-US",
                "title": "English"
              },
              {
                "id": 4,
                "code": "lv-LV",
                "title": "Latviešu valoda"
              },
              {
                "id": 5,
                "code": "et-EE",
                "title": "Eesti keel"
              },
              {
                "id": 6,
                "code": "lt-LT",
                "title": "Lietuva"
              },
              {
                "id": 7,
                "code": "uk-UK",
                "title": "Ukrainian"
              },
              {
                "id": 8,
                "code": "fr-FR",
                "title": "Français"
              },
              {
                "id": 9,
                "code": "it-IT",
                "title": "Italiano"
              },
              {
                "id": 10,
                "code": "es-ES",
                "title": "Español"
              },
              {
                "id": 13,
                "code": "ka-KA",
                "title": "ქართული"
              },
              {
                "id": 14,
                "code": "hy-AM",
                "title": "Հայերեն"
              },
              {
                "id": 15,
                "code": "kk-KK",
                "title": "Kazakh tili"
              },
              {
                "id": 16,
                "code": "hr-HR",
                "title": "Hrvatski jezik"
              },
              {
                "id": 17,
                "code": "cs-CS",
                "title": "český jazyk"
              },
              {
                "id": 18,
                "code": "ro-RO",
                "title": "Limba Română"
              },
              {
                "id": 19,
                "code": "cn-CN",
                "title": "中文"
              },
              {
                "id": 20,
                "code": "ar-AR",
                "title": "العَرَبِيَّة"
              },
              {
                "id": 21,
                "code": "bg-BG",
                "title": "Bulgarian"
              },
              {
                "id": 22,
                "code": "he-IL",
                "title": "עברית"
              },
              {
                "id": 23,
                "code": "hu-HU",
                "title": "Magyar nyelv"
              },
              {
                "id": 24,
                "code": "Lt-sr-SP",
                "title": "Srpski jezik"
              },
              {
                "id": 25,
                "code": "sk-SK",
                "title": "Slovenský jazyk"
              },
              {
                "id": 26,
                "code": "mn-MN",
                "title": "Mongol hal"
              },
              {
                "id": 27,
                "code": "az-AZ",
                "title": "Azərbaycan dili"
              },
              {
                "id": 28,
                "code": "pl-PL",
                "title": "Polszczyzna"
              },
              {
                "id": 30,
                "code": "sl-SL",
                "title": "Slòvēnskī"
              }
            ],
            "comment_required": false,
            "metrika_counter_id": 50217133,
            "google_analytics_id": "UA-125358345-1",
            "facebook_pixel_id": "2218788388343154",
            "app_metrika_id": "46ab3b93-1bc6-457d-82f0-c1b51f39b01e",
            "sms_enabled": true
          },
          "meta": []
        }
      },
      "book_services_companyid_data_types": {
        "title": "Root Type for get_book_services_type",
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Success status (true)"
          },
          "data": {
            "type": "object",
            "properties": {
              "events": {
                "type": "array",
                "items": {
                  "type": "object"
                }
              },
              "services": {
                "type": "array",
                "description": "Services",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "id": {
                      "type": "number",
                      "description": "Service ID"
                    },
                    "title": {
                      "type": "string",
                      "description": "Service name"
                    },
                    "category_id": {
                      "type": "number",
                      "description": "ID of the category the service belongs to"
                    },
                    "price_min": {
                      "type": "number",
                      "description": "The minimum cost of the service",
                      "format": "float"
                    },
                    "price_max": {
                      "type": "number",
                      "description": "Maximum cost of the service",
                      "format": "float"
                    },
                    "discount": {
                      "type": "number",
                      "description": "Service discount",
                      "format": "float"
                    },
                    "comment": {
                      "type": "string",
                      "description": "Comment on the service"
                    },
                    "weight": {
                      "type": "number",
                      "description": "Service weight. On withdrawal, services are sorted by weight, heavier first"
                    },
                    "active": {
                      "type": "number",
                      "description": "Is the service active"
                    },
                    "gender": {
                      "type": "number",
                      "description": "Gender for which the service is provided"
                    },
                    "image": {
                      "type": "string",
                      "description": "Service image"
                    },
                    "prepaid": {
                      "type": "string",
                      "description": "Online payment status"
                    },
                    "seance_length": {
                      "type": [
                        "integer",
                        "null"
                      ],
                      "description": "Service duration in seconds (only if filter by team member is set)"
                    },
                    "abonement_restriction": {
                      "type": "integer",
                      "description": "Subscription restriction flag"
                    },
                    "prepaid_settings": {
                      "type": "object",
                      "description": "Prepaid settings configuration"
                    },
                    "is_composite": {
                      "type": "boolean",
                      "description": "Whether service is composite"
                    },
                    "is_chain": {
                      "type": "boolean",
                      "description": "Whether service belongs to chain"
                    },
                    "images": {
                      "type": [
                        "array",
                        "null"
                      ],
                      "description": "Service images array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "composite_details": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "description": "Composite service details"
                    }
                  }
                }
              },
              "category": {
                "type": "array",
                "description": "Service categories",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "id": {
                      "type": "number",
                      "description": "Category ID"
                    },
                    "title": {
                      "type": "string",
                      "description": "Service category name"
                    },
                    "gender": {
                      "type": "number",
                      "description": "Gender for which the service is provided"
                    },
                    "api_id": {
                      "description": "External Category ID",
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "integer"
                        }
                      ]
                    },
                    "weight": {
                      "type": "number",
                      "description": "Service category weight. Services are sorted by weight, heavier ones first."
                    }
                  }
                }
              }
            },
            "description": "Object with data"
          },
          "meta": {
            "type": "array",
            "description": "Metadata (empty array)",
            "items": {
              "type": "object"
            }
          }
        },
        "description": "Get a List of Services Available for appointment",
        "example": {
          "success": true,
          "data": {
            "events": [],
            "services": [
              {
                "id": 1896208,
                "title": "hair wash",
                "category_id": 1895571,
                "price_min": 0,
                "price_max": 0,
                "discount": 0,
                "comment": "",
                "weight": 0,
                "active": 0,
                "gender": 0,
                "image": "",
                "prepaid": "forbidden",
                "seance_length": 3600
              },
              {
                "id": 1896303,
                "title": "Coloring",
                "category_id": 1895574,
                "price_min": 0,
                "price_max": 0,
                "discount": 0,
                "comment": "",
                "weight": 0,
                "active": 0,
                "gender": 0,
                "image": "",
                "prepaid": "forbidden",
                "seance_length": 3600
              }
            ],
            "category": [
              {
                "id": 1895571,
                "title": "Hair care",
                "gender": 0,
                "api_id": "0",
                "weight": 60
              },
              {
                "id": 1895574,
                "title": "Hair coloring",
                "gender": 0,
                "api_id": "0",
                "weight": 7
              }
            ]
          },
          "meta": []
        }
      },
      "book_staff_companyid_data_types": {
        "title": "Root Type for book_staff_company_id_data_types",
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Execution success status (true)"
          },
          "data": {
            "type": "array",
            "description": "Array of objects with data",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "id": {
                  "type": "number",
                  "description": "team member ID"
                },
                "api_id": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "External team member ID"
                },
                "user_id": {
                  "type": [
                    "number",
                    "null"
                  ],
                  "description": "User ID associated with team member (can be null if not linked)"
                },
                "name": {
                  "type": "string",
                  "description": "team member name"
                },
                "bookable": {
                  "type": "boolean",
                  "description": "Does the team member have sessions available for appointment"
                },
                "specialization": {
                  "type": "string",
                  "description": "team member specialization"
                },
                "position": {
                  "description": "team member's position (object or empty array)",
                  "oneOf": [
                    {
                      "type": "object",
                      "additionalProperties": true,
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "Job ID",
                          "format": "int32"
                        },
                        "title": {
                          "type": "string",
                          "description": "Job title"
                        },
                        "services_binding_type": {
                          "type": "integer",
                          "description": "Services binding type"
                        }
                      }
                    },
                    {
                      "type": "array",
                      "maxItems": 0
                    }
                  ]
                },
                "position_id": {
                  "type": "number",
                  "description": "Position ID"
                },
                "show_rating": {
                  "type": "number",
                  "description": "Whether to show the team member's rating (1 - show, 0 - do not show)"
                },
                "rating": {
                  "type": "number",
                  "description": "team member Rating"
                },
                "votes_count": {
                  "type": "number",
                  "description": "Number of votes that rated the team member"
                },
                "avatar": {
                  "type": "string",
                  "description": "Path to team member avatar file"
                },
                "avatar_big": {
                  "type": "string",
                  "description": "Path to large team member avatar file"
                },
                "comments_count": {
                  "type": "number",
                  "description": "Number of comments to the team member"
                },
                "weight": {
                  "type": "integer",
                  "description": "team member weight. team members are sorted by weight on exit, heavier first"
                },
                "information": {
                  "type": "string",
                  "description": "Additional information about the team member (HTML format)"
                },
                "seance_date": {
                  "type": "string",
                  "description": "The date of the next day that there are available sessions (only for bookable = true)",
                  "format": "date"
                },
                "schedule_till": {
                  "type": "string",
                  "description": "Schedule available until date",
                  "format": "date"
                },
                "seances": {
                  "type": "array",
                  "description": "Available sessions",
                  "items": {
                    "type": "object"
                  }
                },
                "has_access_timetable": {
                  "type": "boolean",
                  "description": "Has access to timetable"
                },
                "image_group": {
                  "description": "Image group with different sizes (object or empty array)",
                  "oneOf": [
                    {
                      "type": "object",
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "maxItems": 0
                    }
                  ]
                },
                "fired": {
                  "type": "integer",
                  "description": "Whether team member is fired"
                },
                "status": {
                  "type": "integer",
                  "description": "Team member status"
                },
                "hidden": {
                  "type": "integer",
                  "description": "Whether team member is hidden"
                },
                "user": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "description": "User information"
                },
                "prepaid": {
                  "type": "string",
                  "description": "Prepaid status"
                }
              }
            }
          },
          "meta": {
            "type": "array",
            "description": "Metadata (empty array)",
            "items": {
              "type": "object"
            }
          }
        },
        "description": "Get a list of team members available for appointment",
        "example": {
          "success": true,
          "data": [
            {
              "id": 16,
              "name": "James",
              "bookable": true,
              "specialization": "Paramedic",
              "position": {
                "id": 1,
                "title": "Administrator"
              },
              "show_rating": 1,
              "rating": 3,
              "votes_count": 1,
              "avatar": "https://app.alteg.io/images/no-master.png",
              "comments_count": 0,
              "weight": 11,
              "information": "<span></span>",
              "seance_date": "2026-09-21",
              "seances": []
            },
            {
              "id": 32,
              "name": "Peter",
              "bookable": false,
              "specialization": "Therapist",
              "position": {},
              "show_rating": 1,
              "rating": 4,
              "votes_count": 1,
              "avatar": "https://app.alteg.io/images/no-master.png",
              "comments_count": 0,
              "weight": 8,
              "information": "<span></span>"
            }
          ],
          "meta": []
        }
      },
      "book_staff_seances_companyid_staffid_data_types": {
        "title": "Root Type for book_staff_seances_companyid_staffid",
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Execution success status (true)"
          },
          "data": {
            "type": "object",
            "properties": {
              "seance_date": {
                "type": "string",
                "description": "Upcoming date with available sessions",
                "format": "date"
              },
              "seances": {
                "type": "array",
                "description": "List of available sessions",
                "items": {
                  "type": "object",
                  "properties": {
                    "time": {
                      "type": "string",
                      "description": "Session time (HH:MM format)"
                    },
                    "seance_length": {
                      "type": "number",
                      "description": "Session duration in seconds"
                    },
                    "sum_length": {
                      "type": "number",
                      "description": "Total duration including all selected services in seconds"
                    },
                    "datetime": {
                      "type": "string",
                      "description": "Session date and time in ISO 8601 format",
                      "format": "date-time"
                    }
                  }
                }
              }
            },
            "description": "Object with data"
          },
          "meta": {
            "type": "array",
            "description": "Metadata (empty array)",
            "items": {
              "type": "object"
            }
          }
        },
        "description": "Get a list of the nearest available sessions",
        "example": {
          "success": true,
          "data": {
            "seance_date": "2026-09-21",
            "seances": [
              {
                "time": "10:00",
                "seance_length": 3600,
                "sum_length": 3600,
                "datetime": "2026-09-21T10:00:00-05:00"
              },
              {
                "time": "10:15",
                "seance_length": 3600,
                "sum_length": 3600,
                "datetime": "2026-09-21T10:15:00-05:00"
              },
              {
                "time": "10:30",
                "seance_length": 3600,
                "sum_length": 3600,
                "datetime": "2026-09-21T10:30:00-05:00"
              }
            ]
          },
          "meta": []
        }
      },
      "book_dates_companyid_data_types": {
        "title": "Root Type for book_dates_company_id_data_types",
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Execution success status (true)"
          },
          "data": {
            "type": "object",
            "properties": {
              "booking_days": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "array",
                      "items": {
                        "type": "integer"
                      }
                    }
                  },
                  {
                    "type": "array",
                    "maxItems": 0
                  }
                ],
                "description": "Object with month numbers as keys and arrays of available days as values (empty array when no data)"
              },
              "booking_dates": {
                "type": "array",
                "description": "An array of dates when there are free sessions for the service to the selected team member/organization",
                "items": {
                  "type": "string",
                  "format": "date"
                }
              },
              "working_days": {
                "oneOf": [
                  {
                    "type": "object",
                    "additionalProperties": {
                      "type": "array",
                      "items": {
                        "type": "integer"
                      }
                    }
                  },
                  {
                    "type": "array",
                    "maxItems": 0
                  }
                ],
                "description": "Object with month numbers as keys and arrays of working days as values (empty array when no data)"
              },
              "working_dates": {
                "type": "array",
                "description": "An array of dates when the team member/organization works",
                "items": {
                  "type": "string",
                  "format": "date"
                }
              }
            },
            "description": "Data (object)"
          },
          "meta": {
            "type": "array",
            "description": "Metadata (empty array)",
            "items": {
              "type": "object"
            }
          }
        },
        "description": "Get a list of dates available for appointment",
        "example": {
          "success": true,
          "data": {
            "booking_days": {
              "1": [
                10
              ],
              "12": [
                6,
                20,
                24,
                27
              ]
            },
            "booking_dates": [
              "2026-12-06",
              "2026-12-20",
              "2026-12-24",
              "2026-12-27",
              "2026-01-10"
            ],
            "working_days": {
              "1": [
                10
              ],
              "12": [
                4,
                6,
                8,
                13,
                15,
                20,
                22,
                24,
                27,
                29
              ]
            },
            "working_dates": [
              "2026-12-04",
              "2026-12-06",
              "2026-12-08",
              "2026-12-13",
              "2026-12-15"
            ]
          },
          "meta": []
        }
      },
      "book_times_companyid_data_types": {
        "title": "Root Type for book_times_company_id_data_types",
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Execution success status (true)"
          },
          "data": {
            "type": "array",
            "description": "Array of objects with data",
            "items": {
              "type": "object",
              "properties": {
                "time": {
                  "type": "string",
                  "description": "Session time (HH:MM format)"
                },
                "seance_length": {
                  "type": "number",
                  "description": "Session duration in seconds"
                },
                "sum_length": {
                  "type": "number",
                  "description": "Total duration including all selected services in seconds"
                },
                "datetime": {
                  "type": "string",
                  "description": "Session date and time in ISO 8601 format",
                  "format": "date-time"
                }
              }
            }
          },
          "meta": {
            "type": "array",
            "description": "Metadata (empty array)",
            "items": {
              "type": "object"
            }
          }
        },
        "description": "Get a List of Sessions Available for appointment",
        "example": {
          "success": true,
          "data": [
            {
              "time": "12:00",
              "seance_length": 3600,
              "datetime": "2026-09-21T23:00:00.000-05:00"
            },
            {
              "time": "13:00",
              "seance_length": 3600,
              "datetime": "2026-09-21T23:00:00.000-05:00"
            },
            {
              "time": "14:00",
              "seance_length": 3600,
              "datetime": "2026-09-21T23:00:00.000-05:00"
            },
            {
              "time": "15:00",
              "seance_length": 3600,
              "datetime": "2026-09-21T23:00:00.000-05:00"
            },
            {
              "time": "16:00",
              "seance_length": 3600,
              "datetime": "2026-09-21T23:00:00.000-05:00"
            }
          ],
          "meta": []
        }
      },
      "book_check_companyid_request_data_types": {
        "title": "Root Type for book_check_companyid_request_data_types",
        "required": [
          "appointments"
        ],
        "type": "object",
        "properties": {
          "appointments": {
            "type": "array",
            "description": "appointment options (services, team members...)",
            "items": {
              "type": "object"
            }
          }
        },
        "description": "Check appointment options",
        "example": {
          "appointments": [
            {
              "id": 1,
              "services": [
                331
              ],
              "staff_id": 6544,
              "datetime": "2026-09-21T23:00:00.000-05:00"
            },
            {
              "id": 2,
              "services": [
                99055
              ],
              "staff_id": 6544,
              "datetime": "2026-09-21T23:00:00.000-05:00"
            }
          ]
        }
      },
      "book_check_companyid_response201_data_types": {
        "title": "Root Type for book_check_companyid_response_data_types",
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Execution success status (true)"
          },
          "data": {
            "type": "null",
            "description": "Always null for this response"
          },
          "meta": {
            "type": "object",
            "properties": {
              "message": {
                "type": "string"
              }
            },
            "description": "metadata"
          }
        },
        "description": "Check appointment options",
        "example": {
          "success": true,
          "data": null,
          "meta": {
            "message": "Created"
          }
        }
      },
      "book_check_companyid_response422_data_types": {
        "title": "Root Type for book_check_companyid_response422_data_types",
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Execution success status (false for errors)"
          },
          "data": {
            "type": "null",
            "description": "Always null for error responses"
          },
          "meta": {
            "type": "object",
            "properties": {
              "message": {
                "type": "string",
                "description": "Error message"
              },
              "errors": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "number",
                      "description": "Internal error code",
                      "format": "int32"
                    },
                    "message": {
                      "type": "string",
                      "description": "Error Description"
                    }
                  }
                }
              }
            },
            "description": "metadata"
          }
        },
        "description": "Check appointment options",
        "example": {
          "success": false,
          "data": null,
          "meta": {
            "message": "An error has occurred",
            "errors": [
              {
                "code": 422,
                "message": "No services or promotions set"
              },
              {
                "code": 433,
                "message": "Team Member (0) cannot be booked on May 30, 2021 at 15:30. The selected time is already taken or is not working."
              },
              {
                "code": 436,
                "message": "No team members available for enrollment"
              },
              {
                "code": 437,
                "message": "Team Member John Doe (6544) cannot be booked for May 30, 2021 at 15:30. Intersection with previous visit."
              },
              {
                "code": 438,
                "message": "There is no appointment for the specified service/promotion"
              }
            ]
          }
        }
      },
      "book_record_companyid_request_data_types": {
        "title": "Root Type for book_record_companyid_request_data_types",
        "required": [
          "fullname",
          "phone"
        ],
        "type": "object",
        "properties": {
          "phone": {
            "type": "string",
            "description": "Customer phone"
          },
          "fullname": {
            "type": "string",
            "description": "Client name"
          },
          "email": {
            "type": "string",
            "description": "Postal address of the client"
          },
          "code": {
            "type": "number",
            "description": "SMS confirmation code for verifying the phone number. This field is required if the location has phone_confirmation = true"
          },
          "comment": {
            "type": "string",
            "description": "Commentary on the post"
          },
          "type": {
            "type": "string",
            "description": "Appointment source"
          },
          "notify_by_sms": {
            "type": "number",
            "description": "Specifies how many hours before the visit an SMS reminder should be sent to the client. Set to 0 if no reminder is needed."
          },
          "notify_by_email": {
            "type": "number",
            "description": "Specifies how many hours before the visit an email reminder should be sent to the client. Set to 0 if no reminder is needed."
          },
          "api_id": {
            "type": "number",
            "description": "Appointment ID from external system"
          },
          "appointments": {
            "type": "array",
            "description": "Appointment options (session, services, team member)",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "number",
                  "description": "Appointment ID by which its hash will be returned in response"
                },
                "services": {
                  "type": "array",
                  "description": "List of service IDs to write",
                  "items": {
                    "type": "number"
                  }
                },
                "staff_id": {
                  "type": "number",
                  "description": "team member ID"
                },
                "datetime": {
                  "type": "string",
                  "description": "10-01T17:00:00Z\\' (required, string) - Session date and time",
                  "format": "date-time"
                },
                "custom_fields": {
                  "type": "object",
                  "properties": {
                    "my_custom_field": {
                      "type": "number"
                    },
                    "some_another_field": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "description": "Additional appointment fields"
                }
              }
            }
          }
        },
        "description": "Create a session appointment",
        "example": {
          "phone": "+13155550175",
          "fullname": "James Smith",
          "email": "j.smith@example.com",
          "code": 38829,
          "comment": "test appointment!",
          "type": "mobile",
          "notify_by_sms": 6,
          "notify_by_email": 24,
          "api_id": 777,
          "appointments": [
            {
              "id": 1,
              "services": [
                331
              ],
              "staff_id": 6544,
              "datetime": "2026-09-21T23:00:00.000-05:00",
              "custom_fields": {
                "my_custom_field": 123,
                "some_another_field": [
                  "first value",
                  "next value"
                ]
              }
            },
            {
              "id": 2,
              "services": [
                99055
              ],
              "staff_id": 6544,
              "datetime": "2026-09-21T23:00:00.000-05:00",
              "custom_fields": {
                "my_custom_field": 456,
                "some_another_field": [
                  "next value",
                  "last value"
                ]
              }
            }
          ]
        }
      },
      "book_record_companyid_response_data_types": {
        "title": "Root Type for book_record_companyid_response_data_types",
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Execution success status (true)"
          },
          "data": {
            "type": "array",
            "description": "Data (array of objects)",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "number",
                  "description": "The post ID passed in the request to appontments"
                },
                "record_id": {
                  "type": "number",
                  "description": "ID of the appointment in the Altegio system. Used to delete an appointment"
                },
                "record_hash": {
                  "type": "string",
                  "description": "HASH appointments in the Altegio system. Used to delete an appointment by an unauthorized user immediately after appointment"
                }
              }
            }
          },
          "meta": {
            "type": "array",
            "description": "Metadata (empty array)",
            "items": {
              "type": "object"
            }
          }
        },
        "description": "Move appointment to session",
        "example": {
          "success": true,
          "data": [
            {
              "id": 1,
              "record_id": 2820023,
              "record_hash": "567df655304da9b98487769426d4e76e"
            },
            {
              "id": 2,
              "record_id": 2820024,
              "record_hash": "34a45ddabdd446d5d33bdd27fbf855b2"
            }
          ],
          "meta": []
        }
      },
      "book_record_companyid_recordid_recordhash_response_data_types": {
        "title": "Root Type for book_record_companyid_recordid_recordhash_response_data_types",
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "description": "Appointment ID"
          },
          "services": {
            "type": "array",
            "description": "Service ID List",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "number",
                  "description": "Service ID"
                },
                "title": {
                  "type": "string",
                  "description": "Service name"
                },
                "amount": {
                  "type": "integer",
                  "description": "Number of ordered services",
                  "format": "int32"
                },
                "seance_length": {
                  "type": "integer",
                  "description": "Service duration in seconds (only if filter by team member is set)",
                  "format": "int32"
                },
                "cost": {
                  "type": "number",
                  "description": "Service cost"
                },
                "price_min": {
                  "type": "number",
                  "description": "Minimum service price"
                },
                "price_max": {
                  "type": "number",
                  "description": "Maximum service price"
                },
                "discount": {
                  "type": "number",
                  "description": "Discount amount"
                }
              }
            }
          },
          "company": {
            "type": "object",
            "properties": {
              "id": {
                "type": "number",
                "description": "location ID"
              },
              "title": {
                "type": "string",
                "description": "location name"
              },
              "country_id": {
                "type": "number",
                "description": "Country ID"
              },
              "country": {
                "type": "string",
                "description": "The name of the country in which the organization is located"
              },
              "city_id": {
                "type": "number",
                "description": "City ID"
              },
              "city": {
                "type": "string",
                "description": "Name of the city where the organization is located"
              },
              "phone": {
                "type": "string",
                "description": "location phone"
              },
              "phones": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "timezone": {
                "type": "string",
                "description": "location time zone"
              },
              "address": {
                "type": "string",
                "description": "location address"
              },
              "coordinate_lat": {
                "type": "number",
                "description": "Latitude",
                "format": "double"
              },
              "coordinate_lon": {
                "type": "number",
                "description": "Longitude",
                "format": "double"
              },
              "allow_delete_record": {
                "type": "boolean"
              },
              "allow_change_record": {
                "type": "boolean"
              },
              "site": {
                "type": "string"
              },
              "currency_short_title": {
                "type": "string"
              },
              "allow_change_record_delay_step": {
                "type": "integer",
                "format": "int32"
              },
              "allow_delete_record_delay_step": {
                "type": "integer",
                "format": "int32"
              }
            },
            "description": "location parameters"
          },
          "staff": {
            "type": "object",
            "properties": {
              "id": {
                "type": "number",
                "description": "team member ID"
              },
              "name": {
                "type": "string",
                "description": "team member name"
              },
              "specialization": {
                "type": "string",
                "description": "team member specialization"
              },
              "position": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "number",
                    "description": "Job ID"
                  },
                  "title": {
                    "type": "string",
                    "description": "Job title"
                  }
                },
                "description": "team member's position"
              },
              "show_rating": {
                "type": "number",
                "description": "Whether to show team member rating (1 - show, 0 - do not show)"
              },
              "rating": {
                "type": "number",
                "description": "team member rating (from 0 to 5)",
                "format": "double"
              },
              "votes_count": {
                "type": "number",
                "description": "Number of votes that rated the team member"
              },
              "avatar": {
                "type": "string",
                "description": "Path to team member profile picture"
              },
              "comments_count": {
                "type": "number",
                "description": "Number of comments to a team member"
              }
            },
            "description": "team member parameters"
          },
          "clients_count": {
            "type": "integer",
            "format": "int32"
          },
          "date": {
            "type": "string",
            "description": "04-02T12:00:00Z\\' (required, string) - Session date",
            "format": "date-time"
          },
          "datetime": {
            "type": "string",
            "description": "Session date in ISO",
            "format": "date-time"
          },
          "create_date": {
            "type": "string",
            "description": "04-02T12:00:00Z\\' (required, string) - Appointment creation date",
            "format": "date-time"
          },
          "comment": {
            "type": "string",
            "description": "Appointment Comment"
          },
          "deleted": {
            "type": "boolean",
            "description": "Whether the appointment was made (true if removed)"
          },
          "attendance": {
            "type": "number",
            "description": "2 - the user confirmed the appointment, 1 - the user came, the services were provided, 0 - the user was waiting, -1 - the user did not show'"
          },
          "length": {
            "type": "number",
            "description": "Session duration"
          },
          "notify_by_sms": {
            "type": "number",
            "description": "Specifies how many hours in advance an SMS reminder should be sent before the appointment. Set to 0 to disable SMS reminders"
          },
          "notify_by_email": {
            "type": "number",
            "description": "Specifies how many hours in advance an email reminder should be sent before the appointment. Set to 0 to disable email reminders"
          },
          "master_requested": {
            "type": "boolean",
            "description": "Indicates whether a specific team member was selected for the appointment. Set to false if the \"any team member\" option was chosen."
          },
          "online": {
            "type": "boolean",
            "description": "Indicates whether the appointment was created online by the client (true) or manually by an administrator (false)"
          },
          "api_id": {
            "type": "string",
            "description": "External appointment ID"
          },
          "last_change_date": {
            "type": "string",
            "description": "The date and time when the appointment was last modified",
            "format": "date-time"
          },
          "prepaid": {
            "type": "boolean",
            "description": "Indicates whether online payment is available for the appointment"
          },
          "prepaid_confirmed": {
            "type": "boolean",
            "description": "Online payment status"
          },
          "activity_id": {
            "type": "number",
            "description": "group  event ID"
          }
        },
        "description": "Get an Appointment",
        "example": {
          "id": 13132699,
          "services": [
            {
              "id": 389043,
              "title": "Correction of extended nails",
              "cost": 2300,
              "price_min": 2300,
              "price_max": 2300,
              "discount": 0,
              "amount": 1,
              "seance_length": 1800
            }
          ],
          "company": {
            "id": 4564,
            "title": "Nail studio",
            "country_id": 7,
            "country": "United States",
            "city_id": 2,
            "city": "New York",
            "phone": "+13155550175",
            "phones": [],
            "timezone": "12",
            "address": "New York, 787 Jackson Drive",
            "coordinate_lat": 40.73061,
            "coordinate_lon": -73.935242,
            "allow_delete_record": true,
            "allow_change_record": true,
            "site": "www.example.com",
            "currency_short_title": "USD",
            "allow_change_record_delay_step": 0,
            "allow_delete_record_delay_step": 0
          },
          "staff": {
            "id": 55436,
            "name": "Natalie Parker",
            "specialization": "Team Member in manicure and pedicure",
            "position": {
              "id": 446,
              "title": "Manicurist"
            },
            "show_rating": 1,
            "rating": 4.84,
            "votes_count": 0,
            "avatar": "http://example.com/image.png",
            "comments_count": 37
          },
          "clients_count": 1,
          "date": "2026-09-21T23:00:00.000-05:00",
          "datetime": "2026-10-24T17:30:00-0500",
          "create_date": "2026-10-20T21:40:24-0500",
          "comment": "",
          "deleted": true,
          "attendance": 0,
          "length": 1800,
          "notify_by_sms": 0,
          "notify_by_email": 0,
          "master_requested": false,
          "online": true,
          "api_id": "",
          "last_change_date": "2026-10-24T23:54:02-0500",
          "prepaid": false,
          "prepaid_confirmed": false,
          "activity_id": 0
        }
      },
      "book_record_companyid_record_request_data_types": {
        "title": "Root Type for book_record_companyid_record_request_data_types",
        "type": "object",
        "properties": {
          "datetime": {
            "type": "string",
            "description": "Date and time to which we want to move the appointment",
            "format": "date-time"
          },
          "comment": {
            "type": "string",
            "description": "Appointment Comment"
          }
        },
        "description": "Move appointment to session",
        "example": {
          "datetime": "2026-09-21T23:00:00.000-05:00",
          "comment": "DODO!"
        }
      },
      "book_record_companyid_record_response_data_types": {
        "title": "Root Type for book_record_companyid_record_respnse_data_types",
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Execution success status (true)"
          },
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "Appointment ID",
                "format": "int32"
              },
              "services": {
                "type": "array",
                "description": "Service ID List",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "format": "int32"
                    },
                    "title": {
                      "type": "string"
                    },
                    "cost": {
                      "type": "integer",
                      "format": "int32"
                    },
                    "discount": {
                      "type": "integer",
                      "format": "int32"
                    }
                  }
                }
              },
              "company": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "location ID",
                    "format": "int32"
                  },
                  "title": {
                    "type": "string",
                    "description": "Name of the organization"
                  },
                  "country_id": {
                    "type": "number",
                    "description": "Country ID"
                  },
                  "country": {
                    "type": "string",
                    "description": "The name of the country in which the organization is located"
                  },
                  "city_id": {
                    "type": "number",
                    "description": "City ID"
                  },
                  "city": {
                    "type": "string",
                    "description": "Name of the city where the organization is located"
                  },
                  "phone": {
                    "type": "string",
                    "description": "location phone"
                  },
                  "timezone": {
                    "type": "string",
                    "description": "location time zone"
                  },
                  "address": {
                    "type": "string",
                    "description": "location address"
                  },
                  "coordinate_lat": {
                    "type": "number",
                    "description": "Latitude"
                  },
                  "coordinate_lon": {
                    "type": "number",
                    "description": "Longitude"
                  }
                },
                "description": "location parameters"
              },
              "staff": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "team member ID",
                    "format": "int32"
                  },
                  "name": {
                    "type": "string",
                    "description": "team member name"
                  },
                  "spec": {
                    "type": "string",
                    "description": "team member specialization"
                  },
                  "show_rating": {
                    "type": "number",
                    "description": "Whether to show team member rating (1 - show, 0 - do not show)"
                  },
                  "rating": {
                    "type": "number",
                    "description": "team member rating (from 0 to 5)"
                  },
                  "votes_count": {
                    "type": "number",
                    "description": "Number of votes that rated the team member"
                  },
                  "avatar": {
                    "type": "string",
                    "description": "Path to team member profile picture"
                  },
                  "comments_count": {
                    "type": "number",
                    "description": "Number of comments to a team member"
                  }
                },
                "description": "team member parameters"
              },
              "date": {
                "type": "string",
                "description": "04-02T12:00:00Z\\' (required, string) - Session date",
                "format": "date-time"
              },
              "create_date": {
                "type": "string",
                "description": "04-02T12:00:00Z\\' (required, string) - Appointment creation date",
                "format": "date-time"
              },
              "comment": {
                "type": "string",
                "description": "Appointment Comment"
              },
              "deleted": {
                "type": "boolean",
                "description": "Whether the appointment was made (true if removed)"
              },
              "length": {
                "type": "number",
                "description": "Session duration"
              },
              "notify_by_sms": {
                "type": "number",
                "description": "Specifies how many hours before the visit an SMS reminder should be sent to the client. Set to 0 if no reminder is needed."
              },
              "notify_by_email": {
                "type": "number",
                "description": "Specifies how many hours before the visit an email reminder should be sent to the client. Set to 0 if no reminder is needed."
              },
              "master_requested": {
                "type": "boolean",
                "description": "Indicates whether a specific team member was selected for the appointment. Set to false if the \"any team member\" option was chosen."
              },
              "online": {
                "type": "boolean",
                "description": "Indicates whether the appointment was created online by the client (true) or manually by an administrator (false)"
              },
              "api_id": {
                "type": "number",
                "description": "Appointment ID from external system"
              }
            },
            "description": "Data (object)"
          }
        },
        "description": "Move appointment to session",
        "example": {
          "success": true,
          "data": {
            "id": 30358,
            "services": [
              {
                "id": 2838,
                "title": "Foot massage",
                "cost": 0,
                "discount": 0
              }
            ],
            "company": {
              "id": 4564,
              "title": "Business Example",
              "country_id": 0,
              "country": "United States",
              "city_id": 0,
              "city": "New York",
              "phone": "+13155550175",
              "timezone": "0",
              "address": "New York, 787 Jackson Drive",
              "coordinate_lat": 40.73061,
              "coordinate_lon": -73.935242
            },
            "staff": {
              "id": 924,
              "name": "Evgenia",
              "spec": "about eu",
              "show_rating": 1,
              "rating": 5,
              "votes_count": 1,
              "avatar": "https://app.alteg.io/images/no-master.png",
              "comments_count": 0
            },
            "date": "2026-09-21T23:00:00.000-05:00",
            "create_date": "2026-09-21T23:00:00.000-05:00",
            "comment": "",
            "deleted": true,
            "length": 3600,
            "notify_by_sms": 0,
            "notify_by_email": 0,
            "master_requested": false,
            "online": true,
            "api_id": 0
          }
        }
      },
      "event_book_request": {
        "title": "Book Event Request",
        "required": [
          "fullname",
          "phone",
          "email"
        ],
        "type": "object",
        "properties": {
          "fullname": {
            "type": "string",
            "description": "Client name"
          },
          "phone": {
            "type": "string",
            "description": "Customer phone (for example +13155550175)"
          },
          "email": {
            "type": "string",
            "description": "Postal address of the client"
          },
          "code": {
            "type": "number",
            "description": "SMS confirmation code for verifying the phone number. This field is required if the location has phone_confirmation = true"
          },
          "comment": {
            "type": "string",
            "description": "Appointment Comment"
          },
          "notify_by_sms": {
            "type": "integer",
            "description": "Specifies how many hours in advance an SMS reminder should be sent before the appointment. Set to 0 to disable SMS reminders.",
            "format": "int32"
          },
          "notify_by_email": {
            "type": "integer",
            "description": "Specifies how many hours in advance an email reminder should be sent before the appointment. Set to 0 to disable email reminders",
            "format": "int32"
          },
          "type": {
            "type": "string",
            "description": "Appointment source"
          },
          "api_id": {
            "type": "number",
            "description": "Appointment ID from external system"
          },
          "clients_count": {
            "type": "number",
            "description": "number of seats"
          }
        },
        "description": "Book Event request body",
        "example": {
          "fullname": "James Smith",
          "phone": "+13155550175",
          "email": "j.smith@example.com",
          "code": 0,
          "comment": "",
          "notify_by_sms": 0,
          "notify_by_email": 0,
          "type": "mobile"
        }
      },
      "event_book_response": {
        "title": "Book Event Response",
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Execution success status (true)"
          },
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "Appointment ID",
                "format": "int32"
              },
              "hash": {
                "type": "string",
                "description": "Appointment ID, for deleting it immediately after creation"
              }
            },
            "description": "Object with data"
          },
          "meta": {
            "type": "array",
            "description": "Metadata (empty array)",
            "items": {
              "type": "object"
            }
          }
        },
        "description": "Book Event response with created Appointment details",
        "example": {
          "success": true,
          "data": {
            "id": 28417878,
            "hash": "9e6a54a1a9b118b65cc39ab6f3c3b5b4"
          },
          "meta": []
        }
      },
      "response_meta_validation_exception_object": {
        "title": "Request validation error message",
        "type": "object",
        "description": "Additional response data.",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error message.",
            "example": "An error has occurred."
          },
          "errors": {
            "type": "array",
            "description": "Set of a validation error messages.",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          }
        }
      },
      "422_unprocessable_entity_response": {
        "type": "object",
        "properties": {
          "success": {
            "$ref": "#/components/schemas/response_success_false_object"
          },
          "data": {
            "$ref": "#/components/schemas/response_data_null_object"
          },
          "meta": {
            "$ref": "#/components/schemas/response_meta_validation_exception_object"
          }
        }
      },
      "booking_user_update_info_request_data_types": {
        "title": "Root Type for booking_user_update_info_data_types",
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name"
          },
          "email": {
            "type": "string",
            "description": "mail"
          },
          "phone": {
            "type": "string",
            "description": "Phone number"
          },
          "confirmation_code": {
            "type": "string",
            "description": "SMS confirmation code (when changing phone number)"
          }
        },
        "description": "Updating User Data in Online Booking",
        "example": {
          "name": "James Smith",
          "email": "j.smith@example.com",
          "phone": "+13155550175",
          "confirmation_code": "1234"
        }
      },
      "booking_user_get_data_response_data_types": {
        "title": "Root Type for booking_user_get_data_response_data_types",
        "type": "object",
        "properties": {
          "0": {
            "type": "string",
            "description": "User Token"
          },
          "id": {
            "type": "integer",
            "description": "User ID",
            "format": "int32"
          },
          "user_token": {
            "type": "string",
            "description": "User Token"
          },
          "name": {
            "type": "string",
            "description": "Username"
          },
          "phone": {
            "type": "string",
            "description": "User phone"
          },
          "login": {
            "type": "string",
            "description": "User login"
          },
          "email": {
            "type": "string",
            "description": "User mail"
          },
          "avatar": {
            "type": "string",
            "description": "User avatar"
          }
        },
        "description": "Retrieving Online Booking User Data",
        "example": {
          "0": "152afb01134237bc844d7e",
          "id": 32132133,
          "user_token": "152afb01134237bc844d7e",
          "name": "James Smith",
          "phone": "+13155550175",
          "login": "j.smith",
          "email": "j.smith@example.com",
          "avatar": "https://api.alteg.io/images/avatar.png"
        }
      },
      "booking_user_update_password_request_data_types": {
        "title": "Root Type for booking_user_update_password_data_types",
        "type": "object",
        "properties": {
          "old_password": {
            "type": "string",
            "description": "Current Password"
          },
          "new_password": {
            "type": "string",
            "description": "New password"
          }
        },
        "description": "Online Booking User Password Update",
        "example": {
          "old_password": "qwerty123",
          "new_password": "example!"
        }
      },
      "booking_user_update_password_response_data_types": {
        "title": "Root Type for booking_user_update_password_data_types",
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Execution success status (true)"
          },
          "data": {
            "type": "object",
            "properties": {
              "user_token": {
                "type": "string",
                "description": "New User-token of the user"
              }
            },
            "description": "Object with data"
          },
          "meta": {
            "type": "array",
            "description": "Metadata (empty array)",
            "items": {
              "type": "object"
            }
          }
        },
        "description": "Online Booking User Password Update",
        "example": {
          "success": true,
          "data": {
            "user_token": "4de9d8cc108c0"
          },
          "meta": []
        }
      },
      "user_records_response_data_types": {
        "title": "Root Type for user_records_response_data_types",
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Execution success status (true)"
          },
          "data": {
            "type": "array",
            "description": "Array of objects",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "number",
                  "description": "Appointment ID"
                },
                "services": {
                  "type": "array",
                  "description": "Service ID List",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "number",
                        "description": "Service ID"
                      },
                      "title": {
                        "type": "string",
                        "description": "Service name"
                      },
                      "amount": {
                        "type": "integer",
                        "description": "Number of ordered services",
                        "format": "int32"
                      },
                      "seance_length": {
                        "type": "integer",
                        "description": "Service duration in seconds (only if filter by team member is set)",
                        "format": "int32"
                      },
                      "cost": {
                        "type": "number",
                        "description": "Service cost"
                      },
                      "price_min": {
                        "type": "number",
                        "description": "Minimum service price"
                      },
                      "price_max": {
                        "type": "number",
                        "description": "Maximum service price"
                      },
                      "discount": {
                        "type": "number",
                        "description": "Discount amount"
                      }
                    }
                  }
                },
                "company": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number",
                      "description": "location ID"
                    },
                    "title": {
                      "type": "string",
                      "description": "location name"
                    },
                    "country_id": {
                      "type": "number",
                      "description": "Country ID"
                    },
                    "country": {
                      "type": "string",
                      "description": "The name of the country in which the organization is located"
                    },
                    "city_id": {
                      "type": "number",
                      "description": "City ID"
                    },
                    "city": {
                      "type": "string",
                      "description": "Name of the city where the organization is located"
                    },
                    "phone": {
                      "type": "string",
                      "description": "location phone"
                    },
                    "phones": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "timezone": {
                      "type": "string",
                      "description": "location time zone"
                    },
                    "address": {
                      "type": "string",
                      "description": "location address"
                    },
                    "coordinate_lat": {
                      "type": "number",
                      "description": "Latitude",
                      "format": "double"
                    },
                    "coordinate_lon": {
                      "type": "number",
                      "description": "Longitude",
                      "format": "double"
                    },
                    "allow_delete_record": {
                      "type": "boolean"
                    },
                    "allow_change_record": {
                      "type": "boolean"
                    },
                    "site": {
                      "type": "string"
                    },
                    "currency_short_title": {
                      "type": "string"
                    },
                    "allow_change_record_delay_step": {
                      "type": "integer",
                      "format": "int32"
                    },
                    "allow_delete_record_delay_step": {
                      "type": "integer",
                      "format": "int32"
                    }
                  },
                  "description": "location parameters"
                },
                "staff": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number",
                      "description": "team member ID"
                    },
                    "name": {
                      "type": "string",
                      "description": "team member name"
                    },
                    "specialization": {
                      "type": "string",
                      "description": "team member specialization"
                    },
                    "position": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "number",
                          "description": "Job ID"
                        },
                        "title": {
                          "type": "string",
                          "description": "Job title"
                        }
                      },
                      "description": "team member's position"
                    },
                    "show_rating": {
                      "type": "number",
                      "description": "Whether to show team member rating (1 - show, 0 - do not show)"
                    },
                    "rating": {
                      "type": "number",
                      "description": "team member rating (from 0 to 5)",
                      "format": "double"
                    },
                    "votes_count": {
                      "type": "number",
                      "description": "Number of votes that rated the team member"
                    },
                    "avatar": {
                      "type": "string",
                      "description": "Path to team member profile picture"
                    },
                    "comments_count": {
                      "type": "number",
                      "description": "Number of comments to a team member"
                    }
                  },
                  "description": "team member parameters"
                },
                "clients_count": {
                  "type": "integer",
                  "format": "int32"
                },
                "date": {
                  "type": "string",
                  "description": "04-02T12:00:00Z\\' (required, string) - Session date",
                  "format": "date-time"
                },
                "datetime": {
                  "type": "string",
                  "description": "Session date in ISO",
                  "format": "date-time"
                },
                "create_date": {
                  "type": "string",
                  "description": "04-02T12:00:00Z\\' (required, string) - Appointment creation date",
                  "format": "date-time"
                },
                "comment": {
                  "type": "string",
                  "description": "Appointment Comment"
                },
                "deleted": {
                  "type": "boolean",
                  "description": "Whether the appointment was made (true if removed)"
                },
                "attendance": {
                  "type": "number",
                  "description": "2 - the user confirmed the appointment, 1 - the user came, the services were provided, 0 - the user was waiting, -1 - the user did not show"
                },
                "length": {
                  "type": "number",
                  "description": "Appointment duration in seconds. Includes technical_break_duration. Equal to the sum of services plus the technical break."
                },
                "notify_by_sms": {
                  "type": "number",
                  "description": "Specifies how many hours in advance an SMS reminder should be sent before the appointment. Set to 0 to disable SMS reminders"
                },
                "notify_by_email": {
                  "type": "number",
                  "description": "Specifies how many hours in advance an email reminder should be sent before the appointment. Set to 0 to disable email reminders"
                },
                "master_requested": {
                  "type": "boolean",
                  "description": "Indicates whether a specific team member was selected for the appointment. Set to false if the \"any team member\" option was chosen"
                },
                "online": {
                  "type": "boolean",
                  "description": "Indicates whether the appointment was created online by the client (true) or manually by an administrator (false)"
                },
                "api_id": {
                  "type": "string",
                  "description": "External appointment ID"
                },
                "last_change_date": {
                  "type": "string",
                  "description": "The date and time when the appointment was last modified",
                  "format": "date-time"
                },
                "prepaid": {
                  "type": "boolean",
                  "description": "Indicates whether online payment is available for the appointment"
                },
                "prepaid_confirmed": {
                  "type": "boolean",
                  "description": "Online payment status"
                },
                "activity_id": {
                  "type": "number",
                  "description": "Group event ID"
                }
              }
            }
          },
          "meta": {
            "type": "array",
            "description": "Metadata (empty array)",
            "items": {
              "type": "object"
            }
          }
        },
        "description": "Get User Appointments",
        "example": {
          "success": true,
          "data": [
            {
              "id": 13132699,
              "services": [
                {
                  "id": 389043,
                  "title": "Correction of extended nails",
                  "cost": 2300,
                  "price_min": 2300,
                  "price_max": 2300,
                  "discount": 0,
                  "amount": 1,
                  "seance_length": 1800
                }
              ],
              "company": {
                "id": 4564,
                "title": "Nail studio",
                "country_id": 7,
                "country": "United States",
                "city_id": 2,
                "city": "New York",
                "phone": "+13155550175",
                "phones": [],
                "timezone": "-5",
                "address": "New York, 787 Jackson Drive",
                "coordinate_lat": 40.73061,
                "coordinate_lon": -73.935242,
                "allow_delete_record": true,
                "allow_change_record": true,
                "site": "www.example.com",
                "currency_short_title": "USD",
                "allow_change_record_delay_step": 0,
                "allow_delete_record_delay_step": 0
              },
              "staff": {
                "id": 55436,
                "name": "Natalie Parker",
                "specialization": "Team Member in manicure and pedicure",
                "position": {
                  "id": 446,
                  "title": "Manicurist"
                },
                "show_rating": 1,
                "rating": 4.84,
                "votes_count": 0,
                "avatar": "http://example.com/image.png",
                "comments_count": 37
              },
              "clients_count": 1,
              "date": "2026-09-21T23:00:00.000-05:00",
              "datetime": "2026-10-24T17:30:00-0500",
              "create_date": "2026-10-20T21:40:24-0500",
              "comment": "",
              "deleted": true,
              "attendance": 0,
              "length": 1800,
              "notify_by_sms": 0,
              "notify_by_email": 0,
              "master_requested": false,
              "online": true,
              "api_id": "",
              "last_change_date": "2026-10-24T23:54:02-0500",
              "prepaid": false,
              "prepaid_confirmed": false,
              "activity_id": 0
            },
            {
              "id": 13133413,
              "services": [
                {
                  "id": 389045,
                  "title": "Hand massage (10 min)",
                  "cost": 300,
                  "price_min": 300,
                  "price_max": 400,
                  "discount": 0,
                  "amount": 1,
                  "seance_length": 1800
                }
              ],
              "company": {
                "id": 4564,
                "title": "Nail studio",
                "country_id": 7,
                "country": "United States",
                "city_id": 2,
                "city": "New York",
                "phone": "+13155550175",
                "phones": [],
                "timezone": "-5",
                "address": "New York, 787 Jackson Drive",
                "coordinate_lat": 40.73061,
                "coordinate_lon": -73.935242,
                "allow_delete_record": true,
                "allow_change_record": true,
                "site": "www.example.com",
                "currency_short_title": "USD",
                "allow_change_record_delay_step": 0,
                "allow_delete_record_delay_step": 0
              },
              "staff": {
                "id": 55436,
                "name": "Natalie Parker",
                "specialization": "Team Member in manicure and pedicure",
                "position": {
                  "id": 446,
                  "title": "Manicurist"
                },
                "show_rating": 1,
                "rating": 4.84,
                "votes_count": 0,
                "avatar": "http://example.com/image.png",
                "comments_count": 37
              },
              "clients_count": 1,
              "date": "2026-09-21T23:00:00.000-05:00",
              "datetime": "2026-10-24T17:30:00-0500",
              "create_date": "2026-10-20T21:40:24-0500",
              "comment": "",
              "deleted": true,
              "attendance": 0,
              "length": 1800,
              "notify_by_sms": 0,
              "notify_by_email": 0,
              "master_requested": false,
              "online": true,
              "api_id": "",
              "last_change_date": "2026-10-24T23:54:02-0500",
              "prepaid": false,
              "prepaid_confirmed": false,
              "activity_id": 0
            }
          ],
          "meta": []
        }
      },
      "master_record_review_response_data_types": {
        "title": "Root Type for master_record_review_response_data_types",
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Execution success status (true)"
          },
          "data": {
            "type": "object",
            "properties": {
              "favicon_url": {
                "type": "string",
                "description": "Let to the logo"
              },
              "is_review_submitted": {
                "type": "boolean",
                "description": "Has feedback been sent?"
              },
              "page_title": {
                "type": "string",
                "description": "Page Title"
              },
              "master": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "team member ID",
                    "format": "int32"
                  },
                  "name": {
                    "type": "string",
                    "description": "team member name"
                  },
                  "company_id": {
                    "type": "number",
                    "description": "location ID"
                  },
                  "specialization": {
                    "type": "string",
                    "description": "team member specialization"
                  },
                  "rating": {
                    "type": "integer",
                    "description": "Rating",
                    "format": "int32"
                  },
                  "show_rating": {
                    "type": "integer",
                    "description": "Number of votes",
                    "format": "int32"
                  },
                  "avatar": {
                    "type": "string",
                    "description": "Path to team member profile picture"
                  },
                  "prepaid": {
                    "type": "string",
                    "description": "Is prepayment allowed"
                  },
                  "position": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "number",
                        "description": "Job ID"
                      },
                      "title": {
                        "type": "string",
                        "description": "Job title"
                      }
                    },
                    "description": "Position"
                  }
                },
                "description": "team member"
              },
              "company": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "number",
                    "description": "location ID"
                  },
                  "title": {
                    "type": "string",
                    "description": "location name"
                  },
                  "logo": {
                    "type": "string",
                    "description": "The path to the location logo"
                  },
                  "address": {
                    "type": "string",
                    "description": "Address where the location is located"
                  }
                },
                "description": "location"
              },
              "tips": {
                "type": "array",
                "description": "Tips",
                "items": {
                  "type": "object"
                }
              },
              "record": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "number",
                    "description": "Appointment ID"
                  },
                  "payed_cost": {
                    "type": "number",
                    "description": "Paid cost"
                  },
                  "date": {
                    "type": "string",
                    "description": "date",
                    "format": "date-time"
                  }
                },
                "description": "Recording"
              },
              "currency": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "number",
                    "description": "Currency identifier"
                  },
                  "iso": {
                    "type": "string",
                    "description": "Name in ISO format"
                  },
                  "name": {
                    "type": "string",
                    "description": "Currency name"
                  },
                  "symbol": {
                    "type": "string",
                    "description": "Currency designation"
                  },
                  "is_symbol_after_amount": {
                    "type": "boolean"
                  }
                },
                "description": "location currency"
              },
              "agreement_links": {
                "type": "object",
                "properties": {
                  "terms_of_use": {
                    "type": "string",
                    "description": "Processing of personal data"
                  },
                  "confidentiality_agreement": {
                    "type": "string",
                    "description": "Privacy Policy"
                  }
                },
                "description": "Links to agreements"
              },
              "language": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "number",
                    "description": "Language ID"
                  },
                  "locale": {
                    "type": "string",
                    "description": "Localization"
                  },
                  "iso": {
                    "type": "string",
                    "description": "Name in ISO format"
                  }
                },
                "description": "Language"
              }
            },
            "description": "Object with data"
          },
          "meta": {
            "type": "array",
            "description": "Metadata (empty array)",
            "items": {
              "type": "object"
            }
          }
        },
        "description": "Get feedback form status",
        "example": {
          "success": true,
          "data": {
            "favicon_url": "https://www.app.alteg.io/favicon.png",
            "is_review_submitted": false,
            "page_title": "Leave feedback",
            "master": {
              "id": 58961,
              "name": "Alex Johnson",
              "company_id": 28939,
              "specialization": "Permanent Makeup, Artistic Tattoo",
              "rating": 5,
              "show_rating": 1,
              "avatar": "https://www.app.alteg.io/uploads/masters/sm/20161014151227_5360.jpg",
              "prepaid": "forbidden",
              "position": {
                "id": 2185,
                "title": "Master PM"
              }
            },
            "company": {
              "id": 28939,
              "title": "\"Eyes-n-Lips\" New York",
              "logo": "https://www.app.alteg.io/uploads/s_a6f66721046345a6226ac3040a57fb7d.jpg",
              "address": "New York, 787 Jackson Drive"
            },
            "tips": [],
            "record": {
              "id": 8219891,
              "payed_cost": 2000,
              "date": "2026-08-11T15:00:00-0500"
            },
            "currency": {
              "id": 1,
              "iso": "USD",
              "name": "US Dollar",
              "symbol": "USD",
              "is_symbol_after_amount": true
            },
            "agreement_links": {
              "terms_of_use": "https://www.app.alteg.io/info/terms-of-use-review-tips",
              "confidentiality_agreement": "https://www.app.alteg.io/info/confidential"
            },
            "language": {
              "id": 1,
              "locale": "en-US",
              "iso": "usa"
            }
          },
          "meta": []
        }
      },
      "master_record_review_post_request": {
        "title": "Root Type for master_record_review_post_request",
        "required": [
          "rating"
        ],
        "type": "object",
        "properties": {
          "rating": {
            "type": "integer",
            "description": "Rating for the review (number of stars from 1 to 5)",
            "format": "int32"
          },
          "text": {
            "type": "string",
            "description": "Feedback text"
          },
          "tips_amount": {
            "type": "number",
            "description": "Tip amount",
            "format": "double"
          },
          "redirect_prefix": {
            "type": "string",
            "description": "The prefix part of the url that will be redirected to after returning from the payment form"
          }
        },
        "description": "Send feedback request",
        "example": {
          "rating": 5,
          "text": "Excellent service!",
          "tips_amount": 22.5,
          "redirect_prefix": "https://n1.app.alteg.io"
        }
      }
    }
  }
}