Search.../
  1. REST
Generate a test token to explore our APIs

List services

DEPRECATED
Developer Preview

Deprecation Notice

This endpoint has been replaced with Query Service Catalog and will be removed on March 31, 2022. If your app uses this endpoint, we recommend updating your code as soon as possible.

Retrieves a list of services, given the provided filtering. Returns a list of enriched services; Based on the invoker permissions and the request query. Query object support:

  • filter: supports
    • service.id - query for a specific service. Example: "filter { string_value: "{ "service.id": "46ce4cd4-46ff-4aa7-9cc0-02fd4f0f3209" }" }".
    • category.id - query for all services that belongs to the category. Example: "filter { string_value: "{ "category.id": "55ce4cd4-46ff-4aa7-9cc0-01fd4f0f3209" }" }".
    • service.info.name - query for all services with given name. Example: "filter { string_value: "{ "service.info.name": "haircut" }" }".
    • service.info.tagLine - query for all services with given tag line. Example: "filter { string_value: "{ "service.info.tagLine": "short haircut" }" }".
    • service.policy.isBookOnlineAllowed - query for all services that can be booked online. Example: "filter { string_value: "{ "service.policy.isBookOnlineAllowed": true }" }".
    • category.name - query for all services that belongs to categories with given name. Example: "filter { string_value: "{ "categoty.name": "hair services" }" }".
    • service.customProperties.tag - query for all services that has given tag. Example: "filter { string_value: "{ "service.customProperties.tag": "hair services" }" }".
    • service.paymentOptions.wixPayOnline - query for all services that can be payed Online with Wix Pay. Example: "filter { string_value: "{ "service.paymentOptions.wixPayOnline": true }" }".
    • service.paymentOptions.wixPayInPerson - query for all services that be payed Offline with Wix Pay.. Example: "filter { string_value: "{ "service.paymentOptions.wixPayInPerson": true }" }".
    • service.paymentOptions.wixPaidPlan - query for all services that can be booked using a paid plan. Example: "filter { string_value: "{ "service.paymentOptions.wixPaidPlan": true }" }".
    • service.paymentOptions.custom - query for all services that has a custom payment method. Example: "filter { string_value: "{ "service.paymentOptions.custom": true }" }".
    • slugs.name - query for service with given slug. Example: "filter { string_value: "{ "slugs.name": "woman-hair-cut" }" }".
    • schedules.tags - query for all services that has a schedule with given tag and status CREATED. Example: "filter { string_value: "{ "schedules.tags": "Group" }" }".
    • resources.id - query for all services that are given by a given resource, taking into account only ACTIVE status service schedule. Example: "filter { string_value: "{ "resources.id": "46ce4cd4-46ff-4aa7-9cc0-02fd4f0f3209" }" }".
    • service.policy.bookingsApprovalPolicy.isBusinessApprovalRequired - query for all services that require business approval. Example: "filter { string_value: "{ "service.policy.bookingsApprovalPolicy.isBusinessApprovalRequired": true }" }".
    • service.schedules.availability.locations.businessLocation.ids - Not supported. Query for all services that have at least one of the specified locations. Example: "filter { string_value: "{ "service.schedules.availability.locations.businessLocation.ids": ["66a2674c-9267-4600-826e-f463957b9446", "66a2674c-9267-4600-826e-f463957b9447"] }" }".
  • paging: Supported. Limit Example: "query { paging { limit { value: 10 } } }". Offset Example: "query { paging { offset { value: 10 } } }". Default paging: "query { paging { offset { value: 0 } limit { value: 25 } } }"
  • fieldsets: not supported.
  • fields: any projection is supported. Example: query { fields ["service.id", "service.status", "service.info.name"] }

Important: Calling List without any filter, will return all non deleted services.

  • All results are for one specific business, resolved from the request context.

Permissions
This endpoint requires the Read Bookings - Public Data, the Read Bookings - Including Participants or the Manage Bookings permissions scope

Syntax

function Listservices(query.filter: ref, query.sort: array<_wix_common_Sorting>, query.paging: ref, query.fields: array<string>, query.fieldsets: array<string>, includeDeleted: boolean): List<_com_wixpress_bookings_services_catalog_api_v1_service_ListServicesResponse>

List services Parameters

NAME
TYPE
DESCRIPTION
query.filter
object

Filter object in the following format:
"filter" : { "fieldName1": "value1", "fieldName2":{"$operator":"value2"} }
Example of operators: $eq, $ne, $lt, $lte, $gt, $gte, $in, $hasSome, $hasAll, $startsWith, $contains

query.sort
Array<object>

Sort object in the following format:
[{"fieldName":"sortField1","order":"ASC"},{"fieldName":"sortField2","order":"DESC"}]

query.paging
object

Paging options to limit and skip the number of items.

query.fields
Array<string>

Array of projected fields. A list of specific field names to return. If fieldsets are also specified, the union of fieldsets and fields is returned.

query.fieldsets
Array<string>

Array of named, predefined sets of projected fields. A array of predefined named sets of fields to be returned. Specifying multiple fieldsets will return the union of fields from all sets. If fields are also specified, the union of fieldsets and fields is returned.

includeDeleted
boolean

Returns

A list of catalog service response.

Return Type:

object
NAME
TYPE
DESCRIPTION
services
Array<object>
metadata
Deprecated
object
pagingMetadata
object
responseType
string

Supported values: CONSISTENT, EVENTUALLY_CONSISTENT.

Was this helpful?

Get Services Catalog

Returns all the catalog services in the site.

Request

curl

Copy Code
1curl -X GET \
2 'https://www.wixapis.com/bookings/v1/catalog/services' \
3 -H 'Authorization: <AUTH>'

Response

json

1{
2 "services": [
3 {
4 "service": {
5 "id": "4c0bae61-4599-4d02-a2f4-25e9222df416",
6 "info": {
7 "name": "Haircut",
8 "description": "A regular short haircut",
9 "images": [ {
10 "id": "bd10eec5-564a-47b7-8638-ff005f18261d",
11 "url": "bd10eec5564a47b78638ff005f18261d.jpg",
12 "height": 4912,
13 "width": 7360
14 }],
15 "tagLine": "A regular Haircut"
16 },
17 "policy": {
18 "maxParticipantsPerBooking": 1,
19 "bookUpToXMinutesBefore": 1440,
20 "cancelRescheduleUpToXMinutesBefore": 61,
21 "isBookOnlineAllowed": true,
22 "isCancelAllowed": true,
23 "isRescheduleAllowed": true,
24 "futureBookingsPolicy": {
25 "shouldLimit": false,
26 "limitXMinutesToTheFuture": 1440
27 },
28 "waitingListPolicy": {
29 "isEnabled": false,
30 "capacity": 10,
31 "timeWindowMinutes": 10
32 },
33 "bookingsApprovalPolicy": {
34 "isBusinessApprovalRequired": false,
35 "requestsAffectsAvailability": true
36 }
37 },
38 "paymentOptions": {
39 "wixPayOnline": true,
40 "wixPayInPerson": false,
41 "custom": false,
42 "wixPaidPlan": false
43 },
44 "categoryId": "442d101a-37b1-4769-81e5-4e7f809585e8",
45 "bookingFormId": "00000000-0000-0000-0000-000000000000",
46 "scheduleIds": ["a93abaf4-c776-46d2-aba0-c986c40ae8c1"],
47 "customProperties": {
48 "uouHidden": "false",
49 "order": "10"
50 },
51 "status": "CREATED",
52 "sortOrder": 10
53 },
54 "pricingPlans": [],
55 "resources": [ {
56 "id": "b48faa02-2f23-4253-85e2-55cd27deef97",
57 "name": "Staff Member #1",
58 "email": "8115080@gmail.com",
59 "tags": [
60 "staff",
61 "defaultStaff"
62 ],
63 "images": [],
64 "schedules": [ {
65 "id": "71286e3b-8391-47ed-a78b-cf3be0e4db1b",
66 "scheduleOwnerId": "b48faa02-2f23-4253-85e2-55cd27deef97",
67 "intervals": [],
68 "tags": [],
69 "availability": {
70 "start": "2019-05-14T12:44:53.205Z",
71 "linkedSchedules": [ {
72 "scheduleId": "5af18541-2183-4483-8ced-b94e41250d31",
73 "transparency": "FREE",
74 "scheduleOwnerId": "30994d2a-80f8-47c4-8e04-ba72c6083d9d"
75 }]
76 },
77 "totalNumberOfParticipants": 0,
78 "participants": [],
79 "status": "CREATED",
80 "version": 0
81 }],
82 "status": "UNDEFINED"
83 }],
84 "form": {
85 "id": "00000000-0000-0000-0000-000000000000",
86 "header": {
87 "description": "Tell us a bit about yourself",
88 "title": "Add Your Info",
89 "isDescriptionHidden": false
90 },
91 "actionLabels": {
92 "offlinePaymentLabel": "Book It",
93 "onlinePaymentLabel": "Pay Now",
94 "bookingRequestApprovalLabel": "Request To Book"
95 },
96 "name": {
97 "fieldId": "00000000-0000-0000-0000-000000000001",
98 "valueType": "SHORT_TEXT",
99 "label": "Name",
100 "userConstraints": {"required": true},
101 "additionalLabels": []
102 },
103 "email": {
104 "fieldId": "00000000-0000-0000-0000-000000000002",
105 "valueType": "SHORT_TEXT",
106 "label": "Email",
107 "userConstraints": {"required": true},
108 "additionalLabels": []
109 },
110 "phone": {
111 "fieldId": "00000000-0000-0000-0000-000000000003",
112 "valueType": "SHORT_TEXT",
113 "label": "Phone Number",
114 "userConstraints": {"required": false},
115 "additionalLabels": []
116 },
117 "numberOfParticipants": {
118 "fieldId": "00000000-0000-0000-0000-000000000007",
119 "valueType": "SHORT_TEXT",
120 "label": "Number of Participants",
121 "userConstraints": {"required": true},
122 "additionalLabels": []
123 },
124 "address": {
125 "street": {
126 "fieldId": "00000000-0000-0000-0000-000000000004",
127 "valueType": "SHORT_TEXT",
128 "label": "Street",
129 "userConstraints": {"required": true},
130 "additionalLabels": []
131 },
132 "city": {
133 "fieldId": "00000000-0000-0000-0000-000000000005",
134 "valueType": "SHORT_TEXT",
135 "label": "City",
136 "userConstraints": {"required": true},
137 "additionalLabels": []
138 },
139 "floorNumber": {
140 "fieldId": "00000000-0000-0000-0000-000000000006",
141 "valueType": "SHORT_TEXT",
142 "label": "Apt. / Floor No.",
143 "userConstraints": {"required": false},
144 "additionalLabels": []
145 },
146 "state": {
147 "fieldId": "00000000-0000-0000-0000-000000000009",
148 "valueType": "SHORT_TEXT",
149 "label": "State",
150 "userConstraints": {"required": false},
151 "additionalLabels": []
152 }
153 },
154 "customFields": [ {
155 "fieldId": "00000000-0000-0000-0000-000000000008",
156 "valueType": "LONG_TEXT",
157 "label": "Add Your Message",
158 "userConstraints": {"required": false},
159 "additionalLabels": []
160 }]
161 },
162 "schedules": [ {
163 "id": "a93abaf4-c776-46d2-aba0-c986c40ae8c1",
164 "scheduleOwnerId": "4c0bae61-4599-4d02-a2f4-25e9222df416",
165 "intervals": [],
166 "title": "Haircut",
167 "tags": ["INDIVIDUAL"],
168 "location": {"locationType": "OWNER_BUSINESS"},
169 "capacity": 1,
170 "rate": {"labeledPriceOptions": {"general": {
171 "amount": "21",
172 "currency": "ILS",
173 "downPayAmount": "0"
174 }}},
175 "availability": {
176 "start": "2020-02-13T06:24:31.520Z",
177 "linkedSchedules": [ {
178 "scheduleId": "71286e3b-8391-47ed-a78b-cf3be0e4db1b",
179 "transparency": "BUSY",
180 "scheduleOwnerId": "b48faa02-2f23-4253-85e2-55cd27deef97"
181 }],
182 "constraints": {
183 "slotDurations": [60],
184 "timeBetweenSlots": 10
185 }
186 },
187 "totalNumberOfParticipants": 0,
188 "participants": [],
189 "status": "CREATED",
190 "version": 0
191 }],
192 "category": {
193 "id": "442d101a-37b1-4769-81e5-4e7f809585e8",
194 "name": "categ2",
195 "customProperties": {"order": "1"},
196 "status": "CREATED",
197 "sortOrder": 1
198 },
199 "urls": {
200 "servicePageUrl": {
201 "base": "https://www.dimawix.com",
202 "path": "/bookonline/haircut-1"
203 },
204 "bookingPageUrl": {
205 "base": "https://www.dimawix.com",
206 "path": "/bookonline/haircut-1/book"
207 }
208 },
209 "slugs": [
210 {
211 "name": "haircut-1",
212 "createdAt": "2020-02-13T06:26:12.881Z"
213 },
214 {
215 "name": "haircur-1",
216 "createdAt": "2020-02-13T06:26:12.478Z"
217 },
218 {
219 "name": "haircut",
220 "createdAt": "2020-02-13T06:26:12.110Z"
221 },
222 {
223 "name": "haircur",
224 "createdAt": "2020-02-13T06:25:40.336Z"
225 }
226 ],
227 "status": "ACTIVE"
228 },
229 {
230 "service": {
231 "id": "5228133b-f86b-453c-a400-ffe7f80e1996",
232 "info": {
233 "name": "Beard Trimming",
234 "description": "A description here...",
235 "images": [ {
236 "id": "97e41887-1440-4474-8ae9-8d8d7b60abb6",
237 "url": "97e41887144044748ae98d8d7b60abb6.jpg",
238 "height": 1086,
239 "width": 1920
240 }],
241 "tagLine": "Trim Your Beard"
242 },
243 "policy": {
244 "maxParticipantsPerBooking": 1,
245 "bookUpToXMinutesBefore": 1440,
246 "cancelRescheduleUpToXMinutesBefore": 61,
247 "isBookOnlineAllowed": true,
248 "isCancelAllowed": true,
249 "isRescheduleAllowed": true,
250 "futureBookingsPolicy": {
251 "shouldLimit": false,
252 "limitXMinutesToTheFuture": 1440
253 },
254 "waitingListPolicy": {
255 "isEnabled": false,
256 "capacity": 10,
257 "timeWindowMinutes": 10
258 },
259 "bookingsApprovalPolicy": {
260 "isBusinessApprovalRequired": false,
261 "requestsAffectsAvailability": true
262 }
263 },
264 "paymentOptions": {
265 "wixPayOnline": true,
266 "wixPayInPerson": false,
267 "custom": false,
268 "wixPaidPlan": false
269 },
270 "categoryId": "442d101a-37b1-4769-81e5-4e7f809585e8",
271 "bookingFormId": "00000000-0000-0000-0000-000000000000",
272 "scheduleIds": ["4f5a5370-6756-4004-bd9c-ba021fc8e8a7"],
273 "customProperties": {
274 "uouHidden": "false",
275 "order": "11"
276 },
277 "status": "CREATED",
278 "sortOrder": 11
279 },
280 "pricingPlans": [],
281 "resources": [ {
282 "id": "b48faa02-2f23-4253-85e2-55cd27deef97",
283 "name": "Staff Member #1",
284 "email": "8115080@gmail.com",
285 "tags": [
286 "staff",
287 "defaultStaff"
288 ],
289 "images": [],
290 "schedules": [ {
291 "id": "71286e3b-8391-47ed-a78b-cf3be0e4db1b",
292 "scheduleOwnerId": "b48faa02-2f23-4253-85e2-55cd27deef97",
293 "intervals": [],
294 "tags": [],
295 "availability": {
296 "start": "2019-05-14T12:44:53.205Z",
297 "linkedSchedules": [ {
298 "scheduleId": "5af18541-2183-4483-8ced-b94e41250d31",
299 "transparency": "FREE",
300 "scheduleOwnerId": "30994d2a-80f8-47c4-8e04-ba72c6083d9d"
301 }]
302 },
303 "totalNumberOfParticipants": 0,
304 "participants": [],
305 "status": "CREATED",
306 "version": 0
307 }],
308 "status": "UNDEFINED"
309 }],
310 "form": {
311 "id": "00000000-0000-0000-0000-000000000000",
312 "header": {
313 "description": "Tell us a bit about yourself",
314 "title": "Add Your Info",
315 "isDescriptionHidden": false
316 },
317 "actionLabels": {
318 "offlinePaymentLabel": "Book It",
319 "onlinePaymentLabel": "Pay Now",
320 "bookingRequestApprovalLabel": "Request To Book"
321 },
322 "name": {
323 "fieldId": "00000000-0000-0000-0000-000000000001",
324 "valueType": "SHORT_TEXT",
325 "label": "Name",
326 "userConstraints": {"required": true},
327 "additionalLabels": []
328 },
329 "email": {
330 "fieldId": "00000000-0000-0000-0000-000000000002",
331 "valueType": "SHORT_TEXT",
332 "label": "Email",
333 "userConstraints": {"required": true},
334 "additionalLabels": []
335 },
336 "phone": {
337 "fieldId": "00000000-0000-0000-0000-000000000003",
338 "valueType": "SHORT_TEXT",
339 "label": "Phone Number",
340 "userConstraints": {"required": false},
341 "additionalLabels": []
342 },
343 "numberOfParticipants": {
344 "fieldId": "00000000-0000-0000-0000-000000000007",
345 "valueType": "SHORT_TEXT",
346 "label": "Number of Participants",
347 "userConstraints": {"required": true},
348 "additionalLabels": []
349 },
350 "address": {
351 "street": {
352 "fieldId": "00000000-0000-0000-0000-000000000004",
353 "valueType": "SHORT_TEXT",
354 "label": "Street",
355 "userConstraints": {"required": true},
356 "additionalLabels": []
357 },
358 "city": {
359 "fieldId": "00000000-0000-0000-0000-000000000005",
360 "valueType": "SHORT_TEXT",
361 "label": "City",
362 "userConstraints": {"required": true},
363 "additionalLabels": []
364 },
365 "floorNumber": {
366 "fieldId": "00000000-0000-0000-0000-000000000006",
367 "valueType": "SHORT_TEXT",
368 "label": "Apt. / Floor No.",
369 "userConstraints": {"required": false},
370 "additionalLabels": []
371 },
372 "state": {
373 "fieldId": "00000000-0000-0000-0000-000000000009",
374 "valueType": "SHORT_TEXT",
375 "label": "State",
376 "userConstraints": {"required": false},
377 "additionalLabels": []
378 }
379 },
380 "customFields": [ {
381 "fieldId": "00000000-0000-0000-0000-000000000008",
382 "valueType": "LONG_TEXT",
383 "label": "Add Your Message",
384 "userConstraints": {"required": false},
385 "additionalLabels": []
386 }]
387 },
388 "schedules": [ {
389 "id": "4f5a5370-6756-4004-bd9c-ba021fc8e8a7",
390 "scheduleOwnerId": "5228133b-f86b-453c-a400-ffe7f80e1996",
391 "intervals": [],
392 "title": "Beard Trimming",
393 "tags": ["INDIVIDUAL"],
394 "location": {"locationType": "OWNER_BUSINESS"},
395 "capacity": 1,
396 "rate": {"labeledPriceOptions": {"general": {
397 "amount": "49.99",
398 "currency": "ILS",
399 "downPayAmount": "0"
400 }}},
401 "availability": {
402 "start": "2020-02-13T07:58:39.577Z",
403 "linkedSchedules": [ {
404 "scheduleId": "71286e3b-8391-47ed-a78b-cf3be0e4db1b",
405 "transparency": "BUSY",
406 "scheduleOwnerId": "b48faa02-2f23-4253-85e2-55cd27deef97"
407 }],
408 "constraints": {
409 "slotDurations": [15],
410 "timeBetweenSlots": 0
411 }
412 },
413 "totalNumberOfParticipants": 0,
414 "participants": [],
415 "status": "CREATED",
416 "version": 0
417 }],
418 "category": {
419 "id": "442d101a-37b1-4769-81e5-4e7f809585e8",
420 "name": "categ2",
421 "customProperties": {"order": "1"},
422 "status": "CREATED",
423 "sortOrder": 1
424 },
425 "urls": {
426 "servicePageUrl": {
427 "base": "https://www.dimawix.com",
428 "path": "/bookonline/beard-trimming"
429 },
430 "bookingPageUrl": {
431 "base": "https://www.dimawix.com",
432 "path": "/bookonline/beard-trimming/book"
433 }
434 },
435 "slugs": [ {
436 "name": "beard-trimming",
437 "createdAt": "2020-02-13T07:59:18.587Z"
438 }],
439 "status": "ACTIVE"
440 }
441 ],
442 "metadata": {
443 "items": 2,
444 "offset": 0,
445 "totalCount": 2
446 }
447}
Get Service Catalog - specific fields