IntroductionAuthenticationSelecting dataFilteringSorting & pagination

Core resources

Api requestsAttribute optionsAttributesBooking detailsBooking updatesBookingsCalendar event notesCalendar event updatesCalendar eventsCapacitiesCapacity group dependenciesCapacity groupsContact bookingsContactsCoupon productsCoupon servicesCoupon usesCouponsExternal calendarsInvoicesLine item taxesLine itemsMembersMessage eventsMessage templatesMessagesOrganization calendar logsOrganizationsPaddle plansPaddle subscriptionsPaymentsPermissionsPrice calendar entriesPricelabs pricingPricing widgetsProduct attribute optionsProduct calendar logsProduct message templatesProduct reply to addressesProduct servicesProductsRefundsReply to addressesReview productsReview widget listingsReview widgetsReviewsSeasonsServicesSite listingsSite nav itemsSite pagesSite viewsSitesTask assigneesTask template assigneesTask templatesTasksTaxesUser profilesWebhook notificationsWebhooksWidget analyticsWidget listingsWidgets

Booking flow

Query availabilitySearch availabilityBook

Services

Re-usable elements that can be included in the booking forms of units

The service object

Attributes

iduuid

Unique identifier

organization_iduuid
organizations.id

Identifier of the organization this service is defined in

parent_iduuid | null
services.id

Identifier of the parent service

created_attimestamp with time zone

Creation timestamp

updated_attimestamp with time zone

Last modification timestamp

attachmenttext | null
depositServiceDeposit | null

Deposit charged for this service

descriptionMultiLanguageString

Localized description

feeServiceFee | null

Fee charged for this service

ftstsvector

Full text search index

labelMultiLanguageString

Localized label

metaPartial<ServiceMeta>

Meta data of the service

ordersmallint

Identifier of the parent service. Only applicable for services with type 'multiple-choice-option'.

type | "address" | "checkbox" | "contact-meta" | "email" | "long-text" | "multiple-choice" | "multiple-choice-option" | "name" | "number" | "phone" | "short-text" | "statement" | "time"

Type of the service

The service object

JSON

{
  "id": "00000000-0000-0000-0000-000000000000",
  "organization_id": "00000000-0000-0000-0000-000000000000",
  "parent_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2026-03-12T05:24:09.754Z",
  "updated_at": "2026-03-12T05:24:09.754Z",
  "attachment": "",
  "deposit": {
    "installments": [
      {
        "id": "00000000-0000-0000-0000-000000000000",
        "moment": {
          "offset": 0,
          "type": "check-in"
        },
        "value": {
          "restrictions": [],
          "type": "absolute",
          "value": [
            {
              "occupancy_group_id": null,
              "period": null,
              "value": 100
            }
          ]
        }
      }
    ],
    "price": {
      "restrictions": [],
      "type": "absolute",
      "value": [
        {
          "occupancy_group_id": null,
          "period": null,
          "value": 200
        }
      ]
    },
    "refund_moment": {
      "offset": 0,
      "type": "checkout"
    },
    "refund_policy": {
      "default": "Full refund",
      "nl-NL": "Volledige terugbetaling"
    },
    "tax_ids": []
  },
  "description": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "fee": {
    "discounts": [
      {
        "definition": {
          "restrictions": [],
          "type": "relative",
          "value": -10
        },
        "id": "00000000-0000-0000-0000-000000000000",
        "name": {
          "default": "Seasonal Discount"
        }
      }
    ],
    "installments": [
      {
        "id": "00000000-0000-0000-0000-000000000000",
        "moment": {
          "offset": 0,
          "type": "check-in"
        },
        "value": {
          "restrictions": [],
          "type": "absolute",
          "value": [
            {
              "occupancy_group_id": null,
              "period": null,
              "value": 50
            }
          ]
        }
      }
    ],
    "price": {
      "restrictions": [],
      "type": "absolute",
      "value": [
        {
          "occupancy_group_id": null,
          "period": null,
          "value": 150
        }
      ]
    },
    "tax_ids": []
  },
  "label": {
    "default": "Hello",
    "nl-NL": "Hallo"
  },
  "meta": {
    "address_display": "single",
    "address_segments": {
      "city": "required",
      "country": "required",
      "province": "required",
      "state": "required",
      "street": "required",
      "street2": "optional",
      "zip": "required"
    },
    "max": 10,
    "min": 1,
    "multiple_choice_display": "dropdown",
    "name_display": "single",
    "phone_number_display": "international",
    "required": true
  },
  "order": 0,
  "type": ""
}

List services

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this service is defined in

parent_idFilter<uuid | null>
services.id

Identifier of the parent service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

attachmentFilter<text | null>
depositFilter<ServiceDeposit | null>

Deposit charged for this service

descriptionFilter<MultiLanguageString>

Localized description

feeFilter<ServiceFee | null>

Fee charged for this service

ftsFilter<tsvector>

Full text search index

labelFilter<MultiLanguageString>

Localized label

metaFilter<Partial<ServiceMeta>>

Meta data of the service

orderFilter<smallint>

Identifier of the parent service. Only applicable for services with type 'multiple-choice-option'.

typeFilter< | "address" | "checkbox" | "contact-meta" | "email" | "long-text" | "multiple-choice" | "multiple-choice-option" | "name" | "number" | "phone" | "short-text" | "statement" | "time">

Type of the service

Responses

200

A list of services with the selected columns

206

Partial Content

GET /services
curl -X GET "https://api.bookingmood.com/v1/services?select=*" \
  -H "Authorization: Bearer YOUR_API_KEY"

Create services

Body

Partial<Service> | Array<Partial<Service>>

Responses

201

The newly created services with the selected columns

POST /services
curl -X POST "https://api.bookingmood.com/v1/services" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '[]'

Delete services

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this service is defined in

parent_idFilter<uuid | null>
services.id

Identifier of the parent service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

attachmentFilter<text | null>
depositFilter<ServiceDeposit | null>

Deposit charged for this service

descriptionFilter<MultiLanguageString>

Localized description

feeFilter<ServiceFee | null>

Fee charged for this service

ftsFilter<tsvector>

Full text search index

labelFilter<MultiLanguageString>

Localized label

metaFilter<Partial<ServiceMeta>>

Meta data of the service

orderFilter<smallint>

Identifier of the parent service. Only applicable for services with type 'multiple-choice-option'.

typeFilter< | "address" | "checkbox" | "contact-meta" | "email" | "long-text" | "multiple-choice" | "multiple-choice-option" | "name" | "number" | "phone" | "short-text" | "statement" | "time">

Type of the service

Responses

204

The deleted services with the selected columns

DELETE /services
curl -X DELETE "https://api.bookingmood.com/v1/services" \
  -H "Authorization: Bearer YOUR_API_KEY"

Update services

Filters

idFilter<uuid>

Unique identifier

organization_idFilter<uuid>
organizations.id

Identifier of the organization this service is defined in

parent_idFilter<uuid | null>
services.id

Identifier of the parent service

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

attachmentFilter<text | null>
depositFilter<ServiceDeposit | null>

Deposit charged for this service

descriptionFilter<MultiLanguageString>

Localized description

feeFilter<ServiceFee | null>

Fee charged for this service

ftsFilter<tsvector>

Full text search index

labelFilter<MultiLanguageString>

Localized label

metaFilter<Partial<ServiceMeta>>

Meta data of the service

orderFilter<smallint>

Identifier of the parent service. Only applicable for services with type 'multiple-choice-option'.

typeFilter< | "address" | "checkbox" | "contact-meta" | "email" | "long-text" | "multiple-choice" | "multiple-choice-option" | "name" | "number" | "phone" | "short-text" | "statement" | "time">

Type of the service

Body

Partial<Service>

Responses

204

The updated services with the selected columns

PATCH /services
curl -X PATCH "https://api.bookingmood.com/v1/services" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{}'