Skip to main content
PUT
/
admin
/
services
/
bulk
Bulk Update Services
curl --request PUT \
  --url https://api.decodahealth.com/admin/services/bulk \
  --header 'API-KEY: <api-key>' \
  --header 'Content-Type: application/json' \
  --header 'TENANT: <tenant>' \
  --data '
{
  "updates": [
    {
      "id": "<string>",
      "name": "<string>",
      "duration": 123,
      "description": "<string>",
      "price": 123,
      "displayPrice": 123,
      "displayPriceMax": 123,
      "priceStartsAt": true,
      "cost": 123,
      "estimated": true,
      "bookingFee": 123,
      "bookingFeeText": "<string>",
      "reminderMinutesBefore": 123,
      "cancellationCost": 123,
      "hoursBeforeCancellingCosts": 123,
      "bookingFeePercentage": 123,
      "cancellationFeePctWithin24h": 123,
      "cancellationFeePctWithin48h": 123,
      "refundBookingFeeBefore48h": true,
      "hoursBeforeBookingFeeRefundable": 123,
      "followUpMinutesAfter": 123,
      "followUpSmsTemplate": "<string>",
      "reminderSmsTemplate": "<string>",
      "locationIds": [
        "<string>"
      ],
      "providerIds": [
        "<string>"
      ],
      "formIds": [
        "<string>"
      ],
      "confirmationSmsTemplate": "<string>",
      "cancellationSmsTemplate": "<string>",
      "noShowSmsTemplate": "<string>",
      "overrideNoticeSmsTemplate": "<string>",
      "shortNoticeBlock": 123,
      "visibility": "ALL",
      "minutesBeforeRebookingAllowed": 123,
      "color": "<string>",
      "allowIndividualProviderBooking": true,
      "displayOrder": 123,
      "reservedTimeMinutes": 123,
      "category": "<string>",
      "isDoubleBookable": true,
      "isPopular": true,
      "onlyBookableOverThePhone": true,
      "creditCardRequired": true,
      "collectCreditCard": true,
      "autoGfeTreatments": [
        "<string>"
      ],
      "brandName": "<string>",
      "unit": "AMPOULES",
      "internalNotes": "<string>",
      "sortOrder": 123,
      "allowCustomPricing": true,
      "externalId": "<string>",
      "prepTimeDuration": 123,
      "prepTimeBuffer": 123,
      "prepTimeName": "<string>",
      "prepTimeColor": "<string>",
      "prepProviderIds": [
        "<string>"
      ],
      "bookables": [
        {
          "bookableId": "<string>",
          "startOffset": 0,
          "duration": 5040
        }
      ],
      "checklists": [
        {
          "name": "<string>",
          "position": 123,
          "id": "<string>",
          "type": "FILLED_FORM",
          "optional": false
        }
      ],
      "exemptedTaxIds": [
        "<string>"
      ]
    }
  ]
}
'
[
  {
    "id": "<string>",
    "name": "<string>",
    "duration": 123,
    "description": "<string>",
    "price": 123,
    "displayPrice": 123,
    "displayPriceMax": 123,
    "priceStartsAt": false,
    "cost": 123,
    "estimated": false,
    "bookingFee": 123,
    "bookingFeeText": "<string>",
    "reminderMinutesBefore": 123,
    "cancellationCost": 123,
    "hoursBeforeCancellingCosts": 123,
    "bookingFeePercentage": 123,
    "cancellationFeePctWithin24h": 123,
    "cancellationFeePctWithin48h": 123,
    "refundBookingFeeBefore48h": true,
    "hoursBeforeBookingFeeRefundable": 123,
    "followUpMinutesAfter": 123,
    "followUpSmsTemplate": "<string>",
    "reminderSmsTemplate": "<string>",
    "locationIds": [
      "<string>"
    ],
    "providerIds": [
      "<string>"
    ],
    "createdDate": "2023-11-07T05:31:56Z",
    "updatedDate": "2023-11-07T05:31:56Z",
    "formIds": [
      "<string>"
    ],
    "confirmationSmsTemplate": "<string>",
    "cancellationSmsTemplate": "<string>",
    "noShowSmsTemplate": "<string>",
    "overrideNoticeSmsTemplate": "<string>",
    "shortNoticeBlock": 123,
    "visibility": "ALL",
    "minutesBeforeRebookingAllowed": 123,
    "color": "<string>",
    "allowIndividualProviderBooking": true,
    "displayOrder": 123,
    "reservedTimeMinutes": 123,
    "category": "<string>",
    "isDoubleBookable": true,
    "isPopular": false,
    "onlyBookableOverThePhone": false,
    "creditCardRequired": false,
    "collectCreditCard": false,
    "autoGfeTreatments": [
      "<string>"
    ],
    "brandName": "<string>",
    "unit": "AMPOULES",
    "internalNotes": "<string>",
    "sortOrder": 123,
    "allowCustomPricing": false,
    "externalId": "<string>",
    "prepTimeDuration": 123,
    "prepTimeBuffer": 123,
    "prepTimeName": "<string>",
    "prepTimeColor": "<string>",
    "prepProviderIds": [
      "<string>"
    ],
    "checklists": [
      {
        "name": "<string>",
        "position": 123,
        "id": "<string>",
        "type": "FILLED_FORM",
        "optional": false
      }
    ],
    "bookables": [
      {
        "bookableId": "<string>",
        "startOffset": 0,
        "duration": 5040
      }
    ],
    "exemptedTaxIds": [
      "<string>"
    ]
  }
]

Headers

TENANT
string
required

The tenant you are making this request on behalf of

API-KEY
string
required

Your api key

Body

application/json

Request schema for bulk updating multiple services.

updates
BulkServiceUpdateItem · object[]
required

Response

Successful Response

id
string | null
name
string | null
duration
integer | null
description
string | null
price
integer | null
displayPrice
integer | null
displayPriceMax
integer | null
priceStartsAt
boolean | null
default:false
cost
integer | null
estimated
boolean | null
default:false
bookingFee
integer | null
bookingFeeText
string | null
reminderMinutesBefore
integer | null
cancellationCost
integer | null
hoursBeforeCancellingCosts
integer | null
bookingFeePercentage
integer | null
cancellationFeePctWithin24h
integer | null
cancellationFeePctWithin48h
integer | null
refundBookingFeeBefore48h
boolean | null
hoursBeforeBookingFeeRefundable
integer | null
followUpMinutesAfter
integer | null
followUpSmsTemplate
string | null
reminderSmsTemplate
string | null
locationIds
string[] | null
providerIds
string[] | null
createdDate
string<date-time> | null
updatedDate
string<date-time> | null
formIds
string[] | null
confirmationSmsTemplate
string | null
cancellationSmsTemplate
string | null
noShowSmsTemplate
string | null
overrideNoticeSmsTemplate
string | null
shortNoticeBlock
integer | null
visibility
enum<string> | null
default:ALL
Available options:
ALL,
NEW,
EXISTING,
NO
minutesBeforeRebookingAllowed
integer | null
color
string | null
allowIndividualProviderBooking
boolean | null
displayOrder
integer | null
reservedTimeMinutes
integer | null
category
string | null
isDoubleBookable
boolean | null
default:true
onlyBookableOverThePhone
boolean | null
default:false
creditCardRequired
boolean | null
default:false
collectCreditCard
boolean | null
default:false
autoGfeTreatments
string[] | null
brandName
string | null
unit
enum<string> | null
Available options:
AMPOULES,
APPLICATORS,
BOTTLES,
BOXES,
CAPSULES,
CUPS,
DOSES,
G_PER_ML,
GRAMS,
IU,
IU_PER_ML,
OUNCES,
FLUID_OUNCES,
KG,
KITS,
LITERS,
MCG,
MG,
MG_PER_ML,
ML,
MMOL,
MICROGRAM_PER_ML,
PACKS,
PAIRS,
PATCHES,
PERCENTAGE,
PIECES,
POUCHES,
ROLLS,
SACHETS,
SHEETS,
SPRAYS,
STRIPS,
SYRINGES,
TABLETS,
TABLETS_PER_DAY,
TESTS,
TUBES,
UNITS,
VIALS,
TREATMENTS,
SESSIONS,
PULSES,
JOULES,
CENTIMETERS,
THREAD_COUNT,
INJECTIONS,
WRINKLE_UNITS,
POUNDS,
FEET,
INCHES
internalNotes
string | null
sortOrder
integer | null
allowCustomPricing
boolean | null
default:false
externalId
string | null
prepTimeDuration
integer | null
prepTimeBuffer
integer | null
prepTimeName
string | null
prepTimeColor
string | null
prepProviderIds
string[] | null
checklists
ServiceChecklistItem · object[] | null
bookables
ServiceBookableItem · object[] | null
exemptedTaxIds
string[] | null