# Services

Access your services to use in Zapier automation workflows.

## List services

> Get a list of your services, sorted by most recently updated first.\
> \
> \*\*Common uses\*\*:\
> \- Display service options in dropdown menus\
> \- Sync services to other platforms\
> \- Monitor when new services are added\
> \
> Use \`updatedSince\` to get only services created or modified after a certain date.\
> \
> \*\*Note\*\*: Include \`page=1\` in your requests for proper pagination.

```json
{"openapi":"3.1.0","info":{"title":"FlowBookings Zapier Integration API","version":"2.0.0"},"tags":[{"name":"Services","description":"Access your services to use in Zapier automation workflows."}],"servers":[{"url":"https://api.flowbookings.io"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"Your FlowBookings API key. Generate one from Dashboard → Settings → Integrations → API Key. Include this header in every request."}},"parameters":{"PageParam":{"name":"page","in":"query","description":"Page number (starts at 1).","required":false,"schema":{"type":"integer","minimum":1,"default":1}},"LimitParam":{"name":"limit","in":"query","description":"Number of items per page (1-100). Default is 25.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},"UpdatedSinceParam":{"name":"updatedSince","in":"query","description":"Only return items created or updated after this date/time (ISO 8601 format).","required":false,"schema":{"type":"string","format":"date-time"}}},"schemas":{"PaginatedServicesResponse":{"type":"object","description":"List of services with pagination info.","required":["data","pagination"],"properties":{"data":{"type":"array","description":"Services for the current page, sorted by most recently updated first.","items":{"$ref":"#/components/schemas/Service"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}},"Service":{"type":"object","description":"A bookable service you offer to customers.","required":["_id","name","createdAt","updatedAt"],"properties":{"_id":{"type":"string","description":"Unique service identifier."},"name":{"type":"string","description":"Service name."},"description":{"type":"string","description":"Service description shown to customers."},"previewImage":{"type":"string","format":"uri","description":"Service image URL."},"category":{"$ref":"#/components/schemas/ServiceCategory"},"price":{"type":"number","format":"float","description":"Service price.","minimum":0},"duration":{"type":"integer","description":"Total duration in minutes.","minimum":1},"durationType":{"type":"string","enum":["Minutes","Hours","Days"],"description":"Duration unit."},"durationTypeValue":{"type":"number","description":"Duration value in the specified unit."},"capacity":{"type":"integer","description":"Maximum concurrent bookings per time slot.","minimum":1,"maximum":999},"slotIncrement":{"type":"integer","description":"Minutes between available booking time slots.","minimum":5,"maximum":120},"bufferDays":{"type":"integer","description":"Minimum days in advance customers must book.","minimum":0},"hidden":{"type":"boolean","description":"If true, service is hidden from the public booking widget."},"config":{"$ref":"#/components/schemas/ServiceConfig"},"createdAt":{"type":"string","format":"date-time","description":"When the service was created."},"updatedAt":{"type":"string","format":"date-time","description":"When the service was last updated."}}},"ServiceCategory":{"type":"object","description":"Service category grouping.","properties":{"_id":{"type":"string","description":"Category ID."},"name":{"type":"string","description":"Category name."}}},"ServiceConfig":{"type":"object","description":"Optional custom settings for this service.","properties":{"beforeBuffer":{"type":"integer","description":"Minutes to block before each appointment."},"afterBuffer":{"type":"integer","description":"Minutes to block after each appointment."},"availability":{"type":"array","description":"Custom availability schedule for this service.","items":{"type":"object"}}}},"Pagination":{"type":"object","description":"Information about the current page of results.","required":["page","limit","hasMore"],"properties":{"page":{"type":"integer","minimum":1,"description":"Current page number."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum items per page."},"hasMore":{"type":"boolean","description":"True if more pages are available."}}},"Error":{"type":"object","description":"Error information.","required":["error","messages"],"properties":{"error":{"type":"string","description":"Error type.","enum":["unauthorized","validation_error","not_found","server_error"]},"messages":{"type":"array","description":"Details about what went wrong.","items":{"type":"string"},"minItems":1}}}},"responses":{"Unauthorized":{"description":"API key is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServerError":{"description":"Something went wrong on our end. Please try again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/zapier/services":{"get":{"tags":["Services"],"operationId":"listServices","summary":"List services","description":"Get a list of your services, sorted by most recently updated first.\n\n**Common uses**:\n- Display service options in dropdown menus\n- Sync services to other platforms\n- Monitor when new services are added\n\nUse `updatedSince` to get only services created or modified after a certain date.\n\n**Note**: Include `page=1` in your requests for proper pagination.","parameters":[{"$ref":"#/components/parameters/PageParam"},{"$ref":"#/components/parameters/LimitParam"},{"$ref":"#/components/parameters/UpdatedSinceParam"}],"responses":{"200":{"description":"Services retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedServicesResponse"}}}},"400":{"description":"Invalid request parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/ServerError"}}}}}}
```
