openapi: 3.2.0 info: title: Hostfully Services API license: name: Apache 2.0 url: https://www.hostfully.com/ version: v3.0.1 servers: - url: https://sandbox-api.hostfully.com security: - JWT-Authentication: [] - Agency-API-key: [] tags: - name: Services paths: /api/v3.3/services/{serviceUid}: get: tags: - Services summary: Get service details description: Retrieves complete details of a specific service operationId: getOne parameters: - name: serviceUid in: path required: true schema: type: string responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ServiceApiResponseWrapper' put: tags: - Services summary: Update service description: Modifies all details of an existing service operationId: put parameters: - name: serviceUid in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ServiceUpdatingApi3Dto' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ServiceApiResponseWrapper' /api/v3.3/services: get: tags: - Services summary: List services description: Retrieves services filtered by agency, service provider or type operationId: getAll_1 parameters: - name: agencyUid in: query required: false schema: type: string - name: serviceProviderUid in: query required: false schema: type: string - name: cateredTo in: query required: false schema: type: string enum: - GUEST - HOST - BOTH responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ServicesApiResponseWrapper' post: tags: - Services summary: Create service description: Adds a new service to the system operationId: post_1 requestBody: content: application/json: schema: $ref: '#/components/schemas/ServiceAddingApi3Dto' required: true responses: '200': description: OK content: '*/*': schema: $ref: '#/components/schemas/ServiceApiResponseWrapper' components: schemas: ServicesApiResponseWrapper: type: object properties: services: type: array items: $ref: '#/components/schemas/ServiceApi3Dto' _metadata: $ref: '#/components/schemas/Api3ResponseMetadata' ServiceAddingApi3Dto: required: - cateredToType - serviceProviderUid - title - type type: object properties: serviceProviderUid: type: string type: type: string enum: - PERSONAL_SERVICE - TRANSPORTATION_SERVICE - CLEANING_SERVICE - GREETING_SERVICE - COOKING_SERVICE - TOUR - OTHER cateredToType: type: string enum: - GUEST - HOST - BOTH duration: type: integer format: int32 partyMaximumSize: type: integer format: int32 price: type: number format: double hourlyRate: type: number format: double dailyRate: type: number format: double title: maxLength: 255 minLength: 0 type: string description: maxLength: 255 minLength: 0 type: string description: Optional field, max size is 255 longDescription: type: string quantityDescription: maxLength: 255 minLength: 0 type: string description: Optional field, max size is 255 isActive: type: boolean cancellationPolicy: maxLength: 255 minLength: 0 type: string description: Optional field, max size is 255 defaultPicture: maxLength: 255 minLength: 0 type: string description: Optional field, max size is 255 Api3ResponseMetadata: type: object properties: count: type: integer format: int32 totalCount: type: integer format: int32 ServiceApi3Dto: type: object properties: uid: type: string serviceProviderUid: type: string type: type: string enum: - PERSONAL_SERVICE - TRANSPORTATION_SERVICE - CLEANING_SERVICE - GREETING_SERVICE - COOKING_SERVICE - TOUR - OTHER cateredTo: type: string enum: - GUEST - HOST - BOTH duration: type: integer format: int32 partyMaximumSize: type: integer format: int32 price: type: number hourlyRate: type: number dailyRate: type: number title: type: string description: type: string longDescription: type: string quantityDescription: type: string isActive: type: boolean cancellationPolicy: type: string defaultPicture: type: string ServiceUpdatingApi3Dto: type: object properties: serviceProviderUid: type: string type: type: string enum: - PERSONAL_SERVICE - TRANSPORTATION_SERVICE - CLEANING_SERVICE - GREETING_SERVICE - COOKING_SERVICE - TOUR - OTHER cateredToType: type: string enum: - GUEST - HOST - BOTH duration: type: integer format: int32 partyMaximumSize: type: integer format: int32 price: type: number format: double hourlyRate: type: number format: double dailyRate: type: number format: double title: maxLength: 255 minLength: 0 type: string description: Optional field, max size is 255 description: maxLength: 255 minLength: 0 type: string description: Optional field, max size is 255 longDescription: type: string quantityDescription: maxLength: 255 minLength: 0 type: string description: Optional field, max size is 255 isActive: type: boolean cancellationPolicy: maxLength: 255 minLength: 0 type: string description: Optional field, max size is 255 defaultPicture: maxLength: 255 minLength: 0 type: string description: Optional field, max size is 255 ServiceApiResponseWrapper: type: object properties: service: $ref: '#/components/schemas/ServiceApi3Dto' securitySchemes: JWT-Authentication: type: apiKey description: OAuth Access Token name: Authorization in: header Agency-API-key: type: apiKey description: API Key name: X-HOSTFULLY-APIKEY in: header externalDocs: description: Hostfully Documentation url: https://dev.hostfully.com/v3.0/reference x-readme: explorer-enabled: true proxy-enabled: true