Skip to content

Online Booking (1.0.0)

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.

Rate Limits

  • 200 requests per minute per IP address - 5 requests per second per IP address
Download OpenAPI description
Languages
Servers
Mock server
https://developer.alteg.io/_mock/en/public/openapi/
Production server
https://api.alteg.io/api/v1/

Authentication

User authentication and verification endpoints for online booking

Operations

Online Booking

Endpoints for booking form, services, staff, availability, and appointment management

Operations

Get Services Available for Booking

Request

The object of services available for booking has the following fields:

FieldTypeDescription
categoriesarray of objectsArray of service categories (you can't book a category)
servicesarray of objectsServices available for booking by category

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

FieldTypeDescription
idnumberCategory ID
titlestringCategory name
gendernumberCategory belonging to gender (1 - male, 2 - female, 0 - not specified)
weightnumberCategory weight. Categories are sorted by weight, heavier ones first
api_idstringExternal Category ID

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

FieldTypeDescription
idnumberService ID
titlestringService name
category_idnumberIdentifier of the category to which the service belongs
weightnumberCategory weight. Services are sorted by weight, heavier ones first
price_minnumberThe minimum cost of the service
price_maxnumberMaximum cost of the service
discountnumberService discount
commentstringComment on the service
activenumberIs the service active
prepaidstringOnline payment status
gendernumberGender for which the service is provided
session_lengthnumberService duration in seconds (only if filter by team member is set)
imagestringImage 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.
Security
BearerPartner
Path
location_idnumberrequired

location ID

Example: 4564
Query
staff_idnumber

team member ID. Filter by team member ID Default: 0

datetimestring

date (in iso8601 format). Filter by service booking date (for example '2005-09-09T18:30') Default: ''

Example: datetime=2026-09-09T18:30
service_ids[]Array of numbers

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.

Headers
Acceptstringrequired

e.g. application/vnd.api.v2+json

Example: application/vnd.api.v2+json
Content-Typestringrequired

application/json

Authorizationstringrequired

Bearer partner_token

curl -i -X GET \
  'https://developer.alteg.io/_mock/en/public/openapi/book_services/4564?staff_id=0&datetime=2026-09-09T18%3A30&service_ids%5B%5D=0' \
  -H 'Accept: application/vnd.api.v2+json' \
  -H 'Authorization: Bearer <YOUR_Bearer {PartnerToken}_HERE>' \
  -H 'Content-Type: string'

Responses

OK

Bodyapplication/json
successboolean

Success status (true)

Example: true
dataobject

Object with data

Example: {"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}]}
metaArray of objects

Metadata (empty array)

Example: []
Response
application/json
{ "success": true, "data": { "events": [], "services": [], "category": [] }, "meta": [] }

Get Team Members Available for Booking

Request

Each object from the array of team members available for booking has the following fields:

FieldTypeDescription
idnumberteam member ID
namestringteam member name
specializationstringteam member specialization
positionobjectteam member position
bookablebooleanDoes the team member have sessions available for booking
weightnumberteam member weight. When withdrawing, team members are sorted by weight, heavier first
show_ratingnumberWhether to show team member's rating (1 - show, 0 - don't show)
ratingnumberteam member rating
votes_countnumberNumber of votes rated team member
comments_countnumberNumber of comments to a team member
avatarstringPath to team member avatar file
informationstringAdditional information about the team member (HTML format)
session_datestringDate 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
Security
BearerPartner
Path
location_idnumberrequired

location ID

Example: 4564
Query
service_ids[]Array of numbers

Service ID. Filter by the list of service identifiers

datetimenumber

date in iso8601 format. Filter by service booking date (for example '2005-09-09T18:30')

Headers
Acceptstringrequired

e.g. application/vnd.api.v2+json

Example: application/vnd.api.v2+json
Content-Typestringrequired

application/json

Authorizationstringrequired

Bearer partner_token

curl -i -X GET \
  'https://developer.alteg.io/_mock/en/public/openapi/book_staff/4564?service_ids%5B%5D=0&datetime=0' \
  -H 'Accept: application/vnd.api.v2+json' \
  -H 'Authorization: Bearer <YOUR_Bearer {PartnerToken}_HERE>' \
  -H 'Content-Type: string'

Responses

OK

Bodyapplication/json
successboolean

Execution success status (true)

Example: true
dataArray of objects

Array of objects with data

Example: [{"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>"}]
metaArray of objects

Metadata (empty array)

Example: []
Response
application/json
{ "success": true, "data": [ {}, {} ], "meta": [] }

Get Nearest Available Time Slots for Team Member

Request

the team member's nearest sessions object has the following fields:

FieldTypeDescription
session_datestringNext date with available sessions
sessionsarrayList 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
Security
BearerPartner
Path
location_idnumberrequired

location ID

team_member_idnumberrequired

team member ID

Query
service_ids[]Array of numbers

Service ID. Filter by the list of service identifiers

datetimenumber

date in iso8601 format. Filter by date

Headers
Acceptstringrequired

e.g. application/vnd.api.v2+json

Example: application/vnd.api.v2+json
Content-Typestringrequired

application/json

curl -i -X GET \
  'https://developer.alteg.io/_mock/en/public/openapi/book_staff_seances/{location_id}/{team_member_id}?service_ids%5B%5D=0&datetime=0' \
  -H 'Accept: application/vnd.api.v2+json' \
  -H 'Authorization: Bearer <YOUR_Bearer {PartnerToken}_HERE>' \
  -H 'Content-Type: string'

Responses

OK

Bodyapplication/json
successboolean

Execution success status (true)

Example: true
dataobject

Object with data

Example: {"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"}]}
metaArray of objects

Metadata (empty array)

Example: []
Response
application/json
{ "success": true, "data": { "seance_date": "2026-09-21", "seances": [] }, "meta": [] }

Client Personal Cabinet

Client account management and booking history

Operations