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.

    This API enables third-party developers to embed online booking
    functionality into external platforms such as business catalogs, branded
    apps, and partner services.

    **Base URL:** `https://api.alteg.io/api`

    ## Authentication

    All requests require partner authorization via Bearer token in the HTTP
    header:

    ``` Authorization: Bearer <partner_token> ```

    To obtain a partner token, register in the [Altegio
    Marketplace](https://app.alteg.io/appstore/developers/1).

    ## Rate Limits

    - 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:
        - Latvian - 'lv-LV'
        - English - 'en-US'
        - Estonian - 'ee-EE'
        - Lithuanian - 'lt-LT'
        - German - 'de-DE'
        - 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:


        | Field | Type | Description |

        | ------------- | ------------- | ------------- |

        | categories | array of objects | Array of service categories (you can't
        book a category) |

        | services | array of objects | Services available for booking by
        category |


        An object from the categories array, has the following fields:


        | Field | Type | Description |

        | ------------- | ------------- | ------------- |

        | id | number | Category ID |

        | title | string | Category name |

        | gender | number | Category belonging to gender (1 - male, 2 - female,
        0 - not specified) |

        | weight | number | Category weight. Categories are sorted by weight,
        heavier ones first |

        | api_id | string | External Category ID |


        An object from the services array, has the following fields:


        | Field | Type | Description |

        | ------------- | ------------- | ------------- |

        | id | number | Service ID |

        | title | string | Service name |

        | category_id | number | Identifier of the category to which the service
        belongs |

        | weight | number | Category weight. Services are sorted by weight,
        heavier ones first |

        | price_min | number | The minimum cost of the service |

        | price_max | number | Maximum cost of the service |

        | discount | number | Service discount |

        | comment | string | Comment on the service |

        | active | number | Is the service active |

        | prepaid | string | Online payment status |

        | gender | number | Gender for which the service is provided |

        | session_length | number | Service duration in seconds (only if filter
        by team member is set) |

        | image | string | Image services |



        If you need to get the services provided by a specific team member, then
        you need to use the filter by team member.

        The following filters are available:

        + staff_id: team member ID. If you need services that only the selected
        team member provides

        + 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.

        + 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
            Default: 0
          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')

            Default: ''
          schema:
            type: string
          example: 2026-09-09T18:30
        - name: service_ids[]
          in: query
          description: >
            Service ID.

            Filter 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.
          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:


        | Field | Type | Description |

        | ------------- | ------------- | ------------- |

        | id | number | team member ID |

        | name | string | team member name |

        | specialization | string | team member specialization |

        | position | object | team member position |

        | bookable | boolean | Does the team member have sessions available for
        booking |

        | weight | number | team member weight. When withdrawing, team members
        are sorted by weight, heavier first |

        | show_rating | number | Whether to show team member's rating (1 - show,
        0 - don't show) |

        | rating | number | team member rating |

        | votes_count | number | Number of votes rated team member |

        | comments_count | number | Number of comments to a team member |

        | avatar | string | Path to team member avatar file |

        | information | string | Additional information about the team member
        (HTML format) |

        | session_date | string | Date of the next day that there are available
        sessions (only for bookable = true) |



        The following filters are available:


        + service_ids: Array of service IDs. If you need team members who
        provide only the selected service

        + 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.
            Filter by the list of service identifiers
          style: form
          explode: false
          schema:
            type: array
            items:
              type: number
        - name: datetime
          in: query
          description: |
            date in iso8601 format.
            Filter by service booking date (for example '2005-09-09T18:30')
          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:


        | Field | Type | Description |

        | ------------- | ------------- | ------------- |

        | session_date | string | Next date with available sessions |

        | sessions | array | List of available sessions |



        The following filters are available:


        + service_ids: Array of service IDs. If you need sessions, when can you
        book these services

        + 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.
            Filter by the list of service identifiers
          style: form
          explode: false
          schema:
            type: array
            items:
              type: number
        - name: datetime
          in: query
          description: |
            date in iso8601 format.
            Filter by date
          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:


        | Field | Type | Description |

        | ------------- | ------------- | ------------- |

        | working_days | array of working days grouped by month | Working days
        of a team member/organization |

        | working_dates | array of dates | An array of dates when the team
        member/organization works |

        | booking_days | array of days when there are free sessions | Array of
        days that are available for booking for the specified services |

        | booking_dates | array of dates | An array of dates when there are free
        sessions for the service to the selected team member/organization |


        working days and booking_days have the same format:

        month:[array of days in this month]


        For example, this booking_days:
                "9": [
                      "4",
                      "5"]
                "10": [
                      "14",
                      "25"]
        Means that on September 4 and 5, and on October 14 and 25 there are free
        sessions for booking



        The following filters are available:


        + service_ids: Array of service IDs. If you need dates when you can book
        the specified services

        + staff_id: team member ID. If you need dates when you can book the
        specified team member

        + 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.
            Filter by the list of service identifiers
          schema:
            type: string
        - name: staff_id
          in: query
          description: |
            team member ID. Filter by team member ID
            Default: 0
          schema:
            type: number
          example: 0
        - name: date
          in: query
          description: |-
            date in iso8601 format.
            Filter by month of booking.
          schema:
            type: string
          example: '2026-09-01'
        - name: date_from
          in: query
          description: >-
            date in iso8601 format.

            Start of dates to search.

            Must 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.

            End of dates to search.

            Must 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:


        | Field | Type | Description |

        | ------------- | ------------- | ------------- |

        | time | string | Session time (17:30 for example) |

        | session_length | number | Session duration in seconds |

        | datetime | datetime | Date and time of the session in ISO8601 format
        (must be passed when creating the appointment) |



        The following filters are available:


        + 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.
            Filter by the list of service identifiers
          schema:
            type: string
        - name: date
          in: path
          description: |
            date in iso8601 format.
            Filter by booking date (eg '2026-09-30')
          required: true
          schema:
            type: string
        - name: team_member_id
          in: path
          description: |
            team member ID. Filter by team member ID
            Default: 0
          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.


        If a location has a custom privacy policy configured, the online booking
        flow must:

        - Display the policy text to the user

        - Show a checkbox for accepting the privacy policy

        - Only proceed with booking creation after the user has checked the
        acceptance checkbox


        If no custom policy is configured for the location, the booking can
        proceed without showing any policy acceptance step.
      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.

         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
        data](#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.

        The 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:


        | Field | Type | Mandatory | Description |

        | ------------- | ------------- | ------------- | ------------- |

        | id | number | YES | Appointment ID |

        | services | array of numbers | YES | List of ID service appointments |

        | location | object | YES | location parameters |

        | staff | object | YES | Parameters of the team member who was booked.
        Note: "staff" is a legacy field name for team member. |

        | clients_count | int | YES | Number of clients |

        | date | string | YES | Session date |

        | datetime | string | YES | Session date in ISO |

        | create_date | string | YES | Appointment creation date |

        | length | number | YES | Session duration |

        | deleted | boolean | YES | Has the appointment been created ? (true if
        deleted) |

        | 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 |

        | 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
        |

        | comment | string | YES | Appointment Comment |

        | master_requested | boolean | YES | Whether a specific team member was
        specified when appointment (false if "any team member" was specified) |

        | online | boolean | YES | Indicates whether the appointment was created
        online by the client (true) or manually by an administrator (false) |

        | 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 |

        | api_id | string | NO | External Appointment ID |

        | last_change_date | string | NO | Date of the last edit of the
        appointment |

        | prepaid | boolean | NO | Is online payment available for appointment |

        | prepaid_confirmed | boolean | NO | Online payment status |

        | last_change_date | string | NO | Date of the last edit of the
        appointment |

        | activity_id | int | NO | Event ID (for group events) |


        Each object in the services array has the following fields:


        | Field | Type | Description |

        | ------------- | ------------- | ------------- |

        | id | number | Service ID |

        | title | string | Service name |

        | cost | float | Service cost |

        | price_min | float | Minimum price of the service |

        | price_max | float | Maximum service price |

        | discount | float | Discount |

        | amount | int | Number of ordered services |

        | session_length | int | Service duration in seconds (only if filter by
        team member is set) |


        The location object has the following fields:


        | Field | Type | Description |

        | ------------- | ------------- | ------------- |

        | id | number | location ID |

        | title | string | location name |

        | country_id | number | Identifier of the country in which the location
        is located |

        | country | string | location name |

        | city_id | number | Identifier of the city where the location is
        located) |

        | city | string | location city name |

        | time zone | string | timezone locations |

        | address | string | Address where the location is located |

        | phone | string | location's main phone number |

        | phones | array of strings | All phone numbers of the location |

        | coordinate_lat | float | Latitude where the location is located |

        | coordinate lng | float | Longitude |

        | allow_delete_record | boolean | Is it possible to delete an
        appointment |

        | allow_change_record | boolean | Is it possible to reschedule the
        appointment |

        | site | string | location website |

        | currency_short_title | string | Currency symbol |

        | allow_change_record_delay_step | int | Time after which you can
        reschedule the appointment |

        | allow_delete_record_delay_step | int | Time after which you can delete
        an appointment |


        The team member object has the following fields:


        | Field | Type | Description |

        | ------------- | ------------- | ------------- |

        | id | number | team member ID |

        | name | string | team member name |

        | specialization | string | team member specialization |

        | position | object | team member position |

        | show_rating | number | Whether to show team member's rating (1 - show,
        0 - don't show) |

        | rating | number | team member rating |

        | votes_count | number | Number of votes rated team member |

        | comments_count | number | Number of comments to a team member |

        | avatar | string | Path to team member avatar file |
      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
